mirror of
https://github.com/emilybache/GildedRose-Refactoring-Kata.git
synced 2026-02-17 15:31:27 +00:00
update test for each cases in requirements
This commit is contained in:
parent
1efcbb833e
commit
6f9729cd2e
@ -35,24 +35,17 @@ export class GildedRose {
|
|||||||
itemQuality = itemQuality + 1;
|
itemQuality = itemQuality + 1;
|
||||||
break;
|
break;
|
||||||
case itemName.includes('Backstage passes'):
|
case itemName.includes('Backstage passes'):
|
||||||
itemQuality = itemQuality + 1;
|
|
||||||
if (itemSellin < 11) {
|
if (itemSellin < 11) {
|
||||||
itemQuality = itemQuality + 2;
|
itemQuality = itemQuality + 2;
|
||||||
} else if (itemSellin < 6) {
|
} else if (itemSellin < 6) {
|
||||||
itemQuality = itemQuality + 3;
|
itemQuality = itemQuality + 3;
|
||||||
} else if (itemSellin < 0) {
|
} else if (itemSellin < 0) {
|
||||||
itemQuality = 0;
|
itemQuality = 0;
|
||||||
|
} else {
|
||||||
|
itemQuality = itemQuality + 1;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case itemName.includes('Conjured'):
|
case itemName.includes('Conjured'):
|
||||||
if (itemQuality > 0) {
|
|
||||||
itemQuality = itemQuality - 1;
|
|
||||||
}
|
|
||||||
if (itemSellin < 0) {
|
|
||||||
itemQuality = itemQuality - itemQuality;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
if (itemQuality > 0) {
|
if (itemQuality > 0) {
|
||||||
itemQuality = itemQuality - 2;
|
itemQuality = itemQuality - 2;
|
||||||
}
|
}
|
||||||
@ -60,6 +53,14 @@ export class GildedRose {
|
|||||||
itemQuality = itemQuality - itemQuality * 2;
|
itemQuality = itemQuality - itemQuality * 2;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
default:
|
||||||
|
if (itemQuality > 0) {
|
||||||
|
itemQuality = itemQuality - 1;
|
||||||
|
}
|
||||||
|
if (itemSellin < 0) {
|
||||||
|
itemQuality = itemQuality - itemQuality;
|
||||||
|
}
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
this.items[i].quality = itemQuality > 50 ? 50 : itemQuality;
|
this.items[i].quality = itemQuality > 50 ? 50 : itemQuality;
|
||||||
this.items[i].sellIn = itemSellin;
|
this.items[i].sellIn = itemSellin;
|
||||||
|
|||||||
@ -1,9 +1,39 @@
|
|||||||
import { Item, GildedRose } from '@/gilded-rose';
|
import { Item, GildedRose } from '@/gilded-rose';
|
||||||
|
|
||||||
|
let gildedRose;
|
||||||
describe('Gilded Rose', () => {
|
describe('Gilded Rose', () => {
|
||||||
|
beforeEach(() => {
|
||||||
|
gildedRose = new GildedRose([
|
||||||
|
new Item('foo', 0, 0),
|
||||||
|
new Item('Conjured item', 10, 8),
|
||||||
|
new Item('Sulfuras item', 0, 80),
|
||||||
|
new Item('Aged Brie item ', 10, 33),
|
||||||
|
new Item('Aged Brie item', 0, 50),
|
||||||
|
new Item('Backstage passes item', 8, 30),
|
||||||
|
]);
|
||||||
|
})
|
||||||
it('should foo', () => {
|
it('should foo', () => {
|
||||||
const gildedRose = new GildedRose([new Item('foo', 0, 0)]);
|
|
||||||
const items = gildedRose.updateQuality();
|
const items = gildedRose.updateQuality();
|
||||||
expect(items[0].name).toBe('foo');
|
expect(items[0].name).toBe('foo');
|
||||||
});
|
});
|
||||||
|
it('The quality of Conjured item should be degraded by twice', () => {
|
||||||
|
const items = gildedRose.updateQuality();
|
||||||
|
expect(items[1].quality).toBe(6);
|
||||||
|
});
|
||||||
|
it('The quality of Sulfuras item should remain unchanged', () => {
|
||||||
|
const items = gildedRose.updateQuality();
|
||||||
|
expect(items[2].quality).toBe(80);
|
||||||
|
});
|
||||||
|
it('Aged Brie item actually increases in Quality the older it gets', () => {
|
||||||
|
const items = gildedRose.updateQuality();
|
||||||
|
expect(items[3].quality).toBe(34);
|
||||||
|
});
|
||||||
|
it('The Quality of an item is never more than 50', () => {
|
||||||
|
const items = gildedRose.updateQuality();
|
||||||
|
expect(items[4].quality).toBe(50);
|
||||||
|
});
|
||||||
|
it('The Quality of Backstage passes item increases by 2 when there are 10 days or less', () => {
|
||||||
|
const items = gildedRose.updateQuality();
|
||||||
|
expect(items[5].quality).toBe(32);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user