gw2e-account-statistics 3.17.4 → 3.18.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -66,9 +66,15 @@ exports.default = {
66
66
  91241, // Cardinal Sabir's Coffer
67
67
  91200, // Cardinal Adina's Coffer
68
68
  91260, // Qadim the Peerless's Coffer
69
- 103783, // Greer's Coffer
70
- 103926, // Decima's Coffer
71
- 103946 // Ura's Coffer
69
+ 103783, // Greer's Coffer (old)
70
+ 104306, // Greer's Coffer
71
+ 104399, // Greer's Magnificent Coffer
72
+ 103926, // Decima's Coffer (old)
73
+ 104410, // Decima's Coffer
74
+ 104246, // Decima's Magnificent Coffer
75
+ 103946, // Ura's Coffer (old)
76
+ 104439, // Ura's Coffer
77
+ 104355 // Ura's Magnificent Coffer
72
78
  ],
73
79
  strikeCmCoffers: [97269, // Mai Trin's Magnificent Coffer
74
80
  96638, // Ankka's Magnificent Coffer
@@ -72,5 +72,8 @@ exports.default = {
72
72
  pinchOfStardust: 73,
73
73
  calcifiedGasp: 75,
74
74
  ursusOblige: 76,
75
- gaetingCrystals: 77
75
+ gaetingCrystals: 77,
76
+ _essenceOfDespairFromWallet: 78,
77
+ _essenceOfGreedFromWallet: 80,
78
+ _essenceOfTriumphFromWallet: 79
76
79
  };
@@ -13,9 +13,13 @@ exports.default = function (accountStatistics) {
13
13
  blueProphetCrystal: blueProphetCrystal(accountStatistics),
14
14
  greenProphetCrystal: greenProphetCrystal(accountStatistics),
15
15
  redProphetCrystal: redProphetCrystal(accountStatistics),
16
+ commandersChoiceChestsCount: commandersChoiceChestsCount(accountStatistics),
16
17
 
17
18
  // We use the old key here because we want to continue the statistic for the user for the discontinued items
18
- unstableCosmicEssences: unstableFractalEssence(accountStatistics)
19
+ unstableCosmicEssences: unstableFractalEssence(accountStatistics),
20
+ essenceOfDespair: fineRifEssenceCount(accountStatistics),
21
+ essenceOfGreed: masterworkRifEssenceCount(accountStatistics),
22
+ essenceOfTriumph: rareRifEssenceCount(accountStatistics)
19
23
  };
20
24
  };
21
25
 
