gw2e-account-statistics 3.20.0 → 3.22.0

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.
@@ -11,7 +11,23 @@ const generateAccount = (items) => {
11
11
  bags: [
12
12
  {inventory: items.slice(1)}
13
13
  ]
14
- }]
14
+ }],
15
+ novelties: [1]
16
+ }
17
+ }
18
+
19
+ const EXTRA_INFO = {
20
+ novelties: {
21
+ idMap: {
22
+ 1: [88124],
23
+ 2: [36174]
24
+ }
25
+ }
26
+ }
27
+
28
+ const EMPTY_EXTRA_INFO = {
29
+ novelties: {
30
+ idMap: {}
15
31
  }
16
32
  }
17
33
 
@@ -29,6 +45,7 @@ describe('statistics > items', () => {
29
45
  legendaryItemsArmor: null,
30
46
  legendaryItemsBack: null,
31
47
  legendaryItemsTrinket: null,
48
+ legendaryItemsUpgradeComponent: null,
32
49
  luminescentRefractors: null,
33
50
  preservedQueenBees: null,
34
51
  permanentTools: null,
@@ -59,6 +76,20 @@ describe('statistics > items', () => {
59
76
  elonRiverlandsHerosChoice: null,
60
77
  theDesolationHerosChoice: null,
61
78
  domainOfVabbiHerosChoice: null,
79
+ seitungProvinceHerosChoice: null,
80
+ newKainengCityHerosChoice: null,
81
+ echovaldWildsHerosChoice: null,
82
+ dragonsEndHerosChoice: null,
83
+ gyalaDelveHerosChoice: null,
84
+ skywatchArchipelagoHerosChoice: null,
85
+ amnytasHerosChoice: null,
86
+ innerNayosEndHerosChoice: null,
87
+ convergenceHerosChoice: null,
88
+ convergenceMountBalriorWayfindersChoice: null,
89
+ citadelOfZakirosHerosChoice: null,
90
+ janthirSyntriHerosChoice: null,
91
+ bavaNisosCommandersChoice: null,
92
+ castoraHeroesChoiceChest: null,
62
93
  uniqueTonics: null,
63
94
  bloodRubies: null,
64
95
  petrifiedWood: null,
@@ -77,9 +108,9 @@ describe('statistics > items', () => {
77
108
  dragoniteOre: null,
78
109
  bloodstoneDust: null,
79
110
  empyrealFragments: null,
80
- essenceOfDespair: null,
81
- essenceOfGreed: null,
82
- essenceOfTriumph: null,
111
+ _essenceOfDespairFromItems: null,
112
+ _essenceOfGreedFromItems: null,
113
+ _essenceOfTriumphFromItems: null,
83
114
  crystallineOre: null,
84
115
  airshipOil: null,
85
116
  auricDust: null,
@@ -139,17 +170,35 @@ describe('statistics > items', () => {
139
170
  imperialEverbloom: null,
140
171
  clockworkInfusion: null,
141
172
  jotunInfusion: null,
142
-
173
+ _legendaryDivinationsFromItems: null,
174
+ marshFrog: null,
175
+ miniProfessorMew: null,
176
+ wurmsBlessingEnrichment: null,
177
+ echoOfTheDragonvoid: null,
178
+ moteOfDarkness: null,
179
+ possessionInfusion: null,
180
+ silentSymphony: null,
181
+ arcaneFlowInfusion: null,
182
+ mistwalkerInfusion: null,
183
+ statInfusions: null,
184
+ infiniteWvwBlueprints: null,
185
+ bloodstoneInfusion: null,
186
+ heatCoreInfusion: null,
187
+ forestWispInfusion: null,
188
+ chromaticBubbles: null,
189
+ etherealSeaLifeInfusion: null,
190
+ agonyLens: null,
191
+ millingStones: null
143
192
  }
144
193
 
145
194
  const bothPermissions = {bank: null, characters: null}
146
- expect(itemsStatistics(bothPermissions)).to.deep.equal(emptyObject)
195
+ expect(itemsStatistics(bothPermissions, EMPTY_EXTRA_INFO)).to.deep.equal(emptyObject)
147
196
 
148
197
  const inventoriesPermission = {bank: null, characters: [{name: 'Yo'}]}
149
- expect(itemsStatistics(inventoriesPermission)).to.deep.equal(emptyObject)
198
+ expect(itemsStatistics(inventoriesPermission, EMPTY_EXTRA_INFO)).to.deep.equal(emptyObject)
150
199
 
151
200
  const charactersPermission = {bank: [{id: 30687}], characters: null}
152
- expect(itemsStatistics(charactersPermission)).to.deep.equal(emptyObject)
201
+ expect(itemsStatistics(charactersPermission, EMPTY_EXTRA_INFO)).to.deep.equal(emptyObject)
153
202
  })
154
203
 
155
204
  it('can calculate legendary count', () => {
@@ -170,7 +219,7 @@ describe('statistics > items', () => {
170
219
 
171
220
  account.legendaryarmory = [{id: 80205, count: 2}] // 5 + 6
172
221
 
173
- expect(itemsStatistics(account).legendaryItems).to.equal(6)
222
+ expect(itemsStatistics(account, EXTRA_INFO).legendaryItems).to.equal(6)
174
223
  })
175
224
 
176
225
  it('can calculate legendary weapon count', () => {
@@ -181,7 +230,7 @@ describe('statistics > items', () => {
181
230
  {id: 1, count: 1},
182
231
  {id: 7, count: 1},
183
232
  {id: 77474, count: 1}
184
- ])).legendaryItemsWeapon).to.equal(2)
233
+ ]), EXTRA_INFO).legendaryItemsWeapon).to.equal(2)
185
234
  })
186
235
 
187
236
  it('can calculate legendary armor count', () => {
@@ -192,7 +241,7 @@ describe('statistics > items', () => {
192
241
  {id: 1, count: 1},
193
242
  {id: 7, count: 1},
194
243
  {id: 77474, count: 1}
195
- ])).legendaryItemsArmor).to.equal(2)
244
+ ]), EXTRA_INFO).legendaryItemsArmor).to.equal(2)
196
245
  })
