@@ -15,6 +15,11 @@ describe('Quest | Unit | Domain | Models | Success ', function () {
15
15
{ status : KnowledgeElement . StatusType . VALIDATED , skillId : 'skillB' } ,
16
16
{ status : KnowledgeElement . StatusType . INVALIDATED , skillId : 'skillC' } ,
17
17
] ,
18
+ skills : [
19
+ { id : 'skillA' , tubeId : 'tubeA' , difficulty : 1 } ,
20
+ { id : 'skillB' , tubeId : 'tubeB' , difficulty : 1 } ,
21
+ { id : 'skillC' , tubeId : 'tubeC' , difficulty : 1 } ,
22
+ ] ,
18
23
} ) ;
19
24
20
25
// when
@@ -37,6 +42,12 @@ describe('Quest | Unit | Domain | Models | Success ', function () {
37
42
{ status : KnowledgeElement . StatusType . INVALIDATED , skillId : 'skillC' } ,
38
43
{ status : KnowledgeElement . StatusType . INVALIDATED , skillId : 'skillD' } ,
39
44
] ,
45
+ skills : [
46
+ { id : 'skillA' , tubeId : 'tubeA' , difficulty : 1 } ,
47
+ { id : 'skillB' , tubeId : 'tubeB' , difficulty : 1 } ,
48
+ { id : 'skillC' , tubeId : 'tubeC' , difficulty : 1 } ,
49
+ { id : 'skillD' , tubeId : 'tubeD' , difficulty : 1 } ,
50
+ ] ,
40
51
} ) ;
41
52
42
53
// when
@@ -48,4 +59,78 @@ describe('Quest | Unit | Domain | Models | Success ', function () {
48
59
} ) ;
49
60
} ) ;
50
61
} ) ;
62
+ /*
63
+ describe('#getMasteryPercentageForCappedTubes', function () {
64
+ context('when no cappedTubes provided', function () {
65
+ it('should return 0', function () {
66
+ // given
67
+ const cappedTubesEmpty = [];
68
+ const brokenCappedTubes = null;
69
+ const success = new Success({
70
+ knowledgeElements: [
71
+ { status: KnowledgeElement.StatusType.VALIDATED, skillId: 'skillA' },
72
+ { status: KnowledgeElement.StatusType.VALIDATED, skillId: 'skillB' },
73
+ { status: KnowledgeElement.StatusType.INVALIDATED, skillId: 'skillC' },
74
+ ],
75
+ skills: [
76
+ { id: 'skillA', tubeId: 'tubeA', difficulty: 1 },
77
+ { id: 'skillB', tubeId: 'tubeB', difficulty: 1 },
78
+ { id: 'skillC', tubeId: 'tubeC', difficulty: 1 },
79
+ ],
80
+ });
81
+
82
+ // when
83
+ const masteryPercentageEmpty = success.getMasteryPercentageForCappedTubes(cappedTubesEmpty);
84
+ const masteryPercentageBroken = success.getMasteryPercentageForCappedTubes(brokenCappedTubes);
85
+
86
+ // then
87
+ expect(masteryPercentageEmpty).to.equal(0);
88
+ expect(masteryPercentageBroken).to.equal(0);
89
+ });
90
+ });
91
+ context('when cappedTubes are provided', function () {
92
+ it('should return the expected mastery percentage according to knowledge elements by tube in Success model', function () {
93
+ // given
94
+ const success = new Success({
95
+ // 1/2 sur tubeA cappé 2
96
+ // 2/3 sur tubeB cappé 3
97
+ // au final ça donne 3 / 5 -> 60%
98
+ knowledgeElements: [
99
+ { status: KnowledgeElement.StatusType.VALIDATED, skillId: 'skill1tubeA' },
100
+ { status: KnowledgeElement.StatusType.INVALIDATED, skillId: 'skill2tubeA' },
101
+ { status: KnowledgeElement.StatusType.VALIDATED, skillId: 'skill3tubeA' }, // ignoré, hors cap
102
+ { status: KnowledgeElement.StatusType.VALIDATED, skillId: 'skill4tubeA' }, // ignoré, hors cap
103
+ { status: KnowledgeElement.StatusType.VALIDATED, skillId: 'skill1tubeB' },
104
+ { status: KnowledgeElement.StatusType.VALIDATED, skillId: 'skill2tubeB' },
105
+ { status: KnowledgeElement.StatusType.INVALIDATED, skillId: 'skill3tubeB' },
106
+ { status: KnowledgeElement.StatusType.VALIDATED, skillId: 'skillTubeC' }, // ignoré, hors scope
107
+ { status: KnowledgeElement.StatusType.VALIDATED, skillId: 'skillTubeD' }, // ignoré, hors scope
108
+ ],
109
+ skills: [
110
+ { id: 'skill1tubeA', tubeId: 'tubeA', difficulty: 1 },
111
+ { id: 'skill2tubeA', tubeId: 'tubeA', difficulty: 2 },
112
+ { id: 'skill3tubeA', tubeId: 'tubeA', difficulty: 3 },
113
+ { id: 'skill4tubeA', tubeId: 'tubeA', difficulty: 4 },
114
+ { id: 'skill1tubeB', tubeId: 'tubeB', difficulty: 1 },
115
+ { id: 'skill2tubeB', tubeId: 'tubeB', difficulty: 2 },
116
+ { id: 'skill3tubeB', tubeId: 'tubeB', difficulty: 3 },
117
+ { id: 'skillTubeC', tubeId: 'tubeC', difficulty: 1 },
118
+ { id: 'skillTubeD', tubeId: 'tubeD', difficulty: 1 },
119
+ ],
120
+ });
121
+
122
+ // when
123
+ const cappedTubes = [
124
+ { tubeId: 'tubeA', level: 2 },
125
+ { tubeId: 'tubeB', level: 3 },
126
+ ];
127
+ const masteryPercentage = success.getMasteryPercentageForCappedTubes(cappedTubes);
128
+
129
+ // then
130
+ const expectedMasteryPercentage = 60;
131
+ expect(masteryPercentage).to.be.equal(expectedMasteryPercentage);
132
+ });
133
+ });
134
+ });
135
+ */
51
136
} ) ;
0 commit comments