* Log all gem transactions to database
* Also store hourglass transactions
* Fix tests
* Display transaction history in hall of heroes for admins
* add tests to new API call
* hide transaction settings tab for non admins
* fix(lint): remove console
* fix(lint): various automatic corrections
* fix(transactions): use enum expected pluralizations
* fix api unit tests
* fix lint
* fix failing test
* Fix minor inconsistencies
* Log all gem transactions to database
* Also store hourglass transactions
* Fix tests
* Display transaction history in hall of heroes for admins
* add tests to new API call
* hide transaction settings tab for non admins
* fix(lint): remove console
* fix(lint): various automatic corrections
* fix(transactions): use enum expected pluralizations
* fix api unit tests
* fix lint
* Fix minor inconsistencies
Co-authored-by: Sabe Jones <sabrecat@gmail.com>
* Added logic for a repeating Chilling Frost skill. Added test case for redundant chilling frost skill cast. Added comments for the logic of repeating Stealth skill because of an error.
* Added logic for a repeating Stealth skill. Avoiding MP reduction still pending because of console error. Test cases pending.
* Completed the logic for a repeated Stealth skill. Added repeated frost skill cast check in common. Removed exclusive test. Test cases are pending.
* Added test case for Stealth skill recast. Fixed lint errors. Fixed a flaw in if statement which led to test case failure.
* Fixed lint errors in test case.
* Added a common JSON entry for skil recasts in three files. Other files remaining. Added Chilling Frost recast check in common code. Modified test cases.
* Added spellDisabled condition in client code.
* Reverted JSON messages for three languages. Added spellAlreadyCast attribute to JSON file in locales/en. Made changes for showing appropriate message in client code.
* Added an import for throwing BadRequest in common code. Modified test case accordingly.
* Update website/common/script/content/spells.js
Co-authored-by: Matteo Pagliazzi <matteopagliazzi@gmail.com>
* Added target and req attributes in cast() method arguments.
* Changed common code test case because of increased function parameters. Moved chilling frost test casse to common tests instead of server tests.
* Changed the test case format in common tests.
* Added a missing done statement.
* Fixed a minor error which led to failing test case. Removed the exclusive test which led to lint error.
* Fixed lint errors.
* Added a class named 'disabled' for the frontend change.
* fix(skills): style cleanup
* fix(skills): unfix
Co-authored-by: Matteo Pagliazzi <matteopagliazzi@gmail.com>
Co-authored-by: Sabe Jones <sabrecat@gmail.com>
* Issue 10209 - Remove read usages of zone
* Issue 10209 - Add coverage on daysSince and startOfDay cron utility functions
* Issue 10209 - Add unit test for daysUserHasMissed method
* Issue 10209 - Remove usages of deprecated `moment.js#zone` method.
* Issue 10209 - Add helper function to centralise logic
Also simplify timezoneOffsetToUtc function in site.vue
* Issue 10209 - Also add getUtcOffset as method on user
Co-authored-by: Matteo Pagliazzi <matteopagliazzi@gmail.com>
* buyMysterySet records every item in Amplitude.
Record only the mysterySet
Fixes: #11705
* buyMysterySet records every item in Amplitude.
Extend unit test
Fixes: #11705
* Issue 11050 - Small tuneups to unlock.js
- Use includes i.o. indexOf
- Extract small function for object setting duplication
- Use every instead of custom counter
* Issue 11050 - Properly store purchased items when purchasing them
* Issue 11050 - Couple more tuneups in unlock.js and implemented partial failure scenario
* Issue 11050 - Fix last lint issue
* Issue 11050 - Check path for gear i.o. failing to write it to purchased
* Issue 11050 - Guarantee variation coverage in tests
* Issue 11050 - Use startsWith instead of includes for background check
* Issue 11050 - Don't unlock lost items
* Added check for wacky pet before feeding
* added test for feeding wacky pets
* Fixed typo in test for feeding wacky pets
Co-authored-by: Jack Somers <somersjw9@gmail.com>
* WIP(adventure): prereqs
* WIP(drops): new modal
* WIP(adventure): analytics fixes etc
* feat(adventure): random egg+potion on 2nd task
* fix(lint): noworkies
* fix(modal): correctly construct classes
* fix(tests): expectations and escape
* fix(first-drops): address comments
* fix(first-drops): don't give random drops until first drops
* fix(drops): remove more Level 3 references
* refactor(drops): no need for cloning
* refactor(drops): unnecessary export
* fix(first-drops): force sync
* fix(first-drops): move to server
* fix(first-drops): escape in case we get here with >0 items
* fix(lint): line length
* fix(pet-food): remove unused string
- Rewrite exports of debuffPotion functions
- Force clear debuffPotions in setDebuffPotionItems to make the same behavior as in develop branch
- Change class of debuffPotion items to shop_{key}
- Resolve lint warnings
* Fix: moved debuffPotions from vue component
- Move logic of choosing proper debuf potion from vue component to website commons
- introduce new function to get debuffSpellItems
* Fix: move debuffPotions to server
* Refactoring: move setting of debuff potion to func
* Fix: sanity
* Refactoring & Tests:
- Create test case for get and set DebuffPotionItems functions
- Fix setDebuffPotionItems function to not create duplicated debuff items
- Make debuff potion type of items unpinnable
- Move list of debuffs to constant to reuse it in tests and functions
* Fix: typo in test describe
* Fix: translation of unpin
* Fix: setDebuffPotionItems on cron buffs reset
* Fix: use full path for debuff potions
* Fix: Reset negative quest scrolls number to zero on purchase(gem)
* Refactor: rename website/common/script/ops/buy/buyQuest.js to website/common/script/ops/buy/buyQuestGold.js and update related files
* Test: add two tests related to negative quest scrolls