197
246
 
198
247
  it('can calculate legendary back count', () => {
@@ -203,7 +252,7 @@ describe('statistics > items', () => {
203
252
  {id: 1, count: 1},
204
253
  {id: 30704, count: 1},
205
254
  {id: 77474, count: 1}
206
- ])).legendaryItemsBack).to.equal(2)
255
+ ]), EXTRA_INFO).legendaryItemsBack).to.equal(2)
207
256
  })
208
257
 
209
258
  it('can calculate legendary trinket count', () => {
@@ -214,7 +263,18 @@ describe('statistics > items', () => {
214
263
  {id: 1, count: 1},
215
264
  {id: 81908, count: 1},
216
265
  {id: 77474, count: 1}
217
- ])).legendaryItemsTrinket).to.equal(1)
266
+ ]), EXTRA_INFO).legendaryItemsTrinket).to.equal(1)
267
+ })
268
+
269
+ it('can calculate legendary upgrade component count', () => {
270
+ expect(itemsStatistics(generateAccount([
271
+ {id: 123, count: 1},
272
+ {id: 74155, count: 1},
273
+ {id: 80277, count: 1},
274
+ {id: 1, count: 1},
275
+ {id: 91536, count: 1},
276
+ {id: 77474, count: 1}
277
+ ]), EXTRA_INFO).legendaryItemsUpgradeComponent).to.equal(1)
218
278
  })
219
279
 
220
280
  it('can calculate fractal tonic count', () => {
@@ -224,7 +284,7 @@ describe('statistics > items', () => {
224
284
  {id: 71383, count: 1},
225
285
  {id: 49277, count: 1},
226
286
  {id: 49277, count: 1}
227
- ])).fractalTonics).to.equal(3)
287
+ ]), EXTRA_INFO).fractalTonics).to.equal(3)
228
288
  })
229
289
 
