diff --git a/package-lock.json b/package-lock.json index 678fd25..12438d2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -70,6 +70,7 @@ "eslint-config-prettier": "^9.0.0", "eslint-plugin-import": "^2.28.1", "jest": "^29.6.4", + "jest-mock-extended": "^4.0.0-beta1", "prettier": "^3.0.3", "prisma": "^5.3.1", "supertest": "^6.3.3", @@ -8695,6 +8696,21 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, + "node_modules/jest-mock-extended": { + "version": "4.0.0-beta1", + "resolved": "https://artifacts.industrysoftware.automation.siemens.com/artifactory/api/npm/npm/jest-mock-extended/-/jest-mock-extended-4.0.0-beta1.tgz", + "integrity": "sha512-MYcI0wQu3ceNhqKoqAJOdEfsVMamAFqDTjoLN5Y45PAG3iIm4WGnhOu0wpMjlWCexVPO71PMoNir9QrGXrnIlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "ts-essentials": "^10.0.2" + }, + "peerDependencies": { + "@jest/globals": "^28.0.0 || ^29.0.0", + "jest": "^24.0.0 || ^25.0.0 || ^26.0.0 || ^27.0.0 || ^28.0.0 || ^29.0.0", + "typescript": "^3.0.0 || ^4.0.0 || ^5.0.0" + } + }, "node_modules/jest-pnp-resolver": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", @@ -11844,6 +11860,21 @@ "typescript": ">=4.2.0" } }, + "node_modules/ts-essentials": { + "version": "10.0.4", + "resolved": "https://artifacts.industrysoftware.automation.siemens.com/artifactory/api/npm/npm/ts-essentials/-/ts-essentials-10.0.4.tgz", + "integrity": "sha512-lwYdz28+S4nicm+jFi6V58LaAIpxzhg9rLdgNC1VsdP/xiFBseGhF1M/shwCk6zMmwahBZdXcl34LVHrEang3A==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "typescript": ">=4.5.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, "node_modules/ts-jest": { "version": "29.1.1", "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.1.1.tgz", @@ -19177,6 +19208,15 @@ "jest-util": "^29.7.0" } }, + "jest-mock-extended": { + "version": "4.0.0-beta1", + "resolved": "https://artifacts.industrysoftware.automation.siemens.com/artifactory/api/npm/npm/jest-mock-extended/-/jest-mock-extended-4.0.0-beta1.tgz", + "integrity": "sha512-MYcI0wQu3ceNhqKoqAJOdEfsVMamAFqDTjoLN5Y45PAG3iIm4WGnhOu0wpMjlWCexVPO71PMoNir9QrGXrnIlw==", + "dev": true, + "requires": { + "ts-essentials": "^10.0.2" + } + }, "jest-pnp-resolver": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", @@ -21520,6 +21560,13 @@ "dev": true, "requires": {} }, + "ts-essentials": { + "version": "10.0.4", + "resolved": "https://artifacts.industrysoftware.automation.siemens.com/artifactory/api/npm/npm/ts-essentials/-/ts-essentials-10.0.4.tgz", + "integrity": "sha512-lwYdz28+S4nicm+jFi6V58LaAIpxzhg9rLdgNC1VsdP/xiFBseGhF1M/shwCk6zMmwahBZdXcl34LVHrEang3A==", + "dev": true, + "requires": {} + }, "ts-jest": { "version": "29.1.1", "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.1.1.tgz", diff --git a/package.json b/package.json index c1f9f36..0caff5f 100644 --- a/package.json +++ b/package.json @@ -88,6 +88,7 @@ "eslint-config-prettier": "^9.0.0", "eslint-plugin-import": "^2.28.1", "jest": "^29.6.4", + "jest-mock-extended": "^4.0.0-beta1", "prettier": "^3.0.3", "prisma": "^5.3.1", "supertest": "^6.3.3", diff --git a/src/static/hdd/hdd.service.ts b/src/static/hdd/hdd.service.ts index 6ccbf43..0740524 100644 --- a/src/static/hdd/hdd.service.ts +++ b/src/static/hdd/hdd.service.ts @@ -4,12 +4,13 @@ import { writeFileSync, readFileSync, unlink, mkdirSync, existsSync } from 'fs'; import { PNG, PNGWithMetadata } from 'pngjs'; import { Static } from '../static.interface'; import { HDD_IMAGE_PATH } from './constants'; +import uuidAPIKey from 'uuid-apikey'; export class HddService implements Static { private readonly logger: Logger = new Logger(HddService.name); generateNewImage(type: 'screenshot' | 'diff' | 'baseline'): { imageName: string; imagePath: string } { - const imageName = `${Date.now()}.${type}.png`; + const imageName = `${uuidAPIKey.create({ noDashes: true }).apiKey}.${type}.png`; return { imageName, imagePath: this.getImagePath(imageName),