Vincent GUFFON ec478a213d delete page 3 年之前
..
unit ec478a213d delete page 3 年之前
README d06ce90e2e enable gitlab ci 4 年之前

README

# Tests unitaires

Ce répertoire contient les tests unitaires du front Vue.js

> Plus d'infos:
> * https://vue-test-utils.vuejs.org/guides/#getting-started
> * https://vue-test-utils.vuejs.org/guides/#using-with-typescript

## Exécuter les tests

Pour exécuter les tests, se connecter au docker admin, et lancer la commande:

yarn test

## Mocking

** Différentes façon pour Mocker

import axios from 'axios'
import { NuxtAxiosInstance } from '@nuxtjs/axios'
jest.mock('axios')
const mockNuxtAxios = axios as jest.Mocked
mockNuxtAxios.$get = jest.fn().mockReturnValue({})

Ou

import DataProvider from "~/services/dataProvider/dataProvider";
jest.mock('~/services/dataProvider/dataProvider');
const DataProviderMock = DataProvider as jest.MockedClass;
DataProviderMock.prototype.invoke.mockImplementation(async () => true)

Ou

import VueI18n from "vue-i18n";
const VueI18nMock = VueI18n as jest.MockedClass;
VueI18nMock.prototype.t = jest.fn().mockReturnValue('siret_error')

Ou

Si on définit le fichier ~/services/dataProvider/__mocks__/dataProvider.ts avec l'implémenation de invoke :

const mock = jest.fn().mockImplementation(() => {
return {invoke: () => {
return true
}};
});
export default mock;

alors on appel useHandleSiret comme cela : const siretResponse = UseChecker.useHandleSiret(new DataProviderMock())

ATTENTION : dans ce cas cette déclaration sera prioritaire sur les autres façon de moker l'implémentation et on ne peut pas avoir 2 type de mokes différents pour
cette classe dans l'application...

Pour pouvoir gérer l'implémentation à la volée il ne faut pas qu'il y ait le fichier dans le dosier __mocks__