230
290
  it('can calculate legendary insight count', () => {
@@ -280,7 +340,7 @@ describe('statistics > items', () => {
280
340
 
281
341
  function countFromList (itemList) {
282
342
  const account = generateAccount(itemList.map(id => ({id, count: 1})))
283
- return itemsStatistics(account)._legendaryInsightsFromItems
343
+ return itemsStatistics(account, EXTRA_INFO)._legendaryInsightsFromItems
284
344
  }
285
345
 
286
346
  // Count the basic items
@@ -288,7 +348,7 @@ describe('statistics > items', () => {
288
348
  {id: 80516, count: 3}, // Envoy Insignia => 25 each
289
349
  {id: 78989, count: 1}, // Gift of Prowess => 25 each
290
350
  {id: 77302, count: 7} // Legendary Insight => 1 each
291
- ]))._legendaryInsightsFromItems, 'basic items').to.equal(3 * 25 + 25 + 7)
351
+ ]), EXTRA_INFO)._legendaryInsightsFromItems, 'basic items').to.equal(3 * 25 + 25 + 7)
292
352
 
293
353
  // Count the full first ascended set (from the achievement, so no LI spent)
294
354
  const oneWeightAscendedSet = [
@@ -386,7 +446,7 @@ describe('statistics > items', () => {
386
446
  {id: 71383, count: 1},
387
447
  {id: 78978, count: 1},
388
448
  {id: 78978, count: 1}
389
- ])).whiteMantlePortalDevices).to.equal(3)
449
+ ]), EXTRA_INFO).whiteMantlePortalDevices).to.equal(3)
390
450
  })
391
451
 
392
452
  it('can calculate chak egg sack count', () => {
@@ -396,7 +456,7 @@ describe('statistics > items', () => {
396
456
  {id: 71383, count: 1},
397
457
  {id: 72021, count: 1},
398
458
  {id: 72021, count: 1}
399
- ])).chakEggSacks).to.equal(3)
459
+ ]), EXTRA_INFO).chakEggSacks).to.equal(3)
400
460
  })
401
461
 
402
462
  it('can calculate preserved queen bee count', () => {
@@ -406,7 +466,7 @@ describe('statistics > items', () => {
406
466
  {id: 71383, count: 1},
407
467
  {id: 68440, count: 1},
408
468
  {id: 68440, count: 1}
409
- ])).preservedQueenBees).to.equal(3)
469
+ ]), EXTRA_INFO).preservedQueenBees).to.equal(3)
410
470
  })
411
471
 
412
472
  it('can calculate ghostly infusion count', () => {
@@ -416,7 +476,7 @@ describe('statistics > items', () => {
416
476
  {id: 71383, count: 1},
417
477
  {id: 77316, count: 1},
418
478
  {id: 77394, count: 1}
419
- ])).ghostlyInfusions).to.equal(3)
479
+ ]), EXTRA_INFO).ghostlyInfusions).to.equal(3)
420
480
  })
421
481
 
422
482
  it('can calculate bauble infusion count', () => {
@@ -426,7 +486,7 @@ describe('statistics > items', () => {
426
486
  {id: 71383, count: 1},
427
487
  {id: 78028, count: 1},
428
488
  {id: 78097, count: 1}
429
- ])).baubleInfusions).to.equal(3)
489
+ ]), EXTRA_INFO).baubleInfusions).to.equal(3)
430
490
  })
431
491
 
432
492
  it('can calculate luminescent refractor count', () => {
@@ -436,7 +496,7 @@ describe('statistics > items', () => {
436
496
  {id: 71383, count: 1},
437
497
  {id: 67370, count: 1},
438
498
  {id: 67372, count: 1}
439
- ])).luminescentRefractors).to.equal(3)
499
+ ]), EXTRA_INFO).luminescentRefractors).to.equal(3)
440
500
  })
441
501
 
442
502
  it('can calculate broken spoon count', () => {
@@ -446,7 +506,7 @@ describe('statistics > items', () => {
446
506
  {id: 71383, count: 1},
447
507
  {id: 74996, count: 1},
448
508
  {id: 74996, count: 1}
449
- ])).brokenSpoons).to.equal(3)
509
+ ]), EXTRA_INFO).brokenSpoons).to.equal(3)
450
510
  })
451
511
 
452
512
  it('can calculate black lion claim ticket count', () => {
@@ -456,13 +516,13 @@ describe('statistics > items', () => {
456
516
  {id: 71383, count: 1},
457
517
  {id: 43998, count: 3},
458
518
  {id: 43998, count: 1}
459
- ])).blackLionClaimTickets).to.equal(1.4)
519
+ ]), EXTRA_INFO).blackLionClaimTickets).to.equal(1.4)
460
520
 
