From 5a6a648d8a2c0d8dd0a580d4fe426b93f6df7c6c Mon Sep 17 00:00:00 2001 From: Pabasara Jayawardhana Date: Sun, 19 Sep 2021 07:37:17 +0530 Subject: [PATCH] Added system basic test --- js-jest/src/gilded_rose.js | 57 +++++--------------------------- js-jest/test/gilded_rose.test.js | 23 ++++++++----- 2 files changed, 24 insertions(+), 56 deletions(-) diff --git a/js-jest/src/gilded_rose.js b/js-jest/src/gilded_rose.js index 079f0739..1f26c7b9 100644 --- a/js-jest/src/gilded_rose.js +++ b/js-jest/src/gilded_rose.js @@ -20,58 +20,19 @@ class ItemUpdater { } class Shop { - constructor(items = []) { - this.items = items; + constructor(itemUpdaters=[]){ + this.itemUpdaters = itemUpdaters; } - updateQuality() { - for (let i = 0; i < this.items.length; i++) { - if (this.items[i].name != 'Aged Brie' && this.items[i].name != 'Backstage passes to a TAFKAL80ETC concert') { - if (this.items[i].quality > 0) { - if (this.items[i].name != 'Sulfuras, Hand of Ragnaros') { - this.items[i].quality = this.items[i].quality - 1; - } - } - } else { - if (this.items[i].quality < 50) { - this.items[i].quality = this.items[i].quality + 1; - if (this.items[i].name == 'Backstage passes to a TAFKAL80ETC concert') { - if (this.items[i].sellIn < 11) { - if (this.items[i].quality < 50) { - this.items[i].quality = this.items[i].quality + 1; - } - } - if (this.items[i].sellIn < 6) { - if (this.items[i].quality < 50) { - this.items[i].quality = this.items[i].quality + 1; - } - } - } - } - } - if (this.items[i].name != 'Sulfuras, Hand of Ragnaros') { - this.items[i].sellIn = this.items[i].sellIn - 1; - } - if (this.items[i].sellIn < 0) { - if (this.items[i].name != 'Aged Brie') { - if (this.items[i].name != 'Backstage passes to a TAFKAL80ETC concert') { - if (this.items[i].quality > 0) { - if (this.items[i].name != 'Sulfuras, Hand of Ragnaros') { - this.items[i].quality = this.items[i].quality - 1; - } - } - } else { - this.items[i].quality = this.items[i].quality - this.items[i].quality; - } - } else { - if (this.items[i].quality < 50) { - this.items[i].quality = this.items[i].quality + 1; - } - } - } + updateQuality() { + let items = []; + + for (let i = 0; i < this.itemUpdaters.length; i++) { + let item = this.itemUpdaters[i].updateQuality(); + items.push(item); } - return this.items; + return items; } } diff --git a/js-jest/test/gilded_rose.test.js b/js-jest/test/gilded_rose.test.js index 7999dde9..c4f31f96 100644 --- a/js-jest/test/gilded_rose.test.js +++ b/js-jest/test/gilded_rose.test.js @@ -1,13 +1,5 @@ const {Shop, Item, ItemUpdater} = require("../src/gilded_rose"); -describe("Gilded Rose", function() { - it("should foo", function() { - const gildedRose = new Shop([new Item("foo", 0, 0)]); - const items = gildedRose.updateQuality(); - expect(items[0].name).toBe("foo"); - }); -}); - describe("Gilded Rose check common rules", function () { it("Item quality should decrease by one", function () { const gildedRose = new ItemUpdater(new Item("+5 Dexterity Vest", 10, 20)); @@ -21,4 +13,19 @@ describe("Gilded Rose check common rules", function () { expect(item.quality).toBe(0); }); +}); + +describe("Gilded Rose system test", function() { + it("should check list of itemUpater", function() { + const itemUpdaters = [ + new ItemUpdater(new Item("+5 Dexterity Vest", 10, 20)), + ]; + + const days = Number(process.argv[2]) || 2; + const gildedRose = new Shop(itemUpdaters); + + for (let day = 0; day < days; day++) { + gildedRose.updateQuality(); + } + }); }); \ No newline at end of file