diff --git a/knex/seeds/03-metas.js b/knex/seeds/03-metas.js index 47c24b4dc34c11dd6d1989193c8d4771fb9bf324..55d2cbfb65f7c63eaad9993167334e5a9d614fc2 100644 --- a/knex/seeds/03-metas.js +++ b/knex/seeds/03-metas.js @@ -3,7 +3,6 @@ const seeding = require('../seeding') const definitions = require('../../sources/definitions.json') const domaines = require('../../sources/domaines.json') const titresTypesTypes = require('../../sources/titres-types-types.json') -// eslint-disable-next-line camelcase const titresTypes = require('../../sources/titres-types.json') const titresStatuts = require('../../sources/titres-statuts.json') // eslint-disable-next-line camelcase diff --git a/src/types.ts b/src/types.ts index d6c1a7ea98e229758f7d6f50fe4d157f0315bd06..75d76928e390d8b02610d0651336350d282e6e68 100644 --- a/src/types.ts +++ b/src/types.ts @@ -129,7 +129,7 @@ interface IAdministration { departementId?: string | null regionId?: string | null abreviation?: string | null - titresTypes?: ITitreType[] | null + titresTypes?: (ITitreType & IAdministrationTitreType)[] | null titresTypesTitresStatuts?: IAdministrationTitreTypeTitreStatut[] | null titresTypesEtapesTypes?: IAdministrationTitreTypeEtapeType[] | null activitesTypes?: IActiviteType[] | null diff --git a/tests/_utils/administrations-permissions.ts b/tests/_utils/administrations-permissions.ts new file mode 100644 index 0000000000000000000000000000000000000000..d23edd54b6febc8dce770b2409b0bc29b20cf951 --- /dev/null +++ b/tests/_utils/administrations-permissions.ts @@ -0,0 +1,431 @@ +import { IAdministration, ITitre } from '../../src/types' +// import { departementsGet } from '../../src/database/queries/territoires' + +// const titresBuild = async () => { +// const departements = await departementsGet() + +// const titres = departements.map(d => ({ +// id: `titre-id-${d.id}`, +// demarches: [ +// { +// id: `demarche-id-${d.id}`, +// typeId: 'oct', +// etapes: [ +// { +// id: `etape-id-${d.id}`, +// typeId: 'dpu', +// communes: [ +// { +// id: `commune-id-${d.id}`, +// departementId: d.id, +// departement: d, +// regionId: d.regionId +// } +// ] +// } +// ] +// } +// ] +// })) +// } + +type IAction = 'rien' | 'voir' | 'modifier' | 'creer' + +interface IAdministrationTitreTypeTest { + titreId: string + administrationId: string + pouvoir: boolean + action: IAction + cible: string + titreTypeId: string + domaineId?: string + etapeTypeId?: string + gestionnaire?: boolean | null | undefined + titreStatutId?: string +} + +type IAdministrationTitreTypeTestFormatted = [ + string, + IAdministration, + ITitre, + ITitre +] + +const testAdministrationTitreTypeBuild = ( + administration: IAdministration, + titreTypeId: string +) => { + const administrationTitreTypeTests = [] as IAdministrationTitreTypeTest[] + let uniqueId = 0 + // Visibilité des titres + // |T|D|E| + // V|X| | | + // C| | | | + // M| | | | + + administrationTitreTypeTests.push({ + titreId: `titre-${titreTypeId}-${administration.id}-${uniqueId++}`, + administrationId: administration.id, + pouvoir: true, + action: 'voir', + cible: 'titre', + titreTypeId + }) + + // Visibilité des démarches + // |T|D|E| + // V| |X| | + // C| | | | + // M| | | | + administrationTitreTypeTests.push({ + titreId: `titre-${titreTypeId}-${administration.id}-${uniqueId++}`, + administrationId: administration.id, + pouvoir: true, + action: 'voir', + cible: 'demarche', + titreTypeId + }) + + // Visibilité des étapes + // |T|D|E| + // V| | |X| + // C| | | | + // M| | | | + + // s'il y a restriction de visibilité `lectureInterdit` + // dans titresTypesEtapesTypes + if (administration.titresTypesEtapesTypes?.length) { + administrationTitreTypeTests.push( + ...administration.titresTypesEtapesTypes + .filter(ttet => ttet.titreTypeId === titreTypeId) + .map(restriction => ({ + titreId: `titre-${titreTypeId}-${administration.id}-${uniqueId++}`, + administrationId: restriction.administrationId, + pouvoir: !restriction.lectureInterdit, + action: 'voir' as IAction, + cible: 'etape', + titreTypeId, + etapeTypeId: restriction.etapeTypeId + })) + ) + } + + // TODO : création T, D, E + + // |T|D|E| + // V| | | | + // C| | | | + // M|X| | | + + // s'il y a restriction d'édition `titresModificationInterdit` + // dans titresTypesTitresStatuts + if (administration.titresTypesTitresStatuts?.length) { + administrationTitreTypeTests.push( + ...administration.titresTypesTitresStatuts + .filter(ttts => ttts.titreTypeId === titreTypeId) + .map(restriction => ({ + titreId: `titre-${titreTypeId}-${administration.id}-${uniqueId++}`, + administrationId: administration.id, + gestionnaire: restriction.titreType!.gestionnaire, + pouvoir: + (restriction.titreType!.gestionnaire && + !restriction.titresModificationInterdit) || + false, + action: 'modifier' as IAction, + cible: 'titre', + titreTypeId, + titreStatutId: restriction.titreStatutId + })) + ) + } + + // Modification des démarches + // |T|D|E| + // V| | | | + // C| | | | + // M| |X| | + + // s'il y a restriction d'édition `demarchesModificationInterdit` + // dans titresTypesTitresStatuts + if (administration.titresTypesTitresStatuts?.length) { + administrationTitreTypeTests.push( + ...administration.titresTypesTitresStatuts + .filter(ttts => ttts.titreTypeId === titreTypeId) + .map(restriction => ({ + titreId: `titre-${titreTypeId}-${administration.id}-${uniqueId++}`, + administrationId: administration.id, + gestionnaire: restriction.titreType!.gestionnaire, + pouvoir: + (restriction.titreType!.gestionnaire && + !restriction.demarchesModificationInterdit) || + false, + action: 'modifier' as IAction, + cible: 'demarche', + titreTypeId, + titreStatutId: restriction.titreStatutId + })) + ) + } + + // Modification des étapes + // |T|D|E| + // V| | | | + // C| | | | + // M| | |X| + + // s'il y a restriction d'édition `etapesModificationInterdit` + // dans titresTypesTitresStatuts + if (administration.titresTypesTitresStatuts?.length) { + administrationTitreTypeTests.push( + ...administration.titresTypesTitresStatuts + .filter(ttts => ttts.titreTypeId === titreTypeId) + .map(restriction => ({ + titreId: `titre-${titreTypeId}-${administration.id}-${uniqueId++}`, + administrationId: administration.id, + gestionnaire: restriction.titreType!.gestionnaire, + pouvoir: + (restriction.titreType!.gestionnaire && + !restriction.etapesModificationInterdit) || + false, + action: 'modifier' as IAction, + cible: 'etape', + titreTypeId, + titreStatutId: restriction.titreStatutId + })) + ) + } + + // s'il y a restriction de modification d'étapes + // if (administration.titresTypesEtapesTypes?.length) { + // administrationTitreTypeTests.push( + // ...administration.titresTypesEtapesTypes + // .filter(ttet => ttet.titreTypeId === titreTypeId) + // .map(restriction => { + // return { + // titreId: `titre-${titreTypeId}-${administration.id}-${uniqueId++}`, + // administrationId: administration.id, + // gestionnaire: restriction.titreType.gestionnaire, + // pouvoir: + // restriction.titreType.gestionnaire && + // !restriction.modificationInterdit, + // action: restriction.lectureInterdit ? 'modifier(voir)' : 'modifier', + // cible: 'etape', + // titreTypeId, + // etapeTypeId: restriction.etapeTypeId + // } + // }) + // ) + // } + + return administrationTitreTypeTests +} + +const administrationTestsBuild = (administration: IAdministration) => + administration.titresTypes!.flatMap(titreType => + testAdministrationTitreTypeBuild(administration, titreType.id) + ) + +const administrationsTestsBuild = (administrations: IAdministration[]) => + administrations.flatMap(administration => + administrationTestsBuild(administration) + ) + +const messageBuild = (scenario: IAdministrationTitreTypeTest) => { + let message = '' + if (scenario.cible! === 'titre') { + message = 'un titre ' + } else if (scenario.cible! === 'demarche') { + message = "les démarches d'un titre " + } else if (scenario.cible! === 'etape') { + if (scenario.etapeTypeId!) { + message = `une étape ${scenario.etapeTypeId} d'un titre ` + } else { + message = `les étapes d'un titre ` + } + } + message += scenario.titreTypeId + message += scenario.titreStatutId! + ? ` dont le statut est ${scenario.titreStatutId}` + : '' + + return `${scenario.administrationId}: ${ + scenario.pouvoir ? 'peut' : 'ne peut pas' + } ${scenario.action} ${message}` +} + +const titreBuild = ( + { + titreId, + titreTypeId, + titreStatutId, + etapeTypeId + }: IAdministrationTitreTypeTest, + administration: IAdministration +) => { + const titre = { + id: titreId, + nom: 'nom titre', + demarches: [ + { + id: `${titreId}-demarche-id`, + titreId: titreId, + typeId: 'oct', + etapes: [ + { + id: `${titreId}-demarche-id-etape-id`, + typeId: 'mfr', + ordre: 0, + titreDemarcheId: `${titreId}-demarche-id`, + statutId: 'enc', + date: '2020-01-01' + } + ] + } + ], + publicLecture: false + } as ITitre + + titre.typeId = titreTypeId + titre.domaineId = titre.typeId.slice(-1) + titre.administrationsGestionnaires = [] + + const administrationTitreType = administration.titresTypes?.find( + att => att.id === titreTypeId + ) + + if (administrationTitreType?.gestionnaire) { + titre.administrationsGestionnaires.push(administration) + } + // titre.administrationsLocales = [] + + if (titreStatutId) { + titre.statutId = titreStatutId + } + + if (etapeTypeId) { + titre.demarches![0]!.etapes![0]!.id = `${titreId}-demarche-id-${etapeTypeId}` + titre.demarches![0]!.etapes![0]!.typeId = etapeTypeId + } + + return titre +} + +const resultBuild = (scenario: IAdministrationTitreTypeTest) => { + const titre = { + id: scenario.titreId, + modification: true, + demarches: [ + { + id: `${scenario.titreId}-demarche-id`, + modification: true, + etapes: [ + { + id: `${scenario.titreId}-demarche-id-etape-id`, + modification: true + } + ] + } + ] + } as ITitre + + if (scenario.cible! === 'titre') { + // on retire les démarches + delete titre.demarches + + if (scenario.pouvoir) { + if (scenario.action === 'voir') { + // on teste juste la visibilité, on retire la 'modification' + delete titre.modification + } else if (scenario.action === 'modifier') { + // on garde l'id et la modification à true + } else { + // todo : gérer la création + } + } else { + if (scenario.action === 'voir') { + // tout le titre est null + return null + } else if (scenario.action === 'modifier') { + titre.modification = null + } else { + // todo : gérer la création + } + } + } else if (scenario.cible! === 'demarche') { + // on retire la modification sur le titre + delete titre.modification + // on retire les étapes + delete titre.demarches![0]!.etapes + if (scenario.pouvoir) { + if (scenario.action === 'voir') { + // on teste juste la visibilité, on retire la 'modification' + delete titre.demarches![0]!.modification + } else if (scenario.action === 'modifier') { + // on garde l'id et la modification à true + } else { + // todo : gérer la création + } + } else { + if (scenario.action === 'voir') { + // les démarches sont vides + titre.demarches = [] + } else if (scenario.action === 'modifier') { + titre.demarches![0]!.modification = null + } else { + // todo : gérer la création + } + } + } else if (scenario.cible! === 'etape') { + // on retire la modification sur le titre + delete titre.modification + // on retire la modification sur les démarches + delete titre.demarches![0]!.modification + // l'id de l'étape contient le type d"étape s'il est indiqué + if (scenario.etapeTypeId!) { + titre!.demarches![0]!.etapes![0]!.id = `${scenario.titreId}-demarche-id-${scenario.etapeTypeId}` + } + + if (scenario.pouvoir) { + if (scenario.action === 'voir') { + // on teste juste la visibilité, on retire la 'modification' + delete titre.demarches![0]!.etapes![0]!.modification + } else if (scenario.action === 'modifier') { + // on garde l'id et la modification à true + } else { + // todo : gérer la création + } + } else { + if (scenario.action === 'voir') { + // les étapes sont vides + titre.demarches![0]!.etapes = [] + } else if (scenario.action === 'modifier') { + titre.demarches![0]!.etapes![0]!.modification = null + } else if (scenario.action === 'rien') { + titre.demarches![0]!.etapes = [] + } else { + // todo : gérer la création + } + } + } + + return titre +} + +const scenariosBuild = (administrations: IAdministration[]) => { + const administrationsTests = administrationsTestsBuild(administrations) + + return administrationsTests.map(t => { + const administration = administrations.find( + a => a.id === t.administrationId + ) as IAdministration + + return [ + messageBuild(t), + administration, + titreBuild(t, administration), + resultBuild(t) + ] + }) as IAdministrationTitreTypeTestFormatted[] +} + +export { scenariosBuild } diff --git a/tests/_utils/administrations.ts b/tests/_utils/administrations.ts new file mode 100644 index 0000000000000000000000000000000000000000..af0cb3b61585f80e40eefa9c2df88eeaa49cd572 --- /dev/null +++ b/tests/_utils/administrations.ts @@ -0,0 +1,148 @@ +/* eslint-disable camelcase */ +import { + IAdministration, + IAdministrationTitreType, + IAdministrationTitreTypeEtapeType, + IAdministrationTitreTypeTitreStatut, + IEtapeType, + ITitreStatut, + ITitreType +} from '../../src/types' + +import { readFileSync } from 'fs' +import { join } from 'path' + +interface ISources { + administrations: { + path: string + data: IAdministration[] + } + titresTypes: { + path: string + data: ITitreType[] + } + titresStatuts: { path: string; data: ITitreStatut[] } + administrations__titresTypes: { + path: string + data: IAdministrationTitreType[] + } + administrations__titresTypes__titresStatuts: { + path: string + data: IAdministrationTitreTypeTitreStatut[] + } + administrations__titresTypes__etapesTypes: { + path: string + data: IAdministrationTitreTypeEtapeType[] + } + etapesTypes: { path: string; data: IEtapeType[] } +} + +const sources = { + administrations: { path: '../../sources/administrations.json', data: [] }, + titresTypes: { path: '../../sources/titres-types.json', data: [] }, + titresStatuts: { path: '../../sources/titres-statuts.json', data: [] }, + administrations__titresTypes: { + path: '../../sources/administrations--titres-types.json', + data: [] + }, + administrations__titresTypes__titresStatuts: { + path: '../../sources/administrations--titres-types--titres-statuts.json', + data: [] + }, + administrations__titresTypes__etapesTypes: { + path: '../../sources/administrations--titres-types--etapes-types.json', + data: [] + }, + etapesTypes: { path: '../../sources/etapes-types.json', data: [] } +} as ISources + +const readFile = (filePath: string) => + JSON.parse(readFileSync(join(__dirname, filePath)).toString()) + +type ITruc = IObject | IObject[] | any + +interface IObject { + [key: string]: ITruc +} + +// convertit les clés en camel-case +const jsonKeysCaseChange = (val: ITruc): ITruc => { + if (typeof val !== 'object') { + return val + } + + if (Array.isArray(val)) { + return val.map(jsonKeysCaseChange) + } + + return objectKeysCaseChange(val) +} + +const objectKeysCaseChange = (obj: IObject) => + Object.fromEntries( + Object.entries(obj).map(([key, val]) => [ + key.replace(/_(.)/g, g => g[1].toUpperCase()), + jsonKeysCaseChange(val) + ]) + ) + +Object.keys(sources).forEach(name => { + const element = sources[name as keyof ISources] + + element.data = jsonKeysCaseChange(readFile(element.path)) +}) + +const administrationsWithRelations = sources.administrations.data.map( + (a: IAdministration) => { + a.titresTypes = sources.administrations__titresTypes.data + .filter(att => att.administrationId === a.id) + .map(att => { + const titreType = sources.titresTypes.data.find( + tt => att.titreTypeId === tt.id + )! as ITitreType & IAdministrationTitreType + + titreType.administrationId = att.administrationId + titreType.titreTypeId = att.titreTypeId + + if (att.associee) { + titreType.associee = true + } + + if (att.gestionnaire) { + titreType.gestionnaire = true + } + + return titreType + }) + + a.titresTypesTitresStatuts = sources.administrations__titresTypes__titresStatuts.data + .filter(attts => attts.administrationId === a.id) + .map(attts => { + attts.titreType = sources.titresTypes.data.find( + tt => tt.id === attts.titreTypeId + ) + attts.titreStatut = sources.titresStatuts.data.find( + ts => ts.id === attts.titreStatutId + ) + + return attts + }) + + a.titresTypesEtapesTypes = sources.administrations__titresTypes__etapesTypes.data + .filter(attet => attet.administrationId === a.id) + .map(attet => { + attet.titreType = sources.titresTypes.data.find( + tt => tt.id === attet.titreTypeId + ) + attet.etapeType = sources.etapesTypes.data.find( + te => te.id === attet.etapeTypeId + ) + + return attet + }) + + return a + } +) + +export { administrationsWithRelations } diff --git a/tests/_utils.ts b/tests/_utils/index.ts similarity index 90% rename from tests/_utils.ts rename to tests/_utils/index.ts index fed875e15709f11e8d25cb1b7c28d329ad1d95fd..3d2c085cbe15a80dfbd87919033fdd46f2d8a84f 100644 --- a/tests/_utils.ts +++ b/tests/_utils/index.ts @@ -7,17 +7,17 @@ import { Index, IPermissionId, IUtilisateur -} from '../src/types' +} from '../../src/types' import * as request from 'supertest' -import { app } from './init' +import { app } from '../init' import { utilisateurCreate, utilisateurGet -} from '../src/database/queries/utilisateurs' +} from '../../src/database/queries/utilisateurs' const queryImport = (nom: string) => fs - .readFileSync(path.join(__dirname, `./queries/${nom}.graphql`)) + .readFileSync(path.join(__dirname, `../queries/${nom}.graphql`)) // important pour transformer le buffer en string .toString() diff --git a/tests/administration.test.ts b/tests/administration.test.ts index d3252074b929237d3791c73623509f7b06f17e14..4dc2a40b10d739a28dad250f74f224867948816e 100644 --- a/tests/administration.test.ts +++ b/tests/administration.test.ts @@ -1,7 +1,7 @@ import 'dotenv/config' import { dbManager } from './init' -import { graphQLCall, queryImport } from './_utils' +import { graphQLCall, queryImport } from './_utils/index' import { administrationsUpsert } from '../src/database/queries/administrations' diff --git a/tests/administrations-permissions.test.ts b/tests/administrations-permissions.test.ts new file mode 100644 index 0000000000000000000000000000000000000000..41f0ef308cc16f4d184d9bc825814279bc8c58ab --- /dev/null +++ b/tests/administrations-permissions.test.ts @@ -0,0 +1,40 @@ +import 'dotenv/config' + +import { dbManager } from './init' +import { graphQLCall, queryImport } from './_utils/index' +import { scenariosBuild } from './_utils/administrations-permissions' +import { administrationsWithRelations } from './_utils/administrations' +import { titreCreate } from '../src/database/queries/titres' + +console.info = jest.fn() +console.error = jest.fn() + +beforeAll(async () => { + await dbManager.populateDb() +}) + +afterAll(async () => { + await dbManager.truncateDb() + dbManager.closeKnex() +}) + +describe('permissions des administrations', () => { + const scenarios = scenariosBuild( + administrationsWithRelations.filter(a => a.id === 'ope-onf-973-01') + ) + const titreQuery = queryImport('titre') + + test.each(scenarios)('%s', async (message, administration, titre, result) => { + await titreCreate(titre, {}, 'super') + + const res = await graphQLCall( + titreQuery, + { id: titre.id }, + 'admin', + administration + ) + + expect(res.body.data.titre).toMatchObject(result) + expect(res.body.errors).toBeUndefined() + }) +}) diff --git a/tests/documents.test.ts b/tests/documents.test.ts index 6ebb8a49bb5261eb7a6347a409d9e509f3a5eccc..9608d94fe34c2addc7adc77a31db42e21d70c5d1 100644 --- a/tests/documents.test.ts +++ b/tests/documents.test.ts @@ -1,7 +1,7 @@ import 'dotenv/config' import { dbManager } from './init' -import { graphQLCall, queryImport } from './_utils' +import { graphQLCall, queryImport } from './_utils/index' import { IPermissionId, ITitreEtapeJustificatif } from '../src/types' import { documentCreate, documentGet } from '../src/database/queries/documents' import { entrepriseUpsert } from '../src/database/queries/entreprises' diff --git a/tests/entreprises.test.ts b/tests/entreprises.test.ts index 98a30536b9d412c22565c1267103e4b2941c12dd..9a2ee74f7e1e3f1844c55e1784e8861853929a5e 100644 --- a/tests/entreprises.test.ts +++ b/tests/entreprises.test.ts @@ -1,7 +1,7 @@ import 'dotenv/config' import { dbManager } from './init' -import { graphQLCall, queryImport } from './_utils' +import { graphQLCall, queryImport } from './_utils/index' import { mocked } from 'ts-jest/utils' import { entreprisesEtablissementsFetch, diff --git a/tests/metas.test.ts b/tests/metas.test.ts index 97d161fa9bb390a1b8f5038fd072a72c1846e99f..24506834eb75ee1633893520ca4787195d2869fd 100644 --- a/tests/metas.test.ts +++ b/tests/metas.test.ts @@ -1,7 +1,7 @@ import 'dotenv/config' import { dbManager } from './init' -import { graphQLCall, queryImport } from './_utils' +import { graphQLCall, queryImport } from './_utils/index' console.info = jest.fn() console.error = jest.fn() diff --git a/tests/queries/titre.graphql b/tests/queries/titre.graphql index 76933ec146e629b07390083ab9c78979c8a77571..e15ed868fd9acd33c0c4f63115995978414bbda8 100644 --- a/tests/queries/titre.graphql +++ b/tests/queries/titre.graphql @@ -72,6 +72,7 @@ fragment titre on Titre { activites { ...activite } + modification } fragment activite on Activite { @@ -118,6 +119,7 @@ fragment demarche on Demarche { etapes { ...etape } + modification } fragment etape on Etape { @@ -159,6 +161,7 @@ fragment etape on Etape { documents { ...document } + modification } fragment administration on Administration { diff --git a/tests/titres-demarches.test.ts b/tests/titres-demarches.test.ts index eef79850aa202e7b53d4b0900d4a5a0b8cfbaf2c..cfe08da175d6927ecd39129911e18987277915e0 100644 --- a/tests/titres-demarches.test.ts +++ b/tests/titres-demarches.test.ts @@ -1,7 +1,7 @@ import 'dotenv/config' import { dbManager } from './init' -import { graphQLCall, queryImport } from './_utils' +import { graphQLCall, queryImport } from './_utils/index' import { titreCreate } from '../src/database/queries/titres' import { administrations } from './__mocks__/administrations' import { titreEtapeUpsert } from '../src/database/queries/titres-etapes' diff --git a/tests/titres-etapes-creer.test.ts b/tests/titres-etapes-creer.test.ts index 2960f0f4f5b41ef414cd7b7b90544b54f1db55d7..452e5031531784507ae390c38771924b6b2db10f 100644 --- a/tests/titres-etapes-creer.test.ts +++ b/tests/titres-etapes-creer.test.ts @@ -1,7 +1,7 @@ import 'dotenv/config' import { dbManager } from './init' -import { graphQLCall, queryImport } from './_utils' +import { graphQLCall, queryImport } from './_utils/index' import { titreDemarcheCreate } from '../src/database/queries/titres-demarches' import { titreCreate } from '../src/database/queries/titres' import { IPermissionId } from '../src/types' diff --git a/tests/titres-etapes-modifier.test.ts b/tests/titres-etapes-modifier.test.ts index 76bdbc74acbb3b429923f5e7f12b4d0067c45528..69a99ea7cce0ef96121f0b1f8788d2788656e50c 100644 --- a/tests/titres-etapes-modifier.test.ts +++ b/tests/titres-etapes-modifier.test.ts @@ -1,7 +1,7 @@ import 'dotenv/config' import { dbManager } from './init' -import { graphQLCall, queryImport } from './_utils' +import { graphQLCall, queryImport } from './_utils/index' import { administrations } from './__mocks__/administrations' import { titreDemarcheCreate } from '../src/database/queries/titres-demarches' import { titreCreate } from '../src/database/queries/titres' diff --git a/tests/titres.test.ts b/tests/titres.test.ts index 0e5d6cc7aaaf48c8d0df561138d3115b8579cf5c..a6376e5ea208f29ddfd3fb80e9f3307b31a964c3 100644 --- a/tests/titres.test.ts +++ b/tests/titres.test.ts @@ -1,7 +1,7 @@ import 'dotenv/config' import { dbManager } from './init' -import { graphQLCall, queryImport } from './_utils' +import { graphQLCall, queryImport } from './_utils/index' import { administrations } from './__mocks__/administrations' import { titreWithActiviteGrp, diff --git a/tests/token.test.ts b/tests/token.test.ts index 0f51047ec8987d9a5ad329f42e64314bcaaada68..c7ae3f3c3ca22aac4ed7d80b9600d4f9e28f104a 100644 --- a/tests/token.test.ts +++ b/tests/token.test.ts @@ -1,7 +1,7 @@ import 'dotenv/config' import { dbManager } from './init' -import { graphQLCall, queryImport } from './_utils' +import { graphQLCall, queryImport } from './_utils/index' import Utilisateurs from '../src/database/models/utilisateurs' import * as jwt from 'jsonwebtoken' diff --git a/tests/utilisateurs.test.ts b/tests/utilisateurs.test.ts index bcd39fe6ed88118a75feb51795ff7199ef62f7df..8c76c59623b5b96d2bdb622be6f137868e867d81 100644 --- a/tests/utilisateurs.test.ts +++ b/tests/utilisateurs.test.ts @@ -1,7 +1,7 @@ import 'dotenv/config' import { knex, dbManager, app } from './init' -import { graphQLCall, queryImport, tokenCreate } from './_utils' +import { graphQLCall, queryImport, tokenCreate } from './_utils/index' import * as userAdd from '../knex/user-add' import * as request from 'supertest' import * as jwt from 'jsonwebtoken' diff --git a/tsconfig.json b/tsconfig.json index a18a74f24f4f1dd4d098c3d79df84fd15887c659..e294aa165febd490c75d43b522963cfe2ac4d2d9 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -18,7 +18,7 @@ "target": "ES2017", "types": ["node", "jest"] }, - "exclude": ["node_modules", "**/*.spec.ts", "**/*.test.ts", "**/__mocks__/*"], + "exclude": ["node_modules", "**/*.test.ts", "**/__mocks__/*"], "include": ["src/**/*"], "typedocOptions": { "mode": "modules",