import UseChecker from "~/use/form/useChecker"; import DataProvider from "~/services/dataProvider/dataProvider"; import VueI18n from "vue-i18n"; jest.mock('~/services/dataProvider/dataProvider'); const DataProviderMock = DataProvider as jest.MockedClass; const VueI18nMock = VueI18n as jest.MockedClass; describe('useHandleSiret()', () => { beforeEach(() => { // Efface toutes les instances et les appels au constructeur et à toutes les méthodes : DataProviderMock.mockClear(); }); it('should init 3 parameters correctly', async () => { const siretResponse = UseChecker.useHandleSiret(VueI18nMock.prototype, DataProviderMock.prototype) expect(siretResponse.siretErrorMessage.value).toEqual(""); expect(siretResponse.siretError.value).toBeFalsy(); expect(siretResponse.checkSiret).toBeDefined(); }) it('should update parameters if Siret is correct', async () => { const siretResponse = UseChecker.useHandleSiret(VueI18nMock.prototype, DataProviderMock.prototype) DataProviderMock.prototype.invoke.mockImplementation(async () => { return {isCorrect: true} }) await siretResponse.checkSiret('123456') expect(siretResponse.siretErrorMessage.value).toEqual(""); expect(siretResponse.siretError.value).toBeFalsy(); }) it('should update parameters if Siret is not correct', async () => { const siretResponse = UseChecker.useHandleSiret(VueI18nMock.prototype, DataProviderMock.prototype) DataProviderMock.prototype.invoke.mockImplementation(async () => { return {isCorrect: false} }) VueI18nMock.prototype.t = jest.fn().mockReturnValue('siret_error') await siretResponse.checkSiret('123456') expect(siretResponse.siretErrorMessage.value).toEqual("siret_error"); expect(siretResponse.siretError.value).toBeTruthy(); }) it('should update parameters if there is no response during the check siret', async () => { const siretResponse = UseChecker.useHandleSiret(VueI18nMock.prototype, DataProviderMock.prototype) DataProviderMock.prototype.invoke.mockImplementation(jest.fn()) await siretResponse.checkSiret('123456') expect(siretResponse.siretErrorMessage.value).toEqual(""); expect(siretResponse.siretError.value).toBeFalsy(); }) })