-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpre-process-murs.service.spec.js
More file actions
executable file
·89 lines (77 loc) · 3.49 KB
/
pre-process-murs.service.spec.js
File metadata and controls
executable file
·89 lines (77 loc) · 3.49 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
import { describe, expect, it } from 'vitest';
import { PreProcessMursService } from './pre-process-murs.service.js';
describe('PreProcessMursService service tests', () => {
const service = new PreProcessMursService();
const dpe = {
logement: {
enveloppe: {
mur_collection: {
mur: [
{
donnee_entree: {
description: 'Mur en blocs de béton creux Ep <=20cm avec isolant (ITI) Ep=10 cm',
enum_orientation_id: '4',
tv_umur0_id: '46',
enum_type_vitrage_id: '2',
enum_type_doublage_id: '1',
enum_type_baie_id: '4',
enum_type_materiaux_menuiserie_id: '5'
}
}
]
}
}
}
};
it('Aucun action si aucun mur spécifié', async () => {
let dpe = { logement: { enveloppe: { mur_collection: { mur: [] } } } };
service.preprocess(dpe);
expect(dpe.logement.enveloppe.mur_collection.mur.length).toBe(0);
dpe = { logement: { enveloppe: { mur_collection: {} } } };
service.preprocess(dpe);
expect(dpe.logement.enveloppe.mur_collection.mur).toBeUndefined();
});
it('epaisseur_structure mis à jour à partir de la description', async () => {
delete dpe.logement.enveloppe.mur_collection.mur[0].donnee_entree.epaisseur_structure;
service.preprocess(dpe);
expect(dpe.logement.enveloppe.mur_collection.mur[0].donnee_entree.epaisseur_structure).toBe(10);
});
it('epaisseur_structure mis à jour à partir des données tv_umur0_id', async () => {
delete dpe.logement.enveloppe.mur_collection.mur[0].donnee_entree.epaisseur_structure;
dpe.logement.enveloppe.mur_collection.mur[0].donnee_entree.description = '';
service.preprocess(dpe);
expect(dpe.logement.enveloppe.mur_collection.mur[0].donnee_entree.epaisseur_structure).toBe(23);
delete dpe.logement.enveloppe.mur_collection.mur[0].donnee_entree.epaisseur_structure;
dpe.logement.enveloppe.mur_collection.mur[0].donnee_entree.tv_umur0_id = '38';
service.preprocess(dpe);
expect(dpe.logement.enveloppe.mur_collection.mur[0].donnee_entree.epaisseur_structure).toBe(10);
delete dpe.logement.enveloppe.mur_collection.mur[0].donnee_entree.epaisseur_structure;
dpe.logement.enveloppe.mur_collection.mur[0].donnee_entree.tv_umur0_id = '41';
service.preprocess(dpe);
expect(dpe.logement.enveloppe.mur_collection.mur[0].donnee_entree.epaisseur_structure).toBe(25);
});
it.each([
['1', '1', ''],
['1', '5', 'doublage connu (plâtre, brique'],
['1', '4', 'doublage indéterminé avec lame'],
['1', '3', 'doublage indéterminé ou lame'],
['2', '2', ''],
['2', '5', 'doublage connu (plâtre, brique'],
['2', '4', 'doublage indéterminé avec lame'],
['2', '3', 'doublage indéterminé ou lame'],
['3', '3', 'doublage connu (plâtre, brique'],
['4', '4', 'doublage indéterminé ou lame'],
['5', '5', 'doublage indéterminé ou lame']
])(
'enum_type_doublage_id %s mis à jour en %s à partir de la description %s',
(enum_type_doublage_id, expectedTypeDoublage, description) => {
dpe.logement.enveloppe.mur_collection.mur[0].donnee_entree.enum_type_doublage_id =
enum_type_doublage_id;
dpe.logement.enveloppe.mur_collection.mur[0].donnee_entree.description = description;
service.preprocess(dpe);
expect(dpe.logement.enveloppe.mur_collection.mur[0].donnee_entree.enum_type_doublage_id).toBe(
expectedTypeDoublage
);
}
);
});