461
521
  expect(itemsStatistics(generateAccount([
462
522
  {id: 43992, count: 3},
463
523
  {id: 30687, count: 1},
464
524
  {id: 43998, count: 164}
465
- ])).blackLionClaimTickets).to.equal(19.4)
525
+ ]), EXTRA_INFO).blackLionClaimTickets).to.equal(19.4)
466
526
  })
467
527
 
468
528
  it('can calculate instrument count', () => {
@@ -472,7 +532,7 @@ describe('statistics > items', () => {
472
532
  {id: 71383, count: 1},
473
533
  {id: 38129, count: 1}, // This is a container and does not count
474
534
  {id: 43526, count: 1}
475
- ])).instruments).to.equal(2)
535
+ ]), EXTRA_INFO).instruments).to.equal(2)
476
536
  })
477
537
 
478
538
  it('can calculate fish items count', () => {
@@ -482,7 +542,7 @@ describe('statistics > items', () => {
482
542
  {id: 82432, count: 1},
483
543
  {id: 97409, count: 1},
484
544
  {id: 83826, count: 1}
485
- ]))
545
+ ]), EXTRA_INFO)
486
546
 
487
547
  expect(_statistics.fishItems).to.equal(3)
488
548
  expect(_statistics.fishItemsLegendary).to.equal(2)
@@ -497,7 +557,7 @@ describe('statistics > items', () => {
497
557
  {id: 82432, count: 1},
498
558
  {id: 38129, count: 1},
499
559
  {id: 83826, count: 1}
500
- ])).musicBoxes).to.equal(2)
560
+ ]), EXTRA_INFO).musicBoxes).to.equal(2)
501
561
  })
502
562
 
503
563
  it('can calculate permanent tool count', () => {
@@ -507,7 +567,7 @@ describe('statistics > items', () => {
507
567
  {id: 71383, count: 1},
508
568
  {id: 38129, count: 1},
509
569
  {id: 47897, count: 1}
510
- ])).permanentTools).to.equal(2)
570
+ ]), EXTRA_INFO).permanentTools).to.equal(2)
511
571
  })
512
572
 
513
573
  it('can calculate chak egg count', () => {
@@ -517,7 +577,7 @@ describe('statistics > items', () => {
517
577
  {id: 71383, count: 1},
518
578
  {id: 72205, count: 1},
519
579
  {id: 72205, count: 1}
520
- ])).chakEggs).to.equal(3)
580
+ ]), EXTRA_INFO).chakEggs).to.equal(3)
521
581
  })
522
582
 
523
583
  it('can calculate reclaimed metal plate count', () => {
@@ -527,7 +587,7 @@ describe('statistics > items', () => {
527
587
  {id: 71383, count: 1},
528
588
  {id: 74356, count: 1},
529
589
  {id: 74356, count: 1}
530
- ])).reclaimedMetalPlates).to.equal(3)
590
+ ]), EXTRA_INFO).reclaimedMetalPlates).to.equal(3)
531
591
  })
532
592
 
533
593
  it('can calculate fossilized insects count', () => {
@@ -537,7 +597,7 @@ describe('statistics > items', () => {
537
597
  {id: 71383, count: 1},
538
598
  {id: 66646, count: 1},
539
599
  {id: 66642, count: 1}
540
- ])).fossilizedInsects).to.equal(3)
600
+ ]), EXTRA_INFO).fossilizedInsects).to.equal(3)
541
601
  })
542
602
 
543
603
  it('can calculate champion bag count', () => {
@@ -547,7 +607,7 @@ describe('statistics > items', () => {
547
607
  {id: 71383, count: 1},
548
608
  {id: 44226, count: 1},
549
609
  {id: 44199, count: 250}
550
- ])).championBags).to.equal(252)
610
+ ]), EXTRA_INFO).championBags).to.equal(252)
551
611
  })
552
612
 
553
613
  it('can calculate triple trouble chest count', () => {
@@ -557,7 +617,7 @@ describe('statistics > items', () => {
557
617
  {id: 71383, count: 1},
558
618
  {id: 49664, count: 1},
559
619
  {id: 49664, count: 250}
560
- ])).tripleTroubleChests).to.equal(252)
620
+ ]), EXTRA_INFO).tripleTroubleChests).to.equal(252)
561
621
  })