@@ -43,7 +47,7 @@ function deathCountPerHour(accountStatistics) {
43
47
 
44
48
  // Get the total number of auras
45
49
  function totalAuras(accountStatistics) {
46
- var keys = ['nightfury', 'wintersPresence', 'legendaryItemsTrinket'].concat(Object.keys(_cosmeticAuras2.default));
50
+ var keys = ['nightfury', 'wintersPresence', 'legendaryItemsTrinket', 'rimeRimmedRebreather'].concat(Object.keys(_cosmeticAuras2.default));
47
51
 
48
52
  // All keys have to be set
49
53
  var statisticsKeys = Object.keys(accountStatistics);
@@ -133,4 +137,36 @@ function raidTokenCount(accountStatistics) {
133
137
  }
134
138
 
135
139
  return accountStatistics._legendaryInsightsFromItems + accountStatistics._legendaryDivinationsFromItems + accountStatistics._legendaryInsightsFromWallet;
140
+ }
141
+
142
+ function fineRifEssenceCount(accountStatistics) {
143
+ if (accountStatistics._essenceOfDespairFromItems == null || accountStatistics._essenceOfDespairFromWallet == null) {
144
+ return null;
145
+ }
146
+
147
+ return accountStatistics._essenceOfDespairFromItems + accountStatistics._essenceOfDespairFromWallet;
148
+ }
149
+
150
+ function masterworkRifEssenceCount(accountStatistics) {
151
+ if (accountStatistics._essenceOfGreedFromItems == null || accountStatistics._essenceOfGreedFromWallet == null) {
152
+ return null;
153
+ }
154
+
155
+ return accountStatistics._essenceOfGreedFromItems + accountStatistics._essenceOfGreedFromWallet;
156
+ }
157
+
158
+ function rareRifEssenceCount(accountStatistics) {
159
+ if (accountStatistics._essenceOfTriumphFromItems == null || accountStatistics._essenceOfTriumphFromWallet == null) {
160
+ return null;
161
+ }
162
+
163
+ return accountStatistics._essenceOfTriumphFromItems + accountStatistics._essenceOfTriumphFromWallet;
164
+ }
165
+
166
+ function commandersChoiceChestsCount(accountStatistics) {
167
+ if (accountStatistics.vbHerosChoice == null || accountStatistics.tdHerosChoice == null || accountStatistics.abHerosChoice == null || accountStatistics.dsHerosChoice == null || accountStatistics.crystalOasisHerosChoice == null || accountStatistics.elonRiverlandsHerosChoice == null || accountStatistics.theDesolationHerosChoice == null || accountStatistics.domainOfVabbiHerosChoice == null || accountStatistics.seitungProvinceHerosChoice == null || accountStatistics.newKainengCityHerosChoice == null || accountStatistics.echovaldWildsHerosChoice == null || accountStatistics.dragonsEndHerosChoice == null || accountStatistics.gyalaDelveHerosChoice == null || accountStatistics.skywatchArchipelagoHerosChoice == null || accountStatistics.amnytasHerosChoice == null || accountStatistics.innerNayosEndHerosChoice == null || accountStatistics.convergenceHerosChoice == null || accountStatistics.convergenceMountBalriorWayfindersChoice == null || accountStatistics.citadelOfZakirosHerosChoice == null || accountStatistics.janthirSyntriHerosChoice == null || accountStatistics.bavaNisosCommandersChoice == null) {
168
+ return null;
169
+ }
170
+
171
+ return accountStatistics.vbHerosChoice + accountStatistics.tdHerosChoice + accountStatistics.abHerosChoice + accountStatistics.dsHerosChoice + accountStatistics.crystalOasisHerosChoice + accountStatistics.elonRiverlandsHerosChoice + accountStatistics.theDesolationHerosChoice + accountStatistics.domainOfVabbiHerosChoice + accountStatistics.seitungProvinceHerosChoice + accountStatistics.newKainengCityHerosChoice + accountStatistics.echovaldWildsHerosChoice + accountStatistics.dragonsEndHerosChoice + accountStatistics.gyalaDelveHerosChoice + accountStatistics.skywatchArchipelagoHerosChoice + accountStatistics.amnytasHerosChoice + accountStatistics.innerNayosEndHerosChoice + accountStatistics.convergenceHerosChoice + accountStatistics.convergenceMountBalriorWayfindersChoice + accountStatistics.citadelOfZakirosHerosChoice + accountStatistics.janthirSyntriHerosChoice + accountStatistics.bavaNisosCommandersChoice;
136
172
  }
@@ -51,9 +51,9 @@ exports.default = function (accountData, extraInformation) {
51
51
  hatchedChili: countItems(items, 92072),
52
52
  eternalIceShard: countItems(items, 92272),
53
53
  eitriteIngots: countItems(items, 92317),
54
- essenceOfDespair: countItems(items, 100078),
55
- essenceOfGreed: countItems(items, 100414),
56
- essenceOfTriumph: countItems(items, 100055),
54
+ _essenceOfDespairFromItems: countItems(items, [100078, 104747]),
55
+ _essenceOfGreedFromItems: countItems(items, [100414, 104773]),
56
+ _essenceOfTriumphFromItems: countItems(items, [100055, 105009]),
57
57
 
58
58
  // (4) DUNGEONS
59
59
  chestOfDungeoneering: countItems(items, [78252, 98187]),
@@ -110,26 +110,27 @@ exports.default = function (accountData, extraInformation) {
110
110
  championBags: countItems(items, _championBagIds2.default),
111
111
  tripleTroubleChests: countItems(items, 49664),
112
112
  tequatlChests: countItems(items, 47836),
113
- vbHerosChoice: countItems(items, [78171, 78743]),
114
- tdHerosChoice: countItems(items, [78332, 78751]),
115
- abHerosChoice: countItems(items, [78650, 78748]),
116
- dsHerosChoice: countItems(items, [78617, 78783]),
117
- crystalOasisHerosChoice: countItems(items, 90958),
118
- elonRiverlandsHerosChoice: countItems(items, 91039),
119
- theDesolationHerosChoice: countItems(items, [84360, 90994]),
120
- domainOfVabbiHerosChoice: countItems(items, 83035),
121
- seitungProvinceHerosChoice: countItems(items, 97895),
122
- newKainengCityHerosChoice: countItems(items, 97901),
123
- echovaldWildsHerosChoice: countItems(items, 97894),
124
- dragonsEndHerosChoice: countItems(items, 97896),
125
- gyalaDelveHerosChoice: countItems(items, 99704),
126
- skywatchArchipelagoHerosChoice: countItems(items, 100547),
127
- amnytasHerosChoice: countItems(items, 100193),
128
- innerNayosEndHerosChoice: countItems(items, 101195),
129
- convergenceHerosChoice: countItems(items, 101185),
113
+ vbHerosChoice: countItems(items, [78171, 78743, 104687]),
114
+ tdHerosChoice: countItems(items, [78332, 78751, 104884]),
115
+ abHerosChoice: countItems(items, [78650, 78748, 104944]),
116
+ dsHerosChoice: countItems(items, [78617, 78783, 104894]),
117
+ crystalOasisHerosChoice: countItems(items, [90958, 104798]),
118
+ elonRiverlandsHerosChoice: countItems(items, [91039, 104943]),
119
+ theDesolationHerosChoice: countItems(items, [84360, 90994, 104748]),
120
+ domainOfVabbiHerosChoice: countItems(items, [83035, 104803]),
121
+ seitungProvinceHerosChoice: countItems(items, [97895, 104973]),
122
+ newKainengCityHerosChoice: countItems(items, [97901, 104988]),
123
+ echovaldWildsHerosChoice: countItems(items, [97894, 104885]),
124
+ dragonsEndHerosChoice: countItems(items, [97896, 104910]),
125
+ gyalaDelveHerosChoice: countItems(items, [99704, 104738]),
126
+ skywatchArchipelagoHerosChoice: countItems(items, [100547, 104686]),
127
+ amnytasHerosChoice: countItems(items, [100193, 104730]),
128
+ innerNayosEndHerosChoice: countItems(items, [101195, 104856]),
129
+ convergenceHerosChoice: countItems(items, [101185, 104710, 104756]),
130
130
  convergenceMountBalriorWayfindersChoice: countItems(items, 103842),
131
- citadelOfZakirosHerosChoice: countItems(items, 101748),
132
- janthirSyntriHerosChoice: countItems(items, 102265),
131
+ citadelOfZakirosHerosChoice: countItems(items, [101748, 104728]),
132
+ janthirSyntriHerosChoice: countItems(items, [102265, 104832, 104942]),
133
+ bavaNisosCommandersChoice: countItems(items, 104714),
133
134
  giftsOfExploration: countItems(items, 19677),
134
135
  giftsOfBattle: countItems(items, 19678),
135
136
  tomesOfKnowledge: countItems(items, [43741, 43766]),
@@ -9,7 +9,10 @@ exports.default = function (accountData) {
9
9
  masteryPointsTyria: null,
10
10
  masteryPointsMaguuma: null,
11
11
  masteryPointsDesert: null,
12
- masteryPointsCrystal: null
12
+ masteryPointsCrystal: null,
13
+ masteryPointsEndOfDragons: null,
14
+ masteryPointsSecretsOfTheObscure: null,
15
+ masteryPointsJanthirWilds: null
13
16
  };
14
17
  }
15
18
 
@@ -23,10 +26,13 @@ exports.default = function (accountData) {
23
26
 
24
27
  return {
25
28
  masteryPoints: (0, _sumBy2.default)(Object.values(earnedMasteryPoints)),
26
- masteryPointsTyria: earnedMasteryPoints['Tyria'] || 0,
27
- masteryPointsMaguuma: earnedMasteryPoints['Maguuma'] || 0,
28
- masteryPointsDesert: earnedMasteryPoints['Desert'] || 0,
29
- masteryPointsCrystal: earnedMasteryPoints['Tundra'] || 0
29
+ masteryPointsTyria: earnedMasteryPoints['Central Tyria'] || 0,
30
+ masteryPointsMaguuma: earnedMasteryPoints['Heart of Thorns'] || 0,
31
+ masteryPointsDesert: earnedMasteryPoints['Path of Fire'] || 0,
32
+ masteryPointsCrystal: earnedMasteryPoints['Icebrood Saga'] || 0,
33
+ masteryPointsEndOfDragons: earnedMasteryPoints['End of Dragons'] || 0,
34
+ masteryPointsSecretsOfTheObscure: earnedMasteryPoints['Secrets of the Obscure'] || 0,
35
+ masteryPointsJanthirWilds: earnedMasteryPoints['Janthir Wilds'] || 0
30
36
  };
31
37
  };
32
38
 
@@ -31,6 +31,7 @@ exports.default = function (accountData, extraInformation) {
31
31
  fractalSkins: fractalSkins(accountData),
32
32
  immortalSkins: immortalSkins(accountData),
33
33
  wintersPresence: skinExists(accountData, 6577),
34
+ rimeRimmedRebreather: skinExists(accountData, 6891),
34
35
  nightfury: skinExists(accountData, 6161),
35
36
  _fractalRelicsFromTitles: fractalRelicsFromTitles(accountData),
36
37
  _pristineFractalRelicsFromTitles: pristineFractalRelicsFromTitles(accountData),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gw2e-account-statistics",
3
- "version": "3.17.4",
3
+ "version": "3.18.1",
4
4
  "description": "Calculate statistics of guildwars2 accounts",
5
5
  "main": "./build/index.js",
6
6
  "scripts": {
@@ -19,7 +19,7 @@
19
19
  "mockdate": "^2.0.0"
20
20
  },
21
21
  "dependencies": {
22
- "@gw2efficiency/game-data": "^0.1.50",
22
+ "@gw2efficiency/game-data": "^0.1.58",
23
23
  "array-unique": "^0.3.2",
24
24
  "gw2e-account-value": "^3.13.1",
25
25
  "gw2e-static-data": "^0.5.32",
@@ -10,6 +10,7 @@ describe('statistics > aggregate', () => {
10
10
  nightfury: 0,
11
11
  wintersPresence: 1,
12
12
  legendaryItemsTrinket: 1,
13
+ rimeRimmedRebreather: 1,
13
14
 
14
15
  abyssalInfusion: 1,
15
16
  baubleInfusions: 1,
@@ -48,10 +49,13 @@ describe('statistics > aggregate', () => {
48
49
  silentSymphony: 1,
49
50
  arcaneFlowInfusion: 1,
50
51
  mistwalkerInfusion: 1,
52
+ bloodstoneInfusion: 1,
53
+ heatCoreInfusion: 1,
54
+ forestWispInfusion: 1,
51
55
 
52
56
  // (!) Has to be ignored, else it's counting double
53
57
  celestialInfusion: 999
54
- }).totalAuras).to.equal(39)
58
+ }).totalAuras).to.equal(43)
55
59
  })
