mirror of
https://github.com/emilybache/GildedRose-Refactoring-Kata.git
synced 2026-02-20 17:01:06 +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",
|
"@types/node": "^16.11.7",
|
||||||
"chai": "^4.3.4",
|
"chai": "^4.3.4",
|
||||||
"jest": "^27.3.1",
|
"jest": "^27.3.1",
|
||||||
"mocha": "^9.1.3",
|
"mocha": "^10.0.0",
|
||||||
"nyc": "~15.1.0",
|
"nyc": "~15.1.0",
|
||||||
"rimraf": "~3.0.2",
|
"rimraf": "~3.0.2",
|
||||||
"source-map-support": "^0.5.20",
|
"source-map-support": "^0.5.20",
|
||||||
"ts-jest": "^27.0.7",
|
"ts-jest": "^27.0.7",
|
||||||
"ts-node": "^10.4.0",
|
"ts-node": "^10.8.1",
|
||||||
"tsconfig-paths": "^3.11.0",
|
"tsconfig-paths": "^3.11.0",
|
||||||
"typescript": "^4.4.4"
|
"typescript": "^4.4.4"
|
||||||
}
|
}
|
||||||
|
|||||||
@ -2,9 +2,146 @@ import { expect } from 'chai';
|
|||||||
import { Item, GildedRose } from '@/gilded-rose';
|
import { Item, GildedRose } from '@/gilded-rose';
|
||||||
|
|
||||||
describe('Gilded Rose', () => {
|
describe('Gilded Rose', () => {
|
||||||
it('should foo', () => {
|
describe('Aged Brie', () => {
|
||||||
const gildedRose = new GildedRose([new Item('foo', 0, 0)]);
|
it('one iteration, not passed sell date', () => {
|
||||||
const items = gildedRose.updateQuality();
|
const gildedRose = new GildedRose([new Item('Aged Brie', 5, 31)]);
|
||||||
expect(items[0].name).to.equal('fixme');
|
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