Skip to content

Commit 64ba99e

Browse files
committed
fix
1 parent f5307fa commit 64ba99e

File tree

10 files changed

+98
-113
lines changed

10 files changed

+98
-113
lines changed

src/builds/builds.module.ts

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,15 +9,9 @@ import { AuthModule } from '../auth/auth.module';
99
import { ProjectsModule } from '../projects/projects.module';
1010

1111
@Module({
12-
imports: [
13-
SharedModule,
14-
UsersModule,
15-
forwardRef(() => TestRunsModule),
16-
AuthModule,
17-
forwardRef(() => ProjectsModule)
18-
],
12+
imports: [SharedModule, UsersModule, forwardRef(() => TestRunsModule), AuthModule, forwardRef(() => ProjectsModule)],
1913
providers: [BuildsService, PrismaService],
2014
controllers: [BuildsController],
2115
exports: [BuildsService],
2216
})
23-
export class BuildsModule { }
17+
export class BuildsModule {}

src/compare/compare.module.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,4 @@ import { StaticModule } from '../static/static.module';
1010
imports: [StaticModule],
1111
exports: [CompareService],
1212
})
13-
export class CompareModule { }
13+
export class CompareModule {}

src/compare/compare.service.spec.ts

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,8 @@ describe('CompareService', () => {
1111

1212
beforeEach(async () => {
1313
const module: TestingModule = await Test.createTestingModule({
14-
providers: [
15-
CompareService,
16-
OdiffService,
17-
PixelmatchService,
18-
LookSameService,
19-
PrismaService
20-
],
21-
imports: [StaticModule]
14+
providers: [CompareService, OdiffService, PixelmatchService, LookSameService, PrismaService],
15+
imports: [StaticModule],
2216
}).compile();
2317

2418
service = module.get<CompareService>(CompareService);

src/static/aws/s3.service.ts

Lines changed: 33 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -3,40 +3,37 @@ import { Logger } from '@nestjs/common';
33
import { Static } from '../static.interface';
44
// import { S3Client } from '@aws-sdk/client-s3';
55

6-
76
export class AWSS3Service implements Static {
8-
private readonly logger: Logger = new Logger(AWSS3Service.name);
9-
// private readonly AWS_ACCESS_KEY_ID = process.env.AWS_ACCESS_KEY_ID;
10-
// private readonly AWS_SECRET_ACCESS_KEY = process.env.AWS_SECRET_ACCESS_KEY;
11-
// private readonly AWS_REGION = process.env.AWS_REGION;
12-
// private readonly AWS_S3_BUCKET_NAME = process.env.AWS_S3_BUCKET_NAME;
13-
14-
// private s3Client: S3Client;
15-
16-
constructor() {
17-
// this.s3Client = new S3Client({
18-
// credentials: {
19-
// accessKeyId: this.AWS_ACCESS_KEY_ID,
20-
// secretAccessKey: this.AWS_SECRET_ACCESS_KEY,
21-
// },
22-
// region: this.AWS_REGION,
23-
// });
24-
this.logger.log('AWS S3 service is being used for file storage.');
25-
}
26-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
27-
saveImage(type: 'screenshot' | 'diff' | 'baseline', imageBuffer: Buffer): Promise<string> {
28-
throw new Error('Method not implemented.');
29-
}
30-
31-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
32-
getImage(fileName: string): Promise<PNGWithMetadata> {
33-
throw new Error('Method not implemented.');
34-
}
35-
36-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
37-
deleteImage(imageName: string): Promise<boolean> {
38-
throw new Error('Method not implemented.');
39-
}
40-
41-
42-
}
7+
private readonly logger: Logger = new Logger(AWSS3Service.name);
8+
// private readonly AWS_ACCESS_KEY_ID = process.env.AWS_ACCESS_KEY_ID;
9+
// private readonly AWS_SECRET_ACCESS_KEY = process.env.AWS_SECRET_ACCESS_KEY;
10+
// private readonly AWS_REGION = process.env.AWS_REGION;
11+
// private readonly AWS_S3_BUCKET_NAME = process.env.AWS_S3_BUCKET_NAME;
12+
13+
// private s3Client: S3Client;
14+
15+
constructor() {
16+
// this.s3Client = new S3Client({
17+
// credentials: {
18+
// accessKeyId: this.AWS_ACCESS_KEY_ID,
19+
// secretAccessKey: this.AWS_SECRET_ACCESS_KEY,
20+
// },
21+
// region: this.AWS_REGION,
22+
// });
23+
this.logger.log('AWS S3 service is being used for file storage.');
24+
}
25+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
26+
saveImage(type: 'screenshot' | 'diff' | 'baseline', imageBuffer: Buffer): Promise<string> {
27+
throw new Error('Method not implemented.');
28+
}
29+
30+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
31+
getImage(fileName: string): Promise<PNGWithMetadata> {
32+
throw new Error('Method not implemented.');
33+
}
34+
35+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
36+
deleteImage(imageName: string): Promise<boolean> {
37+
throw new Error('Method not implemented.');
38+
}
39+
}

src/static/hdd/hdd.service.ts

Lines changed: 48 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -6,61 +6,61 @@ import { Static } from '../static.interface';
66
import { HDD_IMAGE_PATH } from './constants';
77

88
export class HddService implements Static {
9-
private readonly logger: Logger = new Logger(HddService.name);
9+
private readonly logger: Logger = new Logger(HddService.name);
1010

11-
generateNewImage(type: 'screenshot' | 'diff' | 'baseline'): { imageName: string; imagePath: string } {
12-
const imageName = `${Date.now()}.${type}.png`;
13-
return {
14-
imageName,
15-
imagePath: this.getImagePath(imageName),
16-
};
17-
}
18-
19-
getImagePath(imageName: string): string {
20-
this.ensureDirectoryExistence(HDD_IMAGE_PATH);
21-
return path.resolve(HDD_IMAGE_PATH, imageName);
22-
}
11+
generateNewImage(type: 'screenshot' | 'diff' | 'baseline'): { imageName: string; imagePath: string } {
12+
const imageName = `${Date.now()}.${type}.png`;
13+
return {
14+
imageName,
15+
imagePath: this.getImagePath(imageName),
16+
};
17+
}
2318

24-
async saveImage(type: 'screenshot' | 'diff' | 'baseline', imageBuffer: Buffer): Promise<string> {
25-
try {
26-
new PNG().parse(imageBuffer);
27-
} catch (ex) {
28-
throw new Error('Cannot parse image as PNG file');
29-
}
19+
getImagePath(imageName: string): string {
20+
this.ensureDirectoryExistence(HDD_IMAGE_PATH);
21+
return path.resolve(HDD_IMAGE_PATH, imageName);
22+
}
3023

31-
const { imageName, imagePath } = this.generateNewImage(type);
32-
writeFileSync(imagePath, imageBuffer);
33-
return imageName;
24+
async saveImage(type: 'screenshot' | 'diff' | 'baseline', imageBuffer: Buffer): Promise<string> {
25+
try {
26+
new PNG().parse(imageBuffer);
27+
} catch (ex) {
28+
throw new Error('Cannot parse image as PNG file');
3429
}
3530

36-
async getImage(imageName: string): Promise<PNGWithMetadata> {
37-
if (!imageName) return;
38-
try {
39-
return PNG.sync.read(readFileSync(this.getImagePath(imageName)));
40-
} catch (ex) {
41-
this.logger.error(`Cannot get image: ${imageName}. ${ex}`);
42-
}
43-
}
31+
const { imageName, imagePath } = this.generateNewImage(type);
32+
writeFileSync(imagePath, imageBuffer);
33+
return imageName;
34+
}
4435

45-
async deleteImage(imageName: string): Promise<boolean> {
46-
if (!imageName) return;
47-
return new Promise((resolvePromise) => {
48-
unlink(this.getImagePath(imageName), (err) => {
49-
if (err) {
50-
this.logger.error(err);
51-
}
52-
resolvePromise(true);
53-
});
54-
});
36+
async getImage(imageName: string): Promise<PNGWithMetadata> {
37+
if (!imageName) return;
38+
try {
39+
return PNG.sync.read(readFileSync(this.getImagePath(imageName)));
40+
} catch (ex) {
41+
this.logger.error(`Cannot get image: ${imageName}. ${ex}`);
5542
}
43+
}
5644

57-
private ensureDirectoryExistence(dir: string) {
58-
const filePath = path.resolve(dir);
59-
if (existsSync(filePath)) {
60-
return true;
61-
} else {
62-
mkdirSync(dir, { recursive: true });
63-
this.ensureDirectoryExistence(dir);
45+
async deleteImage(imageName: string): Promise<boolean> {
46+
if (!imageName) return;
47+
return new Promise((resolvePromise) => {
48+
unlink(this.getImagePath(imageName), (err) => {
49+
if (err) {
50+
this.logger.error(err);
6451
}
52+
resolvePromise(true);
53+
});
54+
});
55+
}
56+
57+
private ensureDirectoryExistence(dir: string) {
58+
const filePath = path.resolve(dir);
59+
if (existsSync(filePath)) {
60+
return true;
61+
} else {
62+
mkdirSync(dir, { recursive: true });
63+
this.ensureDirectoryExistence(dir);
6564
}
66-
}
65+
}
66+
}

src/static/static.factory.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,12 @@ export class StaticFactoryService {
1414
const serviceType = this.configService.get<string>('STATIC_SERVICE', 'hdd');
1515
switch (serviceType) {
1616
case 's3':
17-
this.logger.debug('static service type: S3')
17+
this.logger.debug('static service type: S3');
1818
return new AWSS3Service();
1919
case 'hdd':
2020
default:
21-
this.logger.debug('static service type: HDD')
21+
this.logger.debug('static service type: HDD');
2222
return new HddService();
2323
}
2424
}
25-
}
25+
}

src/static/static.interface.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
import { PNGWithMetadata } from "pngjs";
1+
import { PNGWithMetadata } from 'pngjs';
22

33
export interface Static {
4-
saveImage(type: 'screenshot' | 'diff' | 'baseline', imageBuffer: Buffer): Promise<string>;
5-
getImage(fileName: string): Promise<PNGWithMetadata>;
6-
deleteImage(imageName: string): Promise<boolean>;
7-
}
4+
saveImage(type: 'screenshot' | 'diff' | 'baseline', imageBuffer: Buffer): Promise<string>;
5+
getImage(fileName: string): Promise<PNGWithMetadata>;
6+
deleteImage(imageName: string): Promise<boolean>;
7+
}

src/static/static.module.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,4 +8,4 @@ import { StaticFactoryService } from './static.factory';
88
providers: [StaticService, StaticFactoryService],
99
exports: [StaticService],
1010
})
11-
export class StaticModule {}
11+
export class StaticModule {}

src/static/static.service.spec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ describe('StaticService', () => {
1414
useValue: {},
1515
},
1616
],
17-
imports: [StaticModule]
17+
imports: [StaticModule],
1818
}).compile();
1919

2020
service = module.get<StaticService>(StaticService);

src/static/utils.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
export function isHddStaticServiceConfigured() {
2-
return !process.env.STATIC_SERVICE || process.env.STATIC_SERVICE === 'hdd';
3-
}
2+
return !process.env.STATIC_SERVICE || process.env.STATIC_SERVICE === 'hdd';
3+
}

0 commit comments

Comments
 (0)