mirror of
https://github.com/emilybache/GildedRose-Refactoring-Kata.git
synced 2026-02-16 06:51:27 +00:00
Failing unit test for conjured items
This commit is contained in:
parent
6247d5be4e
commit
2b3d1ed7dc
@ -10,10 +10,11 @@ export class Item {
|
||||
}
|
||||
}
|
||||
|
||||
export type ConjuredItem = Item & { conjured: true }
|
||||
export class GildedRose {
|
||||
items: Array<Item>
|
||||
items: Array<Item | ConjuredItem>
|
||||
|
||||
constructor(items = [] as Array<Item>) {
|
||||
constructor(items = [] as Array<Item | ConjuredItem>) {
|
||||
this.items = items
|
||||
}
|
||||
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
import { Item, GildedRose } from '@/gilded-rose'
|
||||
import { Item, GildedRose, ConjuredItem } from '@/gilded-rose'
|
||||
|
||||
/**
|
||||
* A copy of the unrefactored GildedRose class used for acceptance tests
|
||||
@ -78,3 +78,29 @@ test('acceptance tests', () => {
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
function decayRate(previousValue: number, currentValue: number): number {
|
||||
const diff = currentValue - previousValue
|
||||
return diff > 0 ? diff : 0
|
||||
}
|
||||
|
||||
test('"Conjured" items degrade in Quality twice as fast as normal items', () => {
|
||||
for (const name of names) {
|
||||
for (const sellIn of sellIns) {
|
||||
for (const quality of qualities) {
|
||||
const gildedRoseWithConjuredItems = new GildedRose([{ name, sellIn, quality, conjured: true}])
|
||||
const gildedRoseWithNormalItems = new GildedRose([new Item(name, sellIn, quality)])
|
||||
|
||||
const conjuredQualityBefore = gildedRoseWithConjuredItems.items[0].quality
|
||||
const conjuredQualityAfter = gildedRoseWithConjuredItems.updateQuality()[0].quality
|
||||
const conjuredQualityDecayRate = decayRate(conjuredQualityBefore, conjuredQualityAfter)
|
||||
|
||||
const normalQualityBefore = gildedRoseWithNormalItems.items[0].quality
|
||||
const normalQualityAfter = gildedRoseWithNormalItems.updateQuality()[0].quality
|
||||
const normalQualityDecayRate = decayRate(normalQualityBefore, normalQualityAfter)
|
||||
|
||||
expect(conjuredQualityDecayRate).toEqual(normalQualityDecayRate * 2)
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
Loading…
Reference in New Issue
Block a user