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 {
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;
}
}

View File

@ -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();
}
});
});