562
622
 
563
623
  it('can calculate tequatl chest count', () => {
@@ -567,7 +627,7 @@ describe('statistics > items', () => {
567
627
  {id: 71383, count: 1},
568
628
  {id: 47836, count: 1},
569
629
  {id: 47836, count: 250}
570
- ])).tequatlChests).to.equal(252)
630
+ ]), EXTRA_INFO).tequatlChests).to.equal(252)
571
631
  })
572
632
 
573
633
  it('can calculate unique tonic count', () => {
@@ -578,7 +638,7 @@ describe('statistics > items', () => {
578
638
  {id: 66926, count: 1},
579
639
  {id: 5, count: 250},
580
640
  {id: 68046, count: 100}
581
- ])).uniqueTonics).to.equal(2)
641
+ ]), EXTRA_INFO).uniqueTonics).to.equal(2)
582
642
  })
583
643
 
584
644
  it('can calculate blood ruby count', () => {
@@ -588,7 +648,7 @@ describe('statistics > items', () => {
588
648
  {id: 71383, count: 1},
589
649
  {id: 79280, count: 1},
590
650
  {id: 79280, count: 250}
591
- ])).bloodRubies).to.equal(252)
651
+ ]), EXTRA_INFO).bloodRubies).to.equal(252)
592
652
  })
593
653
 
594
654
  it('can calculate petrified wood count', () => {
@@ -598,7 +658,7 @@ describe('statistics > items', () => {
598
658
  {id: 71383, count: 1},
599
659
  {id: 79469, count: 1},
600
660
  {id: 79469, count: 250}
601
- ])).petrifiedWood).to.equal(252)
661
+ ]), EXTRA_INFO).petrifiedWood).to.equal(252)
602
662
  })
603
663
 
604
664
  it('can calculate tomes of knowledge count', () => {
@@ -608,7 +668,7 @@ describe('statistics > items', () => {
608
668
  {id: 71383, count: 1},
609
669
  {id: 43741, count: 1},
610
670
  {id: 43766, count: 250}
611
- ])).tomesOfKnowledge).to.equal(252)
671
+ ]), EXTRA_INFO).tomesOfKnowledge).to.equal(252)
612
672
  })
613
673
 
614
674
  it('can calculate permanent contract count', () => {
@@ -618,7 +678,7 @@ describe('statistics > items', () => {
618
678
  {id: 71383, count: 1},
619
679
  {id: 35984, count: 1},
620
680
  {id: 49501, count: 1}
621
- ])).permanentContracts).to.equal(3)
681
+ ]), EXTRA_INFO).permanentContracts).to.equal(3)
622
682
  })
623
683
 
624
684
  it('can calculate fresh winterberry count', () => {
@@ -628,7 +688,7 @@ describe('statistics > items', () => {
628
688
  {id: 79899, count: 1},
629
689
  {id: 79899, count: 1},
630
690
  {id: 49501, count: 1}
631
- ])).freshWinterberries).to.equal(4)
691
+ ]), EXTRA_INFO).freshWinterberries).to.equal(4)
632
692
  })
633
693
 
634
694
  it('can calculate winter\' heart infusion count', () => {
@@ -638,7 +698,7 @@ describe('statistics > items', () => {
638
698
  {id: 79959, count: 1},
639
699
  {id: 79899, count: 1},
640
700
  {id: 49501, count: 1}
641
- ])).wintersHeartInfusions).to.equal(2)
701
+ ]), EXTRA_INFO).wintersHeartInfusions).to.equal(2)
642
702
  })
643
703
 
644
704
  it('can calculate kodas warmth enrichment count', () => {
@@ -648,7 +708,7 @@ describe('statistics > items', () => {
648
708
  {id: 79926, count: 1},
649
709
  {id: 79899, count: 1},
650
710
  {id: 49501, count: 1}
651
- ])).kodasWarmthEnrichment).to.equal(1)
711
+ ]), EXTRA_INFO).kodasWarmthEnrichment).to.equal(1)
652
712
  })
653
713
 
