UNPKG

@open3cl/engine

Version:

Open Source 3CL-DPE engine

183 lines (169 loc) 6.16 kB
import getFicheTechnique from './ficheTechnique.js'; import { describe, expect, test } from 'vitest'; describe('FicheTechnique service tests', () => { const dpe = { fiche_technique_collection: { fiche_technique: [ { enum_categorie_fiche_technique_id: '10', sous_fiche_technique_collection: { sous_fiche_technique: [ { description: 'Type de ventilation: VMC SF Auto réglable avant 1982', valeur: 'VMC SF Auto réglable avant 1982', detail_origine_donnee: '', enum_origine_donnee_id: '2' }, { description: 'Année installation: 1949', valeur: 1949, detail_origine_donnee: '', enum_origine_donnee_id: '1' }, { description: 'Energie utilisée: Electrique', valeur: 'Electrique', detail_origine_donnee: '', enum_origine_donnee_id: '2' }, { description: 'Façades exposées: plusieurs', valeur: 'plusieurs', detail_origine_donnee: '', enum_origine_donnee_id: '2' }, { description: 'Logement Traversant: oui', valeur: 'oui', detail_origine_donnee: '', enum_origine_donnee_id: '2' } ] } }, { enum_categorie_fiche_technique_id: '10', sous_fiche_technique_collection: { sous_fiche_technique: [ { description: 'Type de ventilation: VMC SF Auto réglable avant 1982', valeur: 'VMC SF Auto réglable avant 1982', detail_origine_donnee: '', enum_origine_donnee_id: '2' }, { description: 'Année installation: 1950', valeur: 1950, detail_origine_donnee: '', enum_origine_donnee_id: '1' }, { description: 'Energie utilisée: Bois', valeur: 'Bois', detail_origine_donnee: '', enum_origine_donnee_id: '2' }, { description: 'Façades exposées: plusieurs', valeur: 'plusieurs', detail_origine_donnee: '', enum_origine_donnee_id: '2' }, { description: 'Logement Traversant: oui', valeur: 'oui', detail_origine_donnee: '', enum_origine_donnee_id: '2' } ] } }, { enum_categorie_fiche_technique_id: '10', sous_fiche_technique_collection: { sous_fiche_technique: [ { description: 'Type de ventilation: VMC SF Auto réglable avant 1982', valeur: 'VMC SF Auto réglable avant 1982', detail_origine_donnee: '', enum_origine_donnee_id: '2' }, { description: 'Année installation: 1950', valeur: 1950, detail_origine_donnee: '', enum_origine_donnee_id: '1' }, { description: 'Energie utilisée: Gaz', valeur: 'Gaz', detail_origine_donnee: '', enum_origine_donnee_id: '2' }, { description: 'Façades exposées: plusieurs', valeur: 'aucune', detail_origine_donnee: '', enum_origine_donnee_id: '2' }, { description: 'Logement Traversant: oui', valeur: 'oui', detail_origine_donnee: '', enum_origine_donnee_id: '2' } ] } } ] } }; test('should return a fiche technique', async () => { let fiche = getFicheTechnique(dpe, '10', 'exposées'); expect(fiche).not.toBeNull(); expect(fiche.description).toBe('Façades exposées: plusieurs'); expect(fiche.valeur).toBe('plusieurs'); // Some DPE have a fiche_technique node which is not an array const dpeWithoutArray = { fiche_technique_collection: { fiche_technique: { enum_categorie_fiche_technique_id: '10', sous_fiche_technique_collection: { sous_fiche_technique: [ { description: 'Façades exposées: plusieurs', valeur: 'plusieurs', detail_origine_donnee: '', enum_origine_donnee_id: '2' } ] } } } }; fiche = getFicheTechnique(dpeWithoutArray, '10', 'exposées'); expect(fiche).not.toBeNull(); }); test('should return a fiche technique with multiple criteria', async () => { let fiche = getFicheTechnique(dpe, '10', 'exposées', [1950, 'Gaz']); expect(fiche).not.toBeNull(); expect(fiche.description).toBe('Façades exposées: plusieurs'); expect(fiche.valeur).toBe('aucune'); }); test('should not return a non existing fiche technique', async () => { let fiche = getFicheTechnique(dpe, '40', 'exposées'); expect(fiche).toBeNull(); fiche = getFicheTechnique(dpe, '10', 'non existing'); expect(fiche).toBeNull(); dpe.fiche_technique_collection.fiche_technique[0].sous_fiche_technique_collection.sous_fiche_technique = null; fiche = getFicheTechnique(dpe, '11', 'non existing'); expect(fiche).toBeNull(); dpe.fiche_technique_collection.fiche_technique[0].sous_fiche_technique_collection = null; fiche = getFicheTechnique(dpe, '11', 'non existing'); expect(fiche).toBeNull(); dpe.fiche_technique_collection.fiche_technique = null; fiche = getFicheTechnique(dpe, '10', 'non existing'); expect(fiche).toBeNull(); }); });