diff --git a/test/common/ops/sell.js b/test/common/ops/sell.js index f2a67c9d8e..2f1d9b86d1 100644 --- a/test/common/ops/sell.js +++ b/test/common/ops/sell.js @@ -85,6 +85,19 @@ describe('shared.ops.sell', () => { } }); + it('returns error when trying to sell Saddle', (done) => { + const foodType = 'food'; + const saddleKey = 'Saddle'; + user.items[foodType][saddleKey] = 1; + try { + sell(user, {params: {type: foodType, key: saddleKey}}); + } catch (err) { + expect(err).to.be.an.instanceof(NotAuthorized); + expect(err.message).to.equal(i18n.t('foodSaddleSellWarningNote')); + done(); + } + }); + it('reduces item count from user', () => { sell(user, {params: { type, key } }); diff --git a/website/client/components/shops/market/sellModal.vue b/website/client/components/shops/market/sellModal.vue index 31d1a80b05..d0bd729ec9 100644 --- a/website/client/components/shops/market/sellModal.vue +++ b/website/client/components/shops/market/sellModal.vue @@ -21,7 +21,7 @@ h4.title {{ itemContextToSell.itemName }} - div(v-if="item.sellWarningNote") + div(v-if="item.key === 'Saddle'") div.text {{ item.sellWarningNote() }} br diff --git a/website/common/script/ops/sell.js b/website/common/script/ops/sell.js index 796ed929c2..69e132da37 100644 --- a/website/common/script/ops/sell.js +++ b/website/common/script/ops/sell.js @@ -43,6 +43,10 @@ module.exports = function sell (user, req = {}) { throw new NotFound(i18n.t('userItemsNotEnough', {type}, req.language)); } + if (type === 'food' && key === 'Saddle') { + throw new NotAuthorized(content[type][key].sellWarningNote(req.language)); + } + user.items[type][key] -= amount; if (user.markModified) user.markModified(`items.${type}`);