56
60
 
57
61
  it('can calculate death count per hour', () => {
@@ -176,4 +180,681 @@ describe('statistics > aggregate', () => {
176
180
  _unstableFractalEssenceFromItems: 1200
177
181
  }).unstableCosmicEssences).to.equal(1651 + 500 + 1200)
178
182
  })
183
+
184
+ it('can calculate fine rift essence count', () => {
185
+ expect(aggregateStatistics({}).essenceOfDespair).to.equal(null)
186
+
187
+ expect(
188
+ aggregateStatistics({
189
+ _essenceOfDespairFromItems: null,
190
+ _essenceOfDespairFromWallet: 1
191
+ }).essenceOfDespair
192
+ ).to.equal(null)
193
+
194
+ expect(
195
+ aggregateStatistics({
196
+ _essenceOfDespairFromItems: 1,
197
+ _essenceOfDespairFromWallet: null
198
+ }).essenceOfDespair
199
+ ).to.equal(null)
200
+
201
+ expect(
202
+ aggregateStatistics({
203
+ _essenceOfDespairFromItems: 1,
204
+ _essenceOfDespairFromWallet: 5
205
+ }).essenceOfDespair
206
+ ).to.equal(6)
207
+ })
208
+
209
+ it('can calculate masterwork rift essence count', () => {
210
+ expect(aggregateStatistics({}).essenceOfGreed).to.equal(null)
211
+
212
+ expect(
213
+ aggregateStatistics({
214
+ _essenceOfGreedFromItems: null,
215
+ _essenceOfGreedFromWallet: 1
216
+ }).essenceOfGreed
217
+ ).to.equal(null)
218
+
219
+ expect(
220
+ aggregateStatistics({
221
+ _essenceOfGreedFromItems: 1,
222
+ _essenceOfGreedFromWallet: null
223
+ }).essenceOfGreed
224
+ ).to.equal(null)
225
+
226
+ expect(
227
+ aggregateStatistics({
228
+ _essenceOfGreedFromItems: 1,
229
+ _essenceOfGreedFromWallet: 5
230
+ }).essenceOfGreed
231
+ ).to.equal(6)
232
+ })
233
+
234
+ it('can calculate fine rift essence count', () => {
235
+ expect(aggregateStatistics({}).essenceOfTriumph).to.equal(null)
236
+
237
+ expect(
238
+ aggregateStatistics({
239
+ _essenceOfTriumphFromItems: null,
240
+ _essenceOfTriumphFromWallet: 1
241
+ }).essenceOfTriumph
242
+ ).to.equal(null)
243
+
244
+ expect(
245
+ aggregateStatistics({
246
+ _essenceOfTriumphFromItems: 1,
247
+ _essenceOfTriumphFromWallet: null
248
+ }).essenceOfTriumph
249
+ ).to.equal(null)
250
+
251
+ expect(
252
+ aggregateStatistics({
253
+ _essenceOfTriumphFromItems: 1,
254
+ _essenceOfTriumphFromWallet: 5
255
+ }).essenceOfTriumph
256
+ ).to.equal(6)
257
+ })
258
+
259
+ it('can calculate commanders choice chests count', () => {
260
+ expect(aggregateStatistics({}).commandersChoiceChestsCount).to.equal(null)
261
+
262
+ expect(
263
+ aggregateStatistics({
264
+ vbHerosChoice: null,
265
+ tdHerosChoice: null,
266
+ abHerosChoice: null,
267
+ dsHerosChoice: null,
268
+ crystalOasisHerosChoice: null,
269
+ elonRiverlandsHerosChoice: null,
270
+ theDesolationHerosChoice: null,
271
+ domainOfVabbiHerosChoice: null,
272
+ seitungProvinceHerosChoice: null,
273
+ newKainengCityHerosChoice: null,
274
+ echovaldWildsHerosChoice: null,
275
+ dragonsEndHerosChoice: null,
276
+ gyalaDelveHerosChoice: null,
277
+ skywatchArchipelagoHerosChoice: null,
278
+ amnytasHerosChoice: null,
279
+ innerNayosEndHerosChoice: null,
280
+ convergenceHerosChoice: null,
281
+ convergenceMountBalriorWayfindersChoice: null,
282
+ citadelOfZakirosHerosChoice: null,
283
+ janthirSyntriHerosChoice: 1,
284
+ bavaNisosCommandersChoice: null
285
+ }).commandersChoiceChestsCount
286
+ ).to.equal(null)
287
+
288
+ expect(
289
+ aggregateStatistics({
290
+ vbHerosChoice: null,
291
+ tdHerosChoice: null,
292
+ abHerosChoice: null,
293
+ dsHerosChoice: null,
294
+ crystalOasisHerosChoice: null,
295
+ elonRiverlandsHerosChoice: null,
296
+ theDesolationHerosChoice: null,
297
+ domainOfVabbiHerosChoice: null,
298
+ seitungProvinceHerosChoice: null,
299
+ newKainengCityHerosChoice: null,
300
+ echovaldWildsHerosChoice: null,
301
+ dragonsEndHerosChoice: null,
302
+ gyalaDelveHerosChoice: null,
303
+ skywatchArchipelagoHerosChoice: null,
304
+ amnytasHerosChoice: null,
305
+ innerNayosEndHerosChoice: null,
306
+ convergenceHerosChoice: null,
307
+ convergenceMountBalriorWayfindersChoice: null,
308
+ citadelOfZakirosHerosChoice: 1,
309
+ janthirSyntriHerosChoice: null,
310
+ bavaNisosCommandersChoice: null
311
+ }).commandersChoiceChestsCount
312
+ ).to.equal(null)
313
+
314
+ expect(
315
+ aggregateStatistics({
316
+ vbHerosChoice: null,
317
+ tdHerosChoice: null,
318
+ abHerosChoice: null,
319
+ dsHerosChoice: null,
320
+ crystalOasisHerosChoice: null,
321
+ elonRiverlandsHerosChoice: null,
322
+ theDesolationHerosChoice: null,
323
+ domainOfVabbiHerosChoice: null,
324
+ seitungProvinceHerosChoice: null,
325
+ newKainengCityHerosChoice: null,
326
+ echovaldWildsHerosChoice: null,
327
+ dragonsEndHerosChoice: null,
328
+ gyalaDelveHerosChoice: null,
329
+ skywatchArchipelagoHerosChoice: null,
330
+ amnytasHerosChoice: null,
331
+ innerNayosEndHerosChoice: null,
332
+ convergenceHerosChoice: null,
333
+ convergenceMountBalriorWayfindersChoice: 1,
334
+ citadelOfZakirosHerosChoice: null,
335
+ janthirSyntriHerosChoice: null,
336
+ bavaNisosCommandersChoice: null
337
+ }).commandersChoiceChestsCount
338
+ ).to.equal(null)
339
+
340
+ expect(
341
+ aggregateStatistics({
342
+ vbHerosChoice: null,
343
+ tdHerosChoice: null,
344
+ abHerosChoice: null,
345
+ dsHerosChoice: null,
346
+ crystalOasisHerosChoice: null,
347
+ elonRiverlandsHerosChoice: null,
348
+ theDesolationHerosChoice: null,
349
+ domainOfVabbiHerosChoice: null,
350
+ seitungProvinceHerosChoice: null,
351
+ newKainengCityHerosChoice: null,
352
+ echovaldWildsHerosChoice: null,
353
+ dragonsEndHerosChoice: null,
354
+ gyalaDelveHerosChoice: null,
355
+ skywatchArchipelagoHerosChoice: null,
356
+ amnytasHerosChoice: null,
357
+ innerNayosEndHerosChoice: null,
358
+ convergenceHerosChoice: 1,
359
+ convergenceMountBalriorWayfindersChoice: null,
360
+ citadelOfZakirosHerosChoice: null,
361
+ janthirSyntriHerosChoice: null,
362
+ bavaNisosCommandersChoice: null
363
+ }).commandersChoiceChestsCount
364
+ ).to.equal(null)
365
+
366
+ expect(
367
+ aggregateStatistics({
368
+ vbHerosChoice: null,
369
+ tdHerosChoice: null,
370
+ abHerosChoice: null,
371
+ dsHerosChoice: null,
372
+ crystalOasisHerosChoice: null,
373
+ elonRiverlandsHerosChoice: null,
374
+ theDesolationHerosChoice: null,
375
+ domainOfVabbiHerosChoice: null,
376
+ seitungProvinceHerosChoice: null,
377
+ newKainengCityHerosChoice: null,
378
+ echovaldWildsHerosChoice: null,
379
+ dragonsEndHerosChoice: null,
380
+ gyalaDelveHerosChoice: null,
381
+ skywatchArchipelagoHerosChoice: null,
382
+ amnytasHerosChoice: null,
383
+ innerNayosEndHerosChoice: 1,
384
+ convergenceHerosChoice: null,
385
+ convergenceMountBalriorWayfindersChoice: null,
386
+ citadelOfZakirosHerosChoice: null,
387
+ janthirSyntriHerosChoice: null,
388
+ bavaNisosCommandersChoice: null
389
+ }).commandersChoiceChestsCount
390
+ ).to.equal(null)
391
+
392
+ expect(
393
+ aggregateStatistics({
394
+ vbHerosChoice: null,
395
+ tdHerosChoice: null,
396
+ abHerosChoice: null,
397
+ dsHerosChoice: null,
398
+ crystalOasisHerosChoice: null,
399
+ elonRiverlandsHerosChoice: null,
400
+ theDesolationHerosChoice: null,
401
+ domainOfVabbiHerosChoice: null,
402
+ seitungProvinceHerosChoice: null,
403
+ newKainengCityHerosChoice: null,
404
+ echovaldWildsHerosChoice: null,
405
+ dragonsEndHerosChoice: null,
406
+ gyalaDelveHerosChoice: null,
407
+ skywatchArchipelagoHerosChoice: null,
408
+ amnytasHerosChoice: 1,
409
+ innerNayosEndHerosChoice: null,
410
+ convergenceHerosChoice: null,
411
+ convergenceMountBalriorWayfindersChoice: null,
412
+ citadelOfZakirosHerosChoice: null,
413
+ janthirSyntriHerosChoice: null,
414
+ bavaNisosCommandersChoice: null
415
+ }).commandersChoiceChestsCount
416
+ ).to.equal(null)
417
+
418
+ expect(
419
+ aggregateStatistics({
420
+ vbHerosChoice: null,
421
+ tdHerosChoice: null,
422
+ abHerosChoice: null,
423
+ dsHerosChoice: null,
424
+ crystalOasisHerosChoice: null,
425
+ elonRiverlandsHerosChoice: null,
426
+ theDesolationHerosChoice: null,
427
+ domainOfVabbiHerosChoice: null,
428
+ seitungProvinceHerosChoice: null,
429
+ newKainengCityHerosChoice: null,
430
+ echovaldWildsHerosChoice: null,
431
+ dragonsEndHerosChoice: null,
432
+ gyalaDelveHerosChoice: null,
433
+ skywatchArchipelagoHerosChoice: 1,
434
+ amnytasHerosChoice: null,
435
+ innerNayosEndHerosChoice: null,
436
+ convergenceHerosChoice: null,
437
+ convergenceMountBalriorWayfindersChoice: null,
438
+ citadelOfZakirosHerosChoice: null,
439
+ janthirSyntriHerosChoice: null,
440
+ bavaNisosCommandersChoice: null
441
+ }).commandersChoiceChestsCount
442
+ ).to.equal(null)
443
+
444
+ expect(
445
+ aggregateStatistics({
446
+ vbHerosChoice: null,
447
+ tdHerosChoice: null,
448
+ abHerosChoice: null,
449
+ dsHerosChoice: null,
450
+ crystalOasisHerosChoice: null,
451
+ elonRiverlandsHerosChoice: null,
452
+ theDesolationHerosChoice: null,
453
+ domainOfVabbiHerosChoice: null,
454
+ seitungProvinceHerosChoice: null,
455
+ newKainengCityHerosChoice: null,
456
+ echovaldWildsHerosChoice: null,
457
+ dragonsEndHerosChoice: null,
458
+ gyalaDelveHerosChoice: 1,
459
+ skywatchArchipelagoHerosChoice: null,
460
+ amnytasHerosChoice: null,
461
+ innerNayosEndHerosChoice: null,
462
+ convergenceHerosChoice: null,
463
+ convergenceMountBalriorWayfindersChoice: null,
464
+ citadelOfZakirosHerosChoice: null,
465
+ janthirSyntriHerosChoice: null,
466
+ bavaNisosCommandersChoice: null
467
+ }).commandersChoiceChestsCount
468
+ ).to.equal(null)
469
+
470
+ expect(
471
+ aggregateStatistics({
472
+ vbHerosChoice: null,
473
+ tdHerosChoice: null,
474
+ abHerosChoice: null,
475
+ dsHerosChoice: null,
476
+ crystalOasisHerosChoice: null,
477
+ elonRiverlandsHerosChoice: null,
478
+ theDesolationHerosChoice: null,
479
+ domainOfVabbiHerosChoice: null,
480
+ seitungProvinceHerosChoice: null,
481
+ newKainengCityHerosChoice: null,
482
+ echovaldWildsHerosChoice: null,
483
+ dragonsEndHerosChoice: 1,
484
+ gyalaDelveHerosChoice: null,
485
+ skywatchArchipelagoHerosChoice: null,
486
+ amnytasHerosChoice: null,
487
+ innerNayosEndHerosChoice: null,
488
+ convergenceHerosChoice: null,
489
+ convergenceMountBalriorWayfindersChoice: null,
490
+ citadelOfZakirosHerosChoice: null,
491
+ janthirSyntriHerosChoice: null,
492
+ bavaNisosCommandersChoice: null
493
+ }).commandersChoiceChestsCount
494
+ ).to.equal(null)
495
+
496
+ expect(
497
+ aggregateStatistics({
498
+ vbHerosChoice: null,
499
+ tdHerosChoice: null,
500
+ abHerosChoice: null,
501
+ dsHerosChoice: null,
502
+ crystalOasisHerosChoice: null,
503
+ elonRiverlandsHerosChoice: null,
504
+ theDesolationHerosChoice: null,
505
+ domainOfVabbiHerosChoice: null,
506
+ seitungProvinceHerosChoice: null,
507
+ newKainengCityHerosChoice: null,
508
+ echovaldWildsHerosChoice: 1,
509
+ dragonsEndHerosChoice: null,
510
+ gyalaDelveHerosChoice: null,
511
+ skywatchArchipelagoHerosChoice: null,
512
+ amnytasHerosChoice: null,
513
+ innerNayosEndHerosChoice: null,
514
+ convergenceHerosChoice: null,
515
+ convergenceMountBalriorWayfindersChoice: null,
516
+ citadelOfZakirosHerosChoice: null,
517
+ janthirSyntriHerosChoice: null,
518
+ bavaNisosCommandersChoice: null
519
+ }).commandersChoiceChestsCount
520
+ ).to.equal(null)
521
+
522
+ expect(
523
+ aggregateStatistics({
524
+ vbHerosChoice: null,
525
+ tdHerosChoice: null,
526
+ abHerosChoice: null,
527
+ dsHerosChoice: null,
528
+ crystalOasisHerosChoice: null,
529
+ elonRiverlandsHerosChoice: null,
530
+ theDesolationHerosChoice: null,
531
+ domainOfVabbiHerosChoice: null,
532
+ seitungProvinceHerosChoice: null,
533
+ newKainengCityHerosChoice: 1,
534
+ echovaldWildsHerosChoice: null,
535
+ dragonsEndHerosChoice: null,
536
+ gyalaDelveHerosChoice: null,
537
+ skywatchArchipelagoHerosChoice: null,
538
+ amnytasHerosChoice: null,
539
+ innerNayosEndHerosChoice: null,
540
+ convergenceHerosChoice: null,
541
+ convergenceMountBalriorWayfindersChoice: null,
542
+ citadelOfZakirosHerosChoice: null,
543
+ janthirSyntriHerosChoice: null,
544
+ bavaNisosCommandersChoice: null
545
+ }).commandersChoiceChestsCount
546
+ ).to.equal(null)
547
+
548
+ expect(
549
+ aggregateStatistics({
550
+ vbHerosChoice: null,
551
+ tdHerosChoice: null,
552
+ abHerosChoice: null,
553
+ dsHerosChoice: null,
554
+ crystalOasisHerosChoice: null,
555
+ elonRiverlandsHerosChoice: null,
556
+ theDesolationHerosChoice: null,
557
+ domainOfVabbiHerosChoice: null,
558
+ seitungProvinceHerosChoice: 1,
559
+ newKainengCityHerosChoice: null,
560
+ echovaldWildsHerosChoice: null,
561
+ dragonsEndHerosChoice: null,
562
+ gyalaDelveHerosChoice: null,
563
+ skywatchArchipelagoHerosChoice: null,
564
+ amnytasHerosChoice: null,
565
+ innerNayosEndHerosChoice: null,
566
+ convergenceHerosChoice: null,
567
+ convergenceMountBalriorWayfindersChoice: null,
568
+ citadelOfZakirosHerosChoice: null,
569
+ janthirSyntriHerosChoice: null,
570
+ bavaNisosCommandersChoice: null
571
+ }).commandersChoiceChestsCount
572
+ ).to.equal(null)
573
+
574
+ expect(
575
+ aggregateStatistics({
576
+ vbHerosChoice: null,
577
+ tdHerosChoice: null,
578
+ abHerosChoice: null,
579
+ dsHerosChoice: null,
580
+ crystalOasisHerosChoice: null,
581
+ elonRiverlandsHerosChoice: null,
582
+ theDesolationHerosChoice: null,
583
+ domainOfVabbiHerosChoice: 1,
584
+ seitungProvinceHerosChoice: null,
585
+ newKainengCityHerosChoice: null,
586
+ echovaldWildsHerosChoice: null,
587
+ dragonsEndHerosChoice: null,
588
+ gyalaDelveHerosChoice: null,
589
+ skywatchArchipelagoHerosChoice: null,
590
+ amnytasHerosChoice: null,
591
+ innerNayosEndHerosChoice: null,
592
+ convergenceHerosChoice: null,
593
+ convergenceMountBalriorWayfindersChoice: null,
594
+ citadelOfZakirosHerosChoice: null,
595
+ janthirSyntriHerosChoice: null,
596
+ bavaNisosCommandersChoice: null
597
+ }).commandersChoiceChestsCount
598
+ ).to.equal(null)
599
+
600
+ expect(
601
+ aggregateStatistics({
602
+ vbHerosChoice: null,
603
+ tdHerosChoice: null,
604
+ abHerosChoice: null,
605
+ dsHerosChoice: null,
606
+ crystalOasisHerosChoice: null,
607
+ elonRiverlandsHerosChoice: null,
608
+ theDesolationHerosChoice: 1,
609
+ domainOfVabbiHerosChoice: null,
610
+ seitungProvinceHerosChoice: null,
611
+ newKainengCityHerosChoice: null,
612
+ echovaldWildsHerosChoice: null,
613
+ dragonsEndHerosChoice: null,
614
+ gyalaDelveHerosChoice: null,
615
+ skywatchArchipelagoHerosChoice: null,
616
+ amnytasHerosChoice: null,
617
+ innerNayosEndHerosChoice: null,
618
+ convergenceHerosChoice: null,
619
+ convergenceMountBalriorWayfindersChoice: null,
620
+ citadelOfZakirosHerosChoice: null,
621
+ janthirSyntriHerosChoice: null,
622
+ bavaNisosCommandersChoice: null
623
+ }).commandersChoiceChestsCount
624
+ ).to.equal(null)
625
+
626
+ expect(
627
+ aggregateStatistics({
628
+ vbHerosChoice: null,
629
+ tdHerosChoice: null,
630
+ abHerosChoice: null,
631
+ dsHerosChoice: null,
632
+ crystalOasisHerosChoice: null,
633
+ elonRiverlandsHerosChoice: 1,
634
+ theDesolationHerosChoice: null,
635
+ domainOfVabbiHerosChoice: null,
636
+ seitungProvinceHerosChoice: null,
637
+ newKainengCityHerosChoice: null,
638
+ echovaldWildsHerosChoice: null,
639
+ dragonsEndHerosChoice: null,
640
+ gyalaDelveHerosChoice: null,
641
+ skywatchArchipelagoHerosChoice: null,
642
+ amnytasHerosChoice: null,
643
+ innerNayosEndHerosChoice: null,
644
+ convergenceHerosChoice: null,
645
+ convergenceMountBalriorWayfindersChoice: null,
646
+ citadelOfZakirosHerosChoice: null,
647
+ janthirSyntriHerosChoice: null,
648
+ bavaNisosCommandersChoice: null
649
+ }).commandersChoiceChestsCount
650
+ ).to.equal(null)
651
+
652
+ expect(
653
+ aggregateStatistics({
654
+ vbHerosChoice: null,
655
+ tdHerosChoice: null,
656
+ abHerosChoice: null,
657
+ dsHerosChoice: null,
658
+ crystalOasisHerosChoice: 1,
659
+ elonRiverlandsHerosChoice: null,
660
+ theDesolationHerosChoice: null,
661
+ domainOfVabbiHerosChoice: null,
662
+ seitungProvinceHerosChoice: null,
663
+ newKainengCityHerosChoice: null,
664
+ echovaldWildsHerosChoice: null,
665
+ dragonsEndHerosChoice: null,
666
+ gyalaDelveHerosChoice: null,
667
+ skywatchArchipelagoHerosChoice: null,
668
+ amnytasHerosChoice: null,
669
+ innerNayosEndHerosChoice: null,
670
+ convergenceHerosChoice: null,
671
+ convergenceMountBalriorWayfindersChoice: null,
672
+ citadelOfZakirosHerosChoice: null,
673
+ janthirSyntriHerosChoice: null,
674
+ bavaNisosCommandersChoice: null
675
+ }).commandersChoiceChestsCount
676
+ ).to.equal(null)
677
+
678
+ expect(
679
+ aggregateStatistics({
680
+ vbHerosChoice: null,
681
+ tdHerosChoice: null,
682
+ abHerosChoice: null,
683
+ dsHerosChoice: 1,
684
+ crystalOasisHerosChoice: null,
685
+ elonRiverlandsHerosChoice: null,
686
+ theDesolationHerosChoice: null,
687
+ domainOfVabbiHerosChoice: null,
688
+ seitungProvinceHerosChoice: null,
689
+ newKainengCityHerosChoice: null,
690
+ echovaldWildsHerosChoice: null,
691
+ dragonsEndHerosChoice: null,
692
+ gyalaDelveHerosChoice: null,
693
+ skywatchArchipelagoHerosChoice: null,
694
+ amnytasHerosChoice: null,
695
+ innerNayosEndHerosChoice: null,
696
+ convergenceHerosChoice: null,
697
+ convergenceMountBalriorWayfindersChoice: null,
698
+ citadelOfZakirosHerosChoice: null,
699
+ janthirSyntriHerosChoice: null,
700
+ bavaNisosCommandersChoice: null
701
+ }).commandersChoiceChestsCount
702
+ ).to.equal(null)
703
+
704
+ expect(
705
+ aggregateStatistics({
706
+ vbHerosChoice: null,
707
+ tdHerosChoice: null,
708
+ abHerosChoice: 1,
709
+ dsHerosChoice: null,
710
+ crystalOasisHerosChoice: null,
711
+ elonRiverlandsHerosChoice: null,
712
+ theDesolationHerosChoice: null,
713
+ domainOfVabbiHerosChoice: null,
714
+ seitungProvinceHerosChoice: null,
715
+ newKainengCityHerosChoice: null,
716
+ echovaldWildsHerosChoice: null,
717
+ dragonsEndHerosChoice: null,
718
+ gyalaDelveHerosChoice: null,
719
+ skywatchArchipelagoHerosChoice: null,
720
+ amnytasHerosChoice: null,
721
+ innerNayosEndHerosChoice: null,
722
+ convergenceHerosChoice: null,
723
+ convergenceMountBalriorWayfindersChoice: null,
724
+ citadelOfZakirosHerosChoice: null,
725
+ janthirSyntriHerosChoice: null,
726
+ bavaNisosCommandersChoice: null
727
+ }).commandersChoiceChestsCount
728
+ ).to.equal(null)
729
+
730
+ expect(
731
+ aggregateStatistics({
732
+ vbHerosChoice: null,
733
+ tdHerosChoice: 1,
734
+ abHerosChoice: null,
735
+ dsHerosChoice: null,
736
+ crystalOasisHerosChoice: null,
737
+ elonRiverlandsHerosChoice: null,
738
+ theDesolationHerosChoice: null,
739
+ domainOfVabbiHerosChoice: null,
740
+ seitungProvinceHerosChoice: null,
741
+ newKainengCityHerosChoice: null,
742
+ echovaldWildsHerosChoice: null,
743
+ dragonsEndHerosChoice: null,
744
+ gyalaDelveHerosChoice: null,
745
+ skywatchArchipelagoHerosChoice: null,
746
+ amnytasHerosChoice: null,
747
+ innerNayosEndHerosChoice: null,
748
+ convergenceHerosChoice: null,
749
+ convergenceMountBalriorWayfindersChoice: null,
750
+ citadelOfZakirosHerosChoice: null,
751
+ janthirSyntriHerosChoice: null,
752
+ bavaNisosCommandersChoice: null
753
+ }).commandersChoiceChestsCount
754
+ ).to.equal(null)
755
+
756
+ expect(
757
+ aggregateStatistics({
758
+ vbHerosChoice: 1,
759
+ tdHerosChoice: null,
760
+ abHerosChoice: null,
761
+ dsHerosChoice: null,
762
+ crystalOasisHerosChoice: null,
763
+ elonRiverlandsHerosChoice: null,
764
+ theDesolationHerosChoice: null,
765
+ domainOfVabbiHerosChoice: null,
766
+ seitungProvinceHerosChoice: null,
767
+ newKainengCityHerosChoice: null,
768
+ echovaldWildsHerosChoice: null,
769
+ dragonsEndHerosChoice: null,
770
+ gyalaDelveHerosChoice: null,
771
+ skywatchArchipelagoHerosChoice: null,
772
+ amnytasHerosChoice: null,
773
+ innerNayosEndHerosChoice: null,
774
+ convergenceHerosChoice: null,
775
+ convergenceMountBalriorWayfindersChoice: null,
776
+ citadelOfZakirosHerosChoice: null,
777
+ janthirSyntriHerosChoice: null,
778
+ bavaNisosCommandersChoice: null
779
+ }).commandersChoiceChestsCount
780
+ ).to.equal(null)
781
+
782
+ expect(
783
+ aggregateStatistics({
784
+ vbHerosChoice: null,
785
+ tdHerosChoice: null,
786
+ abHerosChoice: null,
787
+ dsHerosChoice: null,
788
+ crystalOasisHerosChoice: null,
789
+ elonRiverlandsHerosChoice: null,
790
+ theDesolationHerosChoice: null,
791
+ domainOfVabbiHerosChoice: null,
792
+ seitungProvinceHerosChoice: null,
793
+ newKainengCityHerosChoice: null,
794
+ echovaldWildsHerosChoice: null,
795
+ dragonsEndHerosChoice: null,
796
+ gyalaDelveHerosChoice: null,
797
+ skywatchArchipelagoHerosChoice: null,
798
+ amnytasHerosChoice: null,
799
+ innerNayosEndHerosChoice: null,
800
+ convergenceHerosChoice: null,
801
+ convergenceMountBalriorWayfindersChoice: null,
802
+ citadelOfZakirosHerosChoice: null,
803
+ janthirSyntriHerosChoice: null,
804
+ bavaNisosCommandersChoice: 1
805
+ }).commandersChoiceChestsCount
806
+ ).to.equal(null)
807
+
808
+ expect(
809
+ aggregateStatistics({
810
+ vbHerosChoice: 1,
811
+ tdHerosChoice: 1,
812
+ abHerosChoice: 1,
813
+ dsHerosChoice: 1,
814
+ crystalOasisHerosChoice: 1,
815
+ elonRiverlandsHerosChoice: 1,
816
+ theDesolationHerosChoice: 1,
817
+ domainOfVabbiHerosChoice: 1,
818
+ seitungProvinceHerosChoice: 1,
819
+ newKainengCityHerosChoice: 1,
820
+ echovaldWildsHerosChoice: 2,
821
+ dragonsEndHerosChoice: 5,
822
+ gyalaDelveHerosChoice: 6,
823
+ skywatchArchipelagoHerosChoice: 4,
824
+ amnytasHerosChoice: 3,
825
+ innerNayosEndHerosChoice: 1,
826
+ convergenceHerosChoice: 1,
827
+ convergenceMountBalriorWayfindersChoice: 5,
828
+ citadelOfZakirosHerosChoice: 3,
829
+ janthirSyntriHerosChoice: null,
830
+ bavaNisosCommandersChoice: 1
831
+ }).commandersChoiceChestsCount
832
+ ).to.equal(null)
833
+
834
+ expect(
835
+ aggregateStatistics({
836
+ vbHerosChoice: 1,
837
+ tdHerosChoice: 1,
838
+ abHerosChoice: 1,
839
+ dsHerosChoice: 1,
840
+ crystalOasisHerosChoice: 1,
841
+ elonRiverlandsHerosChoice: 1,
842
+ theDesolationHerosChoice: 1,
843
+ domainOfVabbiHerosChoice: 1,
844
+ seitungProvinceHerosChoice: 1,
845
+ newKainengCityHerosChoice: 1,
846
+ echovaldWildsHerosChoice: 2,
847
+ dragonsEndHerosChoice: 5,
848
+ gyalaDelveHerosChoice: 6,
849
+ skywatchArchipelagoHerosChoice: 4,
850
+ amnytasHerosChoice: 3,
851
+ innerNayosEndHerosChoice: 1,
852
+ convergenceHerosChoice: 1,
853
+ convergenceMountBalriorWayfindersChoice: 5,
854
+ citadelOfZakirosHerosChoice: 3,
855
+ janthirSyntriHerosChoice: 1,
856
+ bavaNisosCommandersChoice: 1
857
+ }).commandersChoiceChestsCount
858
+ ).to.equal(42)
859
+ })
179
860
  })
