mirror of
https://github.com/emilybache/GildedRose-Refactoring-Kata.git
synced 2026-02-19 08:21:37 +00:00
113 lines
4.1 KiB
JavaScript
113 lines
4.1 KiB
JavaScript
const {Shop, Item} = require("../src/gilded_rose");
|
|
|
|
describe("default item", function() {
|
|
it("should decrease quality over time by 1", function() {
|
|
const gildedRose = new Shop([new Item("default", 10, 2)]);
|
|
const items = gildedRose.updateQuality();
|
|
expect(items[0].quality).toBe(1);
|
|
});
|
|
|
|
it("should decrease quality by 2 when sellIn < 0", function() {
|
|
const gildedRose = new Shop([new Item("default", 0, 10)]);
|
|
const items = gildedRose.updateQuality();
|
|
expect(items[0].quality).toBe(8);
|
|
});
|
|
|
|
it("should decrease sellIn over time by 1", function() {
|
|
const gildedRose = new Shop([new Item("default", 10, 2)]);
|
|
const items = gildedRose.updateQuality();
|
|
expect(items[0].sellIn).toBe(9);
|
|
});
|
|
|
|
it("should never drop quality below 0", function() {
|
|
const gildedRose = new Shop([new Item("default", 10, 0)]);
|
|
const items = gildedRose.updateQuality();
|
|
expect(items[0].quality).toBe(0);
|
|
});
|
|
});
|
|
|
|
describe("Aged Brie", function() {
|
|
it("should increase quality over time by 1", function() {
|
|
const gildedRose = new Shop([new Item("Aged Brie", 10, 2)]);
|
|
const items = gildedRose.updateQuality();
|
|
expect(items[0].quality).toBe(3);
|
|
});
|
|
|
|
it("should increase quality by 2 when sellIn < 0", function() {
|
|
const gildedRose = new Shop([new Item("Aged Brie", 0, 0)]);
|
|
const items = gildedRose.updateQuality();
|
|
expect(items[0].quality).toBe(2);
|
|
});
|
|
|
|
it("should stay at 50 quality max", function() {
|
|
const gildedRose = new Shop([new Item("Aged Brie", 0, 50)]);
|
|
const items = gildedRose.updateQuality();
|
|
expect(items[0].quality).toBe(50);
|
|
});
|
|
});
|
|
|
|
describe("Backstage passes to a TAFKAL80ETC concert", function() {
|
|
it("should increase quality over time by 1 if sellin > 10", function() {
|
|
const gildedRose = new Shop([new Item("Backstage passes to a TAFKAL80ETC concert", 20, 2)]);
|
|
const items = gildedRose.updateQuality();
|
|
expect(items[0].quality).toBe(3);
|
|
});
|
|
|
|
it("should increase quality by 2 when sellIn < 11", function() {
|
|
const gildedRose = new Shop([new Item("Backstage passes to a TAFKAL80ETC concert", 10, 2)]);
|
|
const items = gildedRose.updateQuality();
|
|
expect(items[0].quality).toBe(4);
|
|
});
|
|
|
|
it("should not increase quality over 50 when sellIn < 11", function() {
|
|
const gildedRose = new Shop([new Item("Backstage passes to a TAFKAL80ETC concert", 10, 49)]);
|
|
const items = gildedRose.updateQuality();
|
|
expect(items[0].quality).toBe(50);
|
|
});
|
|
|
|
it("should increase quality by 3 when sellIn < 6", function() {
|
|
const gildedRose = new Shop([new Item("Backstage passes to a TAFKAL80ETC concert", 5, 2)]);
|
|
const items = gildedRose.updateQuality();
|
|
expect(items[0].quality).toBe(5);
|
|
});
|
|
|
|
it("should not increase quality over 50 when sellIn < 6", function() {
|
|
const gildedRose = new Shop([new Item("Backstage passes to a TAFKAL80ETC concert", 5, 48)]);
|
|
const items = gildedRose.updateQuality();
|
|
expect(items[0].quality).toBe(50);
|
|
});
|
|
|
|
it("should have 0 quality when sellIn < 0", function() {
|
|
const gildedRose = new Shop([new Item("Backstage passes to a TAFKAL80ETC concert", 0, 2)]);
|
|
const items = gildedRose.updateQuality();
|
|
expect(items[0].quality).toBe(0);
|
|
});
|
|
});
|
|
|
|
|
|
describe("Sulfuras, Hand of Ragnaros", function() {
|
|
it("quality never changes", function() {
|
|
const gildedRose = new Shop([new Item("Sulfuras, Hand of Ragnaros", 20, 80)]);
|
|
const items = gildedRose.updateQuality();
|
|
expect(items[0].quality).toBe(80);
|
|
});
|
|
|
|
it("quality never changes even if sellIn < 0", function() {
|
|
const gildedRose = new Shop([new Item("Sulfuras, Hand of Ragnaros", -1, 80)]);
|
|
const items = gildedRose.updateQuality();
|
|
expect(items[0].quality).toBe(80);
|
|
});
|
|
|
|
it("sellIn never changes", function() {
|
|
const gildedRose = new Shop([new Item("Sulfuras, Hand of Ragnaros", 20, 80)]);
|
|
const items = gildedRose.updateQuality();
|
|
expect(items[0].sellIn).toBe(20);
|
|
});
|
|
|
|
// it("sellIn never changes", function() {
|
|
// const gildedRose = new Shop([new Item("Sulfuras, Hand of Ragnaros", 20, 80)]);
|
|
// const items = gildedRose.updateQuality();
|
|
// expect(items[0].sellIn).toBe(20);
|
|
// });
|
|
});
|