diff --git a/test/common/ops/buy/purchase.test.js b/test/common/ops/buy/purchase.test.js index a61b3a0d59..9fc35af020 100644 --- a/test/common/ops/buy/purchase.test.js +++ b/test/common/ops/buy/purchase.test.js @@ -233,6 +233,17 @@ describe('shared.ops.purchase', () => { expect(user.items.hatchingPotions[key]).to.eql(1); }); + it('purchases event hatching potion', async () => { + clock.restore(); + clock = sandbox.useFakeTimers(moment('2022-04-10').valueOf()); + const type = 'hatchingPotions'; + const key = 'Veggie'; + + await purchase(user, { params: { type, key } }); + + expect(user.items.hatchingPotions[key]).to.eql(1); + }); + it('purchases hatching potion if user completed quest', async () => { const type = 'hatchingPotions'; const key = 'Bronze'; diff --git a/website/common/script/ops/buy/purchase.js b/website/common/script/ops/buy/purchase.js index ef147d5101..d0cfede29d 100644 --- a/website/common/script/ops/buy/purchase.js +++ b/website/common/script/ops/buy/purchase.js @@ -97,7 +97,7 @@ export default async function purchase (user, req = {}, analytics) { const { price, item } = getItemAndPrice(user, type, key, req); - if (type === 'hatchingPotions' && item.premium === true && item.questPotion !== true) { + if (type === 'hatchingPotions' && (item.premium === true || item.wacky === true) && item.questPotion !== true) { const matchers = getScheduleMatchingGroup('premiumHatchingPotions'); if (!matchers.match(item.key)) { throw new NotAuthorized(i18n.t('messageNotAvailable', req.language));