654
714
  it('can calculate phospholuminescent infusions count', () => {
@@ -658,7 +718,7 @@ describe('statistics > items', () => {
658
718
  {id: 79653, count: 1},
659
719
  {id: 79899, count: 1},
660
720
  {id: 49501, count: 1}
661
- ])).phospholuminescentInfusions).to.equal(1)
721
+ ]), EXTRA_INFO).phospholuminescentInfusions).to.equal(1)
662
722
  })
663
723
 
664
724
  it('can calculate liquid aurillium count', () => {
@@ -668,7 +728,7 @@ describe('statistics > items', () => {
668
728
  {id: 79653, count: 1},
669
729
  {id: 79899, count: 1},
670
730
  {id: 49501, count: 1}
671
- ])).liquidAurillium).to.equal(3)
731
+ ]), EXTRA_INFO).liquidAurillium).to.equal(3)
672
732
  })
673
733
 
674
734
  it('can calculate celestial infusion count', () => {
@@ -678,7 +738,7 @@ describe('statistics > items', () => {
678
738
  {id: 79653, count: 1},
679
739
  {id: 79899, count: 1},
680
740
  {id: 49501, count: 1}
681
- ])).celestialInfusion).to.equal(3)
741
+ ]), EXTRA_INFO).celestialInfusion).to.equal(3)
682
742
  })
683
743
 
684
744
  it('can calculate gemstore toys count', () => {
@@ -688,7 +748,7 @@ describe('statistics > items', () => {
688
748
  {id: 49939, count: 1},
689
749
  {id: 79899, count: 1},
690
750
  {id: 49501, count: 1}
691
- ])).gemstoreToys).to.equal(1)
751
+ ]), EXTRA_INFO).gemstoreToys).to.equal(2) // 1 extra comes from EXTRA_INFO
692
752
  })
693
753
 
694
754
  it('can calculate black lion miniature claim tickets count', () => {
@@ -698,7 +758,7 @@ describe('statistics > items', () => {
698
758
  {id: 78474, count: 1},
699
759
  {id: 79899, count: 1},
700
760
  {id: 49501, count: 1}
701
- ])).blackLionMiniatureClaimTickets).to.equal(3)
761
+ ]), EXTRA_INFO).blackLionMiniatureClaimTickets).to.equal(3)
702
762
  })
703
763
 
704
764
  it('can calculate jade shards count', () => {
@@ -708,7 +768,7 @@ describe('statistics > items', () => {
708
768
  {id: 78474, count: 1},
709
769
  {id: 80332, count: 1},
710
770
  {id: 49501, count: 1}
711
- ])).jadeShards).to.equal(3)
771
+ ]), EXTRA_INFO).jadeShards).to.equal(3)
712
772
  })
713
773
 
714
774
  it('can calculate gifts of exploration count', () => {
@@ -718,7 +778,7 @@ describe('statistics > items', () => {
718
778
  {id: 78474, count: 1},
719
779
  {id: 19677, count: 1},
720
780
  {id: 49501, count: 1}
721
- ])).giftsOfExploration).to.equal(3)
781
+ ]), EXTRA_INFO).giftsOfExploration).to.equal(3)
722
782
  })
723
783
 
724
784
  it('can calculate gifts of battle count', () => {
@@ -728,7 +788,7 @@ describe('statistics > items', () => {
728
788
  {id: 78474, count: 1},
729
789
  {id: 19678, count: 1},
730
790
  {id: 49501, count: 1}
731
- ])).giftsOfBattle).to.equal(3)
791
+ ]), EXTRA_INFO).giftsOfBattle).to.equal(3)
732
792
  })
733
793
 
734
794
  it('can calculate dragonite ore count', () => {
@@ -738,7 +798,7 @@ describe('statistics > items', () => {
738
798
  {id: 78474, count: 1},
739
799
  {id: 19677, count: 1},
740
800
  {id: 46732, count: 4}
741
- ])).dragoniteOre).to.equal(422)
801
+ ]), EXTRA_INFO).dragoniteOre).to.equal(422)
742
802
  })
743
803
 
