Added system basic test

This commit is contained in:
Pabasara Jayawardhana 2021-09-19 07:37:17 +05:30
parent 4d82127c01
commit 5a6a648d8a
2 changed files with 24 additions and 56 deletions

View File

@ -20,58 +20,19 @@ class ItemUpdater {
} }
class Shop { class Shop {
constructor(items = []) { constructor(itemUpdaters=[]){
this.items = items; this.itemUpdaters = itemUpdaters;
} }
updateQuality() {
for (let i = 0; i < this.items.length; i++) { updateQuality() {
if (this.items[i].name != 'Aged Brie' && this.items[i].name != 'Backstage passes to a TAFKAL80ETC concert') { let items = [];
if (this.items[i].quality > 0) {
if (this.items[i].name != 'Sulfuras, Hand of Ragnaros') { for (let i = 0; i < this.itemUpdaters.length; i++) {
this.items[i].quality = this.items[i].quality - 1; let item = this.itemUpdaters[i].updateQuality();
} items.push(item);
}
} 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;
}
}
}
} }
return this.items; return items;
} }
} }

View File

@ -1,13 +1,5 @@
const {Shop, Item, ItemUpdater} = require("../src/gilded_rose"); 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 () { describe("Gilded Rose check common rules", function () {
it("Item quality should decrease by one", function () { it("Item quality should decrease by one", function () {
const gildedRose = new ItemUpdater(new Item("+5 Dexterity Vest", 10, 20)); const gildedRose = new ItemUpdater(new Item("+5 Dexterity Vest", 10, 20));
@ -22,3 +14,18 @@ describe("Gilded Rose check common rules", function () {
}); });
}); });
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();
}
});
});