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 {
|
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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -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));
|
||||||
@ -21,4 +13,19 @@ describe("Gilded Rose check common rules", function () {
|
|||||||
expect(item.quality).toBe(0);
|
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