mirror of
https://github.com/emilybache/GildedRose-Refactoring-Kata.git
synced 2026-02-18 07:51:29 +00:00
Implements 18 new unit tests for gilded rose
This commit is contained in:
parent
bc7de77181
commit
0cd989a757
5516
TypeScript/package-lock.json
generated
5516
TypeScript/package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@ -19,12 +19,12 @@
|
||||
"@types/node": "^16.11.7",
|
||||
"chai": "^4.3.4",
|
||||
"jest": "^27.3.1",
|
||||
"mocha": "^9.1.3",
|
||||
"mocha": "^10.0.0",
|
||||
"nyc": "~15.1.0",
|
||||
"rimraf": "~3.0.2",
|
||||
"source-map-support": "^0.5.20",
|
||||
"ts-jest": "^27.0.7",
|
||||
"ts-node": "^10.4.0",
|
||||
"ts-node": "^10.8.1",
|
||||
"tsconfig-paths": "^3.11.0",
|
||||
"typescript": "^4.4.4"
|
||||
}
|
||||
|
||||
@ -2,9 +2,146 @@ import { expect } from 'chai';
|
||||
import { Item, GildedRose } from '@/gilded-rose';
|
||||
|
||||
describe('Gilded Rose', () => {
|
||||
it('should foo', () => {
|
||||
const gildedRose = new GildedRose([new Item('foo', 0, 0)]);
|
||||
const items = gildedRose.updateQuality();
|
||||
expect(items[0].name).to.equal('fixme');
|
||||
describe('Aged Brie', () => {
|
||||
it('one iteration, not passed sell date', () => {
|
||||
const gildedRose = new GildedRose([new Item('Aged Brie', 5, 31)]);
|
||||
gildedRose.updateQuality();
|
||||
expect(gildedRose.items[0].quality).to.equal(32);
|
||||
});
|
||||
|
||||
it('one iteration, passed sell date', () => {
|
||||
const gildedRose = new GildedRose([new Item('Aged Brie', -1, 31)]);
|
||||
gildedRose.updateQuality();
|
||||
expect(gildedRose.items[0].quality).to.equal(33);
|
||||
});
|
||||
|
||||
it('multiple iterations, not reaching max quality and not passed sell date', () => {
|
||||
const gildedRose = new GildedRose([new Item('Aged Brie', 21, 31)]);
|
||||
for (let i = 0; i < 10; ++i) {
|
||||
gildedRose.updateQuality();
|
||||
}
|
||||
expect(gildedRose.items[0].quality).to.equal(41);
|
||||
});
|
||||
|
||||
it('multiple iterations, not reaching max quality and passed sell date', () => {
|
||||
const gildedRose = new GildedRose([new Item('Aged Brie', 5, 30)]);
|
||||
for (let i = 0; i < 10; ++i) {
|
||||
gildedRose.updateQuality();
|
||||
}
|
||||
expect(gildedRose.items[0].quality).to.equal(45);
|
||||
});
|
||||
|
||||
it('multiple iterations, reaching max quality and passed sell date', () => {
|
||||
const gildedRose = new GildedRose([new Item('Aged Brie', 5, 38)]);
|
||||
for (let i = 0; i < 10; ++i) {
|
||||
gildedRose.updateQuality();
|
||||
}
|
||||
expect(gildedRose.items[0].quality).to.equal(50);
|
||||
});
|
||||
});
|
||||
|
||||
describe('Backstage passes to a TAFKAL80ETC concert', () => {
|
||||
it('one iteration, more than 10 days before selling, not reaching max quality', () => {
|
||||
const gildedRose = new GildedRose([new Item('Backstage passes to a TAFKAL80ETC concert', 11, 31)]);
|
||||
gildedRose.updateQuality();
|
||||
expect(gildedRose.items[0].quality).to.equal(32);
|
||||
});
|
||||
|
||||
it('one iteration, between 6 and 10 days before selling, not reaching max quality', () => {
|
||||
const gildedRose = new GildedRose([new Item('Backstage passes to a TAFKAL80ETC concert', 10, 31),
|
||||
new Item('Backstage passes to a TAFKAL80ETC concert', 6, 31)]);
|
||||
gildedRose.updateQuality();
|
||||
expect(gildedRose.items[0].quality).to.equal(33);
|
||||
expect(gildedRose.items[1].quality).to.equal(33);
|
||||
});
|
||||
|
||||
it('one iteration, 5 days or less before selling, not reaching max quality', () => {
|
||||
const gildedRose = new GildedRose([new Item('Backstage passes to a TAFKAL80ETC concert', 5, 31),
|
||||
new Item('Backstage passes to a TAFKAL80ETC concert', 1, 31)]);
|
||||
gildedRose.updateQuality();
|
||||
expect(gildedRose.items[0].quality).to.equal(34);
|
||||
expect(gildedRose.items[1].quality).to.equal(34);
|
||||
});
|
||||
|
||||
it('one iteration, passed sell date, not reaching max quality', () => {
|
||||
const gildedRose = new GildedRose([new Item('Backstage passes to a TAFKAL80ETC concert', 0, 31)]);
|
||||
gildedRose.updateQuality();
|
||||
expect(gildedRose.items[0].quality).to.equal(0);
|
||||
});
|
||||
|
||||
it('one iteration, reaching max quality', () => {
|
||||
const gildedRose = new GildedRose([new Item('Backstage passes to a TAFKAL80ETC concert', 3, 49)]);
|
||||
gildedRose.updateQuality();
|
||||
expect(gildedRose.items[0].quality).to.equal(50);
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
describe('Sulfuras, Hand of Ragnaros', () => {
|
||||
it('one iteration', () => {
|
||||
const gildedRose = new GildedRose([new Item('Sulfuras, Hand of Ragnaros', 5, 38)]);
|
||||
gildedRose.updateQuality();
|
||||
expect(gildedRose.items[0].quality).to.equal(38);
|
||||
});
|
||||
|
||||
it('multiple iterations, not passed sell date', () => {
|
||||
const gildedRose = new GildedRose([new Item('Sulfuras, Hand of Ragnaros', 22, 38)]);
|
||||
for (let i = 0; i < 10; ++i) {
|
||||
gildedRose.updateQuality();
|
||||
}
|
||||
expect(gildedRose.items[0].quality).to.equal(38);
|
||||
});
|
||||
|
||||
it('multiple iterations, passed sell date', () => {
|
||||
const gildedRose = new GildedRose([new Item('Sulfuras, Hand of Ragnaros', 5, 38)]);
|
||||
for (let i = 0; i < 10; ++i) {
|
||||
gildedRose.updateQuality();
|
||||
}
|
||||
expect(gildedRose.items[0].quality).to.equal(38);
|
||||
});
|
||||
});
|
||||
|
||||
describe('Any normal item', () => {
|
||||
it('one iteration, not passed sell date', () => {
|
||||
const gildedRose = new GildedRose([new Item('Any normal item', 5, 31)]);
|
||||
gildedRose.updateQuality();
|
||||
expect(gildedRose.items[0].quality).to.equal(30);
|
||||
});
|
||||
|
||||
it('one iteration, passed sell date', () => {
|
||||
const gildedRose = new GildedRose([new Item('Any normal item', -1, 31)]);
|
||||
gildedRose.updateQuality();
|
||||
expect(gildedRose.items[0].quality).to.equal(29);
|
||||
});
|
||||
|
||||
it('multiple iterations, not reaching negative quality and not passed sell date', () => {
|
||||
const gildedRose = new GildedRose([new Item('Any normal item', 21, 31)]);
|
||||
for (let i = 0; i < 10; ++i) {
|
||||
gildedRose.updateQuality();
|
||||
}
|
||||
expect(gildedRose.items[0].quality).to.equal(21);
|
||||
});
|
||||
|
||||
it('multiple iterations, not reaching negative quality and passed sell date', () => {
|
||||
const gildedRose = new GildedRose([new Item('Any normal item', 5, 30)]);
|
||||
for (let i = 0; i < 10; ++i) {
|
||||
gildedRose.updateQuality();
|
||||
}
|
||||
expect(gildedRose.items[0].quality).to.equal(15);
|
||||
});
|
||||
|
||||
it('multiple iterations, reaching max quality and passed sell date', () => {
|
||||
const gildedRose = new GildedRose([new Item('Any normal item', 5, 12)]);
|
||||
for (let i = 0; i < 10; ++i) {
|
||||
gildedRose.updateQuality();
|
||||
}
|
||||
expect(gildedRose.items[0].quality).to.equal(0);
|
||||
});
|
||||
});
|
||||
|
||||
// it('should foo', () => {
|
||||
// const gildedRose = new GildedRose([new Item('foo', 0, 0)]);
|
||||
// const items = gildedRose.updateQuality();
|
||||
// expect(items[0].name).to.equal('fixme');
|
||||
// });
|
||||
});
|
||||
|
||||
Loading…
Reference in New Issue
Block a user