@@ -88,6 +88,7 @@ describe('statistics > items', () => {
88
88
  convergenceMountBalriorWayfindersChoice: null,
89
89
  citadelOfZakirosHerosChoice: null,
90
90
  janthirSyntriHerosChoice: null,
91
+ bavaNisosCommandersChoice: null,
91
92
  uniqueTonics: null,
92
93
  bloodRubies: null,
93
94
  petrifiedWood: null,
@@ -106,9 +107,9 @@ describe('statistics > items', () => {
106
107
  dragoniteOre: null,
107
108
  bloodstoneDust: null,
108
109
  empyrealFragments: null,
109
- essenceOfDespair: null,
110
- essenceOfGreed: null,
111
- essenceOfTriumph: null,
110
+ _essenceOfDespairFromItems: null,
111
+ _essenceOfGreedFromItems: null,
112
+ _essenceOfTriumphFromItems: null,
112
113
  crystallineOre: null,
113
114
  airshipOil: null,
114
115
  auricDust: null,
@@ -179,7 +180,10 @@ describe('statistics > items', () => {
179
180
  arcaneFlowInfusion: null,
180
181
  mistwalkerInfusion: null,
181
182
  statInfusions: null,
182
- infiniteWvwBlueprints: null
183
+ infiniteWvwBlueprints: null,
184
+ bloodstoneInfusion: null,
185
+ heatCoreInfusion: null,
186
+ forestWispInfusion: null
183
187
  }
184
188
 
185
189
  const bothPermissions = {bank: null, characters: null}
@@ -9,7 +9,10 @@ describe('statistics > masteries', () => {
9
9
  masteryPointsTyria: null,
10
10
  masteryPointsMaguuma: null,
11
11
  masteryPointsDesert: null,
12
- masteryPointsCrystal: null
12
+ masteryPointsCrystal: null,
13
+ masteryPointsEndOfDragons: null,
14
+ masteryPointsSecretsOfTheObscure: null,
15
+ masteryPointsJanthirWilds: null
13
16
  }
14
17
 
15
18
  expect(masteriesStatistics({mastery: {points: null}})).to.deep.equal(empty)
@@ -18,26 +21,32 @@ describe('statistics > masteries', () => {
18
21
  it('can calculate the mastery points', () => {
19
22
  const accountData = {
20
23
  totals: [
21
- {region: 'Tyria', spent: 49, earned: 58},
22
- {region: 'Maguuma', spent: 85, earned: 106},
23
- {region: 'Desert', spent: 12, earned: 32},
24
- {region: 'Tundra', spent: 3, earned: 12}
24
+ {region: 'Central Tyria', spent: 49, earned: 58},
25
+ {region: 'Heart of Thorns', spent: 85, earned: 106},
26
+ {region: 'Path of Fire', spent: 12, earned: 32},
27
+ {region: 'Icebrood Saga', spent: 3, earned: 12},
28
+ {region: 'End of Dragons', spent: 7, earned: 9},
29
+ {region: 'Secrets of the Obscure', spent: 4, earned: 5},
30
+ {region: 'Janthir Wilds', spent: 15, earned: 22}
25
31
  ]
26
32
  }
27
33
 
28
34
  expect(masteriesStatistics({mastery: {points: accountData}})).to.deep.equal({
29
- masteryPoints: 58 + 106 + 32 + 12,
35
+ masteryPoints: 58 + 106 + 32 + 12 + 9 + 5 + 22,
30
36
  masteryPointsTyria: 58,
31
37
  masteryPointsMaguuma: 106,
32
38
  masteryPointsDesert: 32,
33
- masteryPointsCrystal: 12
39
+ masteryPointsCrystal: 12,
40
+ masteryPointsEndOfDragons: 9,
41
+ masteryPointsSecretsOfTheObscure: 5,
42
+ masteryPointsJanthirWilds: 22
34
43
  })
35
44
  })
36
45
 
37
46
  it('can calculate the mastery points with missing points', () => {
38
47
  const accountData = {
39
48
  totals: [
40
- {region: 'Maguuma', spent: 0, earned: 1}
49
+ {region: 'Heart of Thorns', spent: 0, earned: 1}
41
50
  ]
42
51
  }
43
52
 
@@ -47,7 +56,10 @@ describe('statistics > masteries', () => {
47
56
  masteryPointsTyria: 0,
48
57
  masteryPointsMaguuma: 1,
49
58
  masteryPointsDesert: 0,
50
- masteryPointsCrystal: 0
59
+ masteryPointsCrystal: 0,
60
+ masteryPointsEndOfDragons: 0,
61
+ masteryPointsSecretsOfTheObscure: 0,
62
+ masteryPointsJanthirWilds: 0
51
63
  })
52
64
  })
53
65
 
@@ -57,7 +69,10 @@ describe('statistics > masteries', () => {
57
69
  masteryPointsTyria: 0,
58
70
  masteryPointsMaguuma: 0,
59
71
  masteryPointsDesert: 0,
60
- masteryPointsCrystal: 0
72
+ masteryPointsCrystal: 0,
73
+ masteryPointsEndOfDragons: 0,
74
+ masteryPointsSecretsOfTheObscure: 0,
75
+ masteryPointsJanthirWilds: 0
61
76
  })
62
77
  })
63
78
  })
@@ -228,6 +228,13 @@ describe('statistics > unlocks', () => {
228
228
  expect(unlocksStatistics({skins: [1, 2, 6577, 6577]}, EXTRA_INFO).wintersPresence).to.equal(1)
229
229
  })
230
230
 
231
+ it('can calculate the rime rimmed rebreather unlock', () => {
232
+ expect(unlocksStatistics({}, EXTRA_INFO).rimeRimmedRebreather).to.equal(null)
233
+ expect(unlocksStatistics({skins: []}, EXTRA_INFO).rimeRimmedRebreather).to.equal(0)
234
+ expect(unlocksStatistics({skins: [1, 2, 7, 9, 10]}, EXTRA_INFO).rimeRimmedRebreather).to.equal(0)
235
+ expect(unlocksStatistics({skins: [1, 2, 6891, 6891]}, EXTRA_INFO).rimeRimmedRebreather).to.equal(1)
236
+ })
237
+
231
238
  it('can calculate the nightfury unlock', () => {
232
239
  expect(unlocksStatistics({}, EXTRA_INFO).nightfury).to.equal(null)
233
240
  expect(unlocksStatistics({skins: []}, EXTRA_INFO).nightfury).to.equal(0)
@@ -76,7 +76,10 @@ describe('statistics > wallet', () => {
76
76
  pinchOfStardust: null,
77
77
  staticCharge: null,
78
78
  ursusOblige: null,
79
- gaetingCrystals: null
79
+ gaetingCrystals: null,
80
+ _essenceOfDespairFromWallet: null,
81
+ _essenceOfGreedFromWallet: null,
82
+ _essenceOfTriumphFromWallet: null
80
83
  })
81
84
  })
82
85
 
@@ -198,7 +201,10 @@ describe('statistics > wallet', () => {
198
201
  pinchOfStardust: 0,
199
202
  staticCharge: 0,
200
203
  ursusOblige: 0,
201
- gaetingCrystals: 0
204
+ gaetingCrystals: 0,
205
+ _essenceOfDespairFromWallet: 0,
206
+ _essenceOfGreedFromWallet: 0,
207
+ _essenceOfTriumphFromWallet: 0
202
208
  })
203
209
  })
204
210