From 7765f9ca04197f685e4820a29f5c9a9c16ca3689 Mon Sep 17 00:00:00 2001 From: Sabe Jones Date: Tue, 1 Sep 2015 17:37:39 -0400 Subject: [PATCH] test(mystery): Time Travelers test WIP --- common/locales/en/subscriber.json | 3 +- test/common/user.ops.buyMysterySet.test.js | 88 ++++++++++++++++++++++ 2 files changed, 90 insertions(+), 1 deletion(-) create mode 100644 test/common/user.ops.buyMysterySet.test.js diff --git a/common/locales/en/subscriber.json b/common/locales/en/subscriber.json index 55cb801c26..4b8fb312a1 100644 --- a/common/locales/en/subscriber.json +++ b/common/locales/en/subscriber.json @@ -65,5 +65,6 @@ "subUpdateCard": "Update Card", "subUpdateTitle": "Update", "subUpdateDescription": "Update the card to be charged.", - "notEnoughHourglasses": "You don't have enough Mystic Hourglasses." + "notEnoughHourglasses": "You don't have enough Mystic Hourglasses.", + "hourglassBuyEquipSetConfirm": "Buy this full set of items for 1 Mystic Hourglass?" } diff --git a/test/common/user.ops.buyMysterySet.test.js b/test/common/user.ops.buyMysterySet.test.js new file mode 100644 index 0000000000..0fb7628967 --- /dev/null +++ b/test/common/user.ops.buyMysterySet.test.js @@ -0,0 +1,88 @@ +var sinon = require('sinon'); +var chai = require("chai") +chai.use(require("sinon-chai")) +var expect = chai.expect +var _ = require('lodash'); + +require('coffee-script'); +var shared = require('../../common/script/index.coffee'); +var Content = require('../../common/script/content.coffee'); + +describe('api.timeTravelerStore', function() { + var user; + + beforeEach(function() { + user = { + items: { + gear: { + owned: { + weapon_warrior_0: true + } + }, + pets: {}, + mounts: {} + }, + purchased: { + plan: { + planId: "basic", + consecutive: { + trinkets: 0 + } + } + } + }; + + shared.wrap(user); + }); + + context('Mystery Sets', function() { + + context('failure conditions', function() { + + it('does not grant mystery sets without Mystic Hourglasses', function(done) { + user.ops.buyMysterySet({params:{key:'201501'}}, function(response) { + expect(response.message).to.eql("You don't have enough Mystic Hourglasses."); + expect(user.items.gear.owned).to.eql({'weapon_warrior_0': true}); + done(); + }); + }); + + it('does not grant mystery set that has already been purchased', function(done) { + user.purchased.plan.consecutive.trinkets = 1; + user.items.gear.owned = { + weapon_warrior_0: true, + weapon_mystery_301404: true, + armor_mystery_301404: true, + head_mystery_301404: true, + eyewear_mystery_301404: true + }; + + user.ops.buyMysterySet({params:{key:'301404'}}, function(response) { + expect(response.message).to.eql("Mystery set not found, or set already owned"); + expect(user.purchased.plan.consecutive.trinkets).to.eql(1); + done(); + }); + }); + }); + + context('successful purchases', function() { + + it('buys Steampunk Accessories Set', function(done) { + user.purchased.plan.consecutive.trinkets = 1; + + user.ops.buyMysterySet({params:{key:'301404'}}, function() { + expect(user.purchased.plan.consecutive.trinkets).to.eql(0); + expect(user.items.gear.owned).to.eql({ + weapon_warrior_0: true, + weapon_mystery_301404: true, + armor_mystery_301404: true, + head_mystery_301404: true, + eyewear_mystery_301404: true + }); + done(); + }); + }); + }); + }); +}); +