RED: add tests for conjured items

This commit is contained in:
fiatcode 2026-02-18 12:41:33 +07:00
parent c2994ce63c
commit 13f6bc231f

View file

@ -143,6 +143,38 @@ void main() {
});
});
group('Conjured items', () {
test('degrade in quality twice as fast as normal items', () {
final items = [Item('Conjured Mana Cake', 10, 20)];
final gildedRose = GildedRose(items);
gildedRose.updateQuality();
expect(items[0].quality, equals(18)); // -2 instead of -1
expect(items[0].sellIn, equals(9));
});
test('degrade twice as fast after sell-by date', () {
final items = [Item('Conjured Mana Cake', 0, 20)];
final gildedRose = GildedRose(items);
gildedRose.updateQuality();
expect(items[0].quality, equals(16)); // -4 instead of -2
expect(items[0].sellIn, equals(-1));
});
test('never have negative quality', () {
final items = [Item('Conjured Mana Cake', 5, 1)];
final gildedRose = GildedRose(items);
gildedRose.updateQuality();
expect(items[0].quality, equals(0));
expect(items[0].sellIn, equals(4));
});
});
group('Golden Master - 30-day simulation', () {
test('captures complete behavior of all item types over time', () {
final items = _createAllItemTypes();