import type { DependencyManager, FeatureRegistry } from '@aries-framework/core' import { Protocol } from '@aries-framework/core' import { QuestionAnswerApi, QuestionAnswerModule, QuestionAnswerRepository, QuestionAnswerRole, QuestionAnswerService, } from '@aries-framework/question-answer' const dependencyManager = { registerInstance: jest.fn(), registerSingleton: jest.fn(), registerContextScoped: jest.fn(), } as unknown as DependencyManager const featureRegistry = { register: jest.fn(), } as unknown as FeatureRegistry describe('QuestionAnswerModule', () => { test('registers dependencies on the dependency manager', () => { const questionAnswerModule = new QuestionAnswerModule() questionAnswerModule.register(dependencyManager, featureRegistry) expect(dependencyManager.registerContextScoped).toHaveBeenCalledTimes(1) expect(dependencyManager.registerContextScoped).toHaveBeenCalledWith(QuestionAnswerApi) expect(dependencyManager.registerSingleton).toHaveBeenCalledTimes(2) expect(dependencyManager.registerSingleton).toHaveBeenCalledWith(QuestionAnswerService) expect(dependencyManager.registerSingleton).toHaveBeenCalledWith(QuestionAnswerRepository) expect(featureRegistry.register).toHaveBeenCalledTimes(1) expect(featureRegistry.register).toHaveBeenCalledWith( new Protocol({ id: 'https://didcomm.org/questionanswer/1.0', roles: [QuestionAnswerRole.Questioner, QuestionAnswerRole.Responder], }) ) }) })