744
804
  it('can calculate bloodstone dust count', () => {
@@ -748,7 +808,7 @@ describe('statistics > items', () => {
748
808
  {id: 78474, count: 1},
749
809
  {id: 19677, count: 1},
750
810
  {id: 46730, count: 4}
751
- ])).bloodstoneDust).to.equal(422)
811
+ ]), EXTRA_INFO).bloodstoneDust).to.equal(422)
752
812
  })
753
813
 
754
814
  it('can calculate empyreal fragments count', () => {
@@ -758,7 +818,7 @@ describe('statistics > items', () => {
758
818
  {id: 78474, count: 1},
759
819
  {id: 19677, count: 1},
760
820
  {id: 46734, count: 4}
761
- ])).empyrealFragments).to.equal(422)
821
+ ]), EXTRA_INFO).empyrealFragments).to.equal(422)
762
822
  })
763
823
 
764
824
  it('can calculate crystalline ore count', () => {
@@ -768,7 +828,7 @@ describe('statistics > items', () => {
768
828
  {id: 78474, count: 1},
769
829
  {id: 19677, count: 1},
770
830
  {id: 46683, count: 4}
771
- ])).crystallineOre).to.equal(26)
831
+ ]), EXTRA_INFO).crystallineOre).to.equal(26)
772
832
  })
773
833
 
774
834
  it('can calculate airship oil count', () => {
@@ -778,7 +838,7 @@ describe('statistics > items', () => {
778
838
  {id: 78474, count: 1},
779
839
  {id: 76933, count: 1},
780
840
  {id: 69434, count: 4}
781
- ])).airshipOil).to.equal(5)
841
+ ]), EXTRA_INFO).airshipOil).to.equal(5)
782
842
  })
783
843
 
784
844
  it('can calculate auric dust count', () => {
@@ -788,7 +848,7 @@ describe('statistics > items', () => {
788
848
  {id: 73537, count: 1},
789
849
  {id: 76933, count: 1},
790
850
  {id: 69434, count: 4}
791
- ])).auricDust).to.equal(53)
851
+ ]), EXTRA_INFO).auricDust).to.equal(53)
792
852
  })
793
853
 
794
854
  it('can calculate ley line sparks count', () => {
@@ -798,7 +858,7 @@ describe('statistics > items', () => {
798
858
  {id: 76933, count: 1},
799
859
  {id: 74042, count: 1},
800
860
  {id: 69434, count: 4}
801
- ])).leyLineSparks).to.equal(24)
861
+ ]), EXTRA_INFO).leyLineSparks).to.equal(24)
802
862
  })
803
863
 
804
864
  it('can calculate legendary spikes count', () => {
@@ -808,7 +868,7 @@ describe('statistics > items', () => {
808
868
  {id: 76933, count: 1},
809
869
  {id: 74042, count: 1},
810
870
  {id: 69434, count: 4}
811
- ])).legendarySpikes).to.equal(22)
871
+ ]), EXTRA_INFO).legendarySpikes).to.equal(22)
812
872
  })
813
873
 
814
874
  it('can calculate fire orchid blossoms count', () => {
@@ -818,7 +878,7 @@ describe('statistics > items', () => {
818
878
  {id: 81127, count: 1},
819
879
  {id: 74042, count: 1},
820
880
  {id: 81127, count: 4}
821
- ])).fireOrchidBlossoms).to.equal(5)
881
+ ]), EXTRA_INFO).fireOrchidBlossoms).to.equal(5)
822
882
  })
823
883
 
824
884
  it('can calculate orrian peal count', () => {
@@ -828,7 +888,7 @@ describe('statistics > items', () => {
828
888
  {id: 81706, count: 1},
829
889
  {id: 74042, count: 1},
830
890
  {id: 81706, count: 4}
831
- ])).orrianPearls).to.equal(5)
891
+ ]), EXTRA_INFO).orrianPearls).to.equal(5)
832
892
  })
833
893
 
834
894
  it('can calculate luck', () => {
@@ -843,7 +903,7 @@ describe('statistics > items', () => {
843
903
  {id: 45178, count: 3}, // 600
844
904
  {id: 45179, count: 1}, // 500
845
905
  {id: 45179, count: 7} // 3500
846
- ]))._luckFromItems).to.equal(5810)
906
+ ]), EXTRA_INFO)._luckFromItems).to.equal(5810)
847
907
  })
848
908
 
