mirror of
https://github.com/emilybache/GildedRose-Refactoring-Kata.git
synced 2026-02-15 22:41:30 +00:00
Added system basic test
This commit is contained in:
parent
4d82127c01
commit
5a6a648d8a
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -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();
|
||||
}
|
||||
});
|
||||
});
|
||||
Loading…
Reference in New Issue
Block a user