mirror of
https://github.com/emilybache/GildedRose-Refactoring-Kata.git
synced 2026-02-17 23:41: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 {
|
export class GildedRose {
|
||||||
items: Array<Item>
|
items: Array<Item | ConjuredItem>
|
||||||
|
|
||||||
constructor(items = [] as Array<Item>) {
|
constructor(items = [] as Array<Item | ConjuredItem>) {
|
||||||
this.items = items
|
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
|
* 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