849
909
  it('can calculate kralkatite ore', () => {
@@ -858,7 +918,7 @@ describe('statistics > items', () => {
858
918
  {id: 45178, count: 3},
859
919
  {id: 86069, count: 1},
860
920
  {id: 45179, count: 7}
861
- ])).kralkatiteOre).to.equal(5)
921
+ ]), EXTRA_INFO).kralkatiteOre).to.equal(5)
862
922
  })
863
923
 
864
924
  it('can calculate festive confetti infusions', () => {
@@ -873,7 +933,7 @@ describe('statistics > items', () => {
873
933
  {id: 45178, count: 1},
874
934
  {id: 84882, count: 1},
875
935
  {id: 84882, count: 1}
876
- ])).festiveConfettiInfusions).to.equal(4)
936
+ ]), EXTRA_INFO).festiveConfettiInfusions).to.equal(4)
877
937
  })
878
938
 
879
939
  it('can calculate potions of pvp reward', () => {
@@ -888,7 +948,7 @@ describe('statistics > items', () => {
888
948
  {id: 45178, count: 1},
889
949
  {id: 84882, count: 1},
890
950
  {id: 84882, count: 1}
891
- ])).potionOfPvpRewards).to.equal(2)
951
+ ]), EXTRA_INFO).potionOfPvpRewards).to.equal(2)
892
952
  })
893
953
 
894
954
  it('can calculate potions of wvw reward', () => {
@@ -903,7 +963,7 @@ describe('statistics > items', () => {
903
963
  {id: 78600, count: 1},
904
964
  {id: 84882, count: 1},
905
965
  {id: 84882, count: 1}
906
- ])).potionOfWvwRewards).to.equal(2)
966
+ ]), EXTRA_INFO).potionOfWvwRewards).to.equal(2)
907
967
  })
908
968
 
909
969
  it('can calculate skirmish chests', () => {
@@ -918,7 +978,7 @@ describe('statistics > items', () => {
918
978
  {id: 81324, count: 1},
919
979
  {id: 84882, count: 1},
920
980
  {id: 84882, count: 1}
921
- ])).skirmishChests).to.equal(2)
981
+ ]), EXTRA_INFO).skirmishChests).to.equal(2)
922
982
  })
923
983
 
924
984
  it('can calculate unstable fractal essence', () => {
@@ -934,6 +994,36 @@ describe('statistics > items', () => {
934
994
  {id: 94055, count: 1}, // Endless Inner Demon Combat Tonic
935
995
 
936
996
  {id: 81761, count: 9999999} // Celestial Infusion (Blue) -- (!) Does not count
937
- ]))._unstableFractalEssenceFromItems).to.equal(7410)
997
+ ]), EXTRA_INFO)._unstableFractalEssenceFromItems).to.equal(7410)
998
+ })
999
+
1000
+ it('can calculate stat infusion count', () => {
1001
+ expect(itemsStatistics(generateAccount([
1002
+ { id: 101263, count: 2 },
1003
+ { id: 101146, count: 1 },
1004
+ { id: 71383, count: 1 },
1005
+ { id: 38129, count: 1 },
1006
+ { id: 47897, count: 1 }
1007
+ ]), EXTRA_INFO).statInfusions).to.equal(3)
1008
+ })
1009
+
1010
+ it('can calculate infinite blueprint count uniquely', () => {
1011
+ expect(itemsStatistics(generateAccount([
1012
+ { id: 103995, count: 2 },
1013
+ { id: 103993, count: 1 },
1014
+ { id: 71383, count: 1 },
1015
+ { id: 38129, count: 1 },
1016
+ { id: 47897, count: 1 }
1017
+ ]), EXTRA_INFO).infiniteWvwBlueprints).to.equal(2)
1018
+ })
1019
+
1020
+ it('can calculate infinite blueprint count uniquely', () => {
1021
+ expect(itemsStatistics(generateAccount([
1022
+ { id: 103995, count: 2 },
1023
+ { id: 103993, count: 1 },
1024
+ { id: 71383, count: 1 },
1025
+ { id: 38129, count: 1 },
1026
+ { id: 47897, count: 1 }
1027
+ ]), EXTRA_INFO).infiniteWvwBlueprints).to.equal(2)
938
1028
  })
939
1029
  })