Skip to content

Instantly share code, notes, and snippets.

@jasongorman
Created July 25, 2019 14:11
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jasongorman/c5893bb8985529bb87711b041e4b1d94 to your computer and use it in GitHub Desktop.
Save jasongorman/c5893bb8985529bb87711b041e4b1d94 to your computer and use it in GitHub Desktop.
describe("buy a CD", function() {
const creditCard = {
number: "1234234545675768",
expiry: "10/22",
cv: "855"
};
describe("payment accepted", function() {
it("reduces stock count by 1", function () {
const cd = new CD(price = 9.99, stock = 2);
const payments = new StubPayments(accepted = true);
cd.buy(payments, creditCard);
assert.equal(cd.stock, 1);
})
})
describe("payment rejected", function () {
it("doesn't change the stock count", function() {
const cd = new CD(price=9.99, stock=2);
const payments = new StubPayments(accepted=false);
cd.buy(payments, creditCard);
assert.equal(cd.stock, 2);
})
})
describe("out of stock", function () {
it("should throw an out of stock error", function() {
const cd = new CD(price=9.99, stock=0);
const payments = new StubPayments(accepted=true);
assert.throws(() => {cd.buy(payments, creditCard);}, OutOfStockError);
})
})
})
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment