From 41388c035b3c0d0b3bc49199681ea0b6fc28c7e4 Mon Sep 17 00:00:00 2001 From: Kirill Ivlev Date: Mon, 11 Nov 2024 18:24:57 +0400 Subject: [PATCH] fix tests --- package-lock.json | 16 ++++++++++++++++ package.json | 4 ++++ src/mocks/featureflag-service.mock.ts | 4 ++-- src/quiz/quiz.service.spec.ts | 5 ++++- src/voice/voice.controller.spec.ts | 5 +++++ src/voice/voice.service.ts | 2 +- 6 files changed, 32 insertions(+), 4 deletions(-) diff --git a/package-lock.json b/package-lock.json index b03798a..76127da 100644 --- a/package-lock.json +++ b/package-lock.json @@ -29,6 +29,7 @@ "class-transformer": "^0.5.1", "cyrillic-to-translit-js": "^3.2.1", "dotenv": "^16.3.1", + "husky": "^9.1.6", "latin-to-cyrillic": "^1.0.1", "mongodb": "^6.2.0", "mongoose": "^8.0.0", @@ -5552,6 +5553,21 @@ "ms": "^2.0.0" } }, + "node_modules/husky": { + "version": "9.1.6", + "resolved": "https://registry.npmjs.org/husky/-/husky-9.1.6.tgz", + "integrity": "sha512-sqbjZKK7kf44hfdE94EoX8MZNk0n7HeW37O4YrVGCF4wzgQjp+akPAkfUK5LZ6KuR/6sqeAVuXHji+RzQgOn5A==", + "license": "MIT", + "bin": { + "husky": "bin.js" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/typicode" + } + }, "node_modules/iconv-lite": { "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", diff --git a/package.json b/package.json index 2644a62..586e003 100644 --- a/package.json +++ b/package.json @@ -41,6 +41,7 @@ "class-transformer": "^0.5.1", "cyrillic-to-translit-js": "^3.2.1", "dotenv": "^16.3.1", + "husky": "^9.1.6", "latin-to-cyrillic": "^1.0.1", "mongodb": "^6.2.0", "mongoose": "^8.0.0", @@ -89,5 +90,8 @@ ], "coverageDirectory": "../coverage", "testEnvironment": "node" + }, + "hooks": { + "pre-commit": "npm run test" } } diff --git a/src/mocks/featureflag-service.mock.ts b/src/mocks/featureflag-service.mock.ts index f905e58..2bb8a11 100644 --- a/src/mocks/featureflag-service.mock.ts +++ b/src/mocks/featureflag-service.mock.ts @@ -1,4 +1,4 @@ export const FeatureflagServiceMock = { - getFeatureFlag: jest.fn(), - setFeatureFlag: jest.fn(), + getFeatureFlag: jest.fn(() => Promise.resolve(false)), + setFeatureFlag: jest.fn(() => Promise.resolve(false)) } \ No newline at end of file diff --git a/src/quiz/quiz.service.spec.ts b/src/quiz/quiz.service.spec.ts index 85928ac..bc3e406 100644 --- a/src/quiz/quiz.service.spec.ts +++ b/src/quiz/quiz.service.spec.ts @@ -11,6 +11,8 @@ import {SharedServiceMock} from "../mocks/shared-service.mock"; import {CommandBus, EventBus} from "@nestjs/cqrs"; import {EventbusMock} from "../mocks/eventbus.mock"; import {CommandbusMock} from "../mocks/commandbus.mock"; +import {FeatureflagService} from "../featureflag/featureflag.service"; +import {FeatureflagServiceMock} from "../mocks/featureflag-service.mock"; describe('QuizService', () => { let service: QuizService; @@ -24,7 +26,8 @@ describe('QuizService', () => { { provide: GuestsService, useValue: GuestsServiceMock }, { provide: SharedService, useValue: SharedServiceMock }, { provide: EventBus, useValue: EventbusMock }, - { provide: CommandBus, useValue: CommandbusMock } + { provide: CommandBus, useValue: CommandbusMock }, + { provide: FeatureflagService, useValue: FeatureflagServiceMock } ], }).compile(); diff --git a/src/voice/voice.controller.spec.ts b/src/voice/voice.controller.spec.ts index 735777b..ba35ee9 100644 --- a/src/voice/voice.controller.spec.ts +++ b/src/voice/voice.controller.spec.ts @@ -5,11 +5,14 @@ import {VoiceServiceMock} from "../mocks/voice-service.mock"; import {Config} from "../schemas/config.schema"; import {ConfigService} from "@nestjs/config"; import {ConfigServiceMock} from "../mocks/config-service.mock"; +import {FeatureflagService} from "../featureflag/featureflag.service"; +import {FeatureflagServiceMock} from "../mocks/featureflag-service.mock"; describe('VoiceController', () => { let controller: VoiceController; let voiceService: VoiceService; let configService: ConfigService; + let featureflagService: FeatureflagService; beforeEach(async () => { jest.clearAllMocks(); @@ -20,12 +23,14 @@ describe('VoiceController', () => { providers: [ { provide: VoiceService, useValue: VoiceServiceMock }, { provide: ConfigService, useValue: ConfigServiceMock }, + { provide: FeatureflagService, useValue: FeatureflagServiceMock }, ] }).compile(); controller = module.get(VoiceController); voiceService = module.get(VoiceService); configService = module.get(ConfigService); + }); it('should be defined', () => { diff --git a/src/voice/voice.service.ts b/src/voice/voice.service.ts index b8d05cb..45098db 100644 --- a/src/voice/voice.service.ts +++ b/src/voice/voice.service.ts @@ -13,7 +13,7 @@ export class VoiceService { private apiUrl = 'https://tts.api.cloud.yandex.net/speech/v1/tts:synthesize'; private apiKey: string; private readonly logger = new Logger(VoiceService.name); - constructor(private httpService: HttpService, private configService: ConfigService, private featureFlagService: FeatureflagService) { + constructor(private httpService: HttpService, private configService: ConfigService) { this.apiKey = this.configService.get("VOICE_APIKEY"); }