Extract Backstage Passes

This commit is contained in:
Maarten Parmentier 2023-06-27 20:32:24 +02:00
parent 3d86d3d0ef
commit 14363a173b
2 changed files with 14 additions and 2 deletions

View File

@ -9,6 +9,8 @@ class GildedRose
case item.name
when 'Aged Brie'
update_aged_brie_quality(item)
when 'Backstage passes to a TAFKAL80ETC concert'
update_backstage_passes_quality(item)
when 'Sulfuras, Hand of Ragnaros'
update_sulfuras_quality(item)
else
@ -61,6 +63,16 @@ class GildedRose
item.quality = 50 if item.quality > 50
end
def update_backstage_passes_quality(item)
item.sell_in -= 1
return item.quality = 0 if item.sell_in.negative?
item.quality += 1
item.quality += 1 if item.sell_in < 10
item.quality += 1 if item.sell_in < 5
item.quality = 50 if item.quality > 50
end
def update_sulfuras_quality(item); end
end

View File

@ -188,7 +188,7 @@ describe GildedRose do
context 'when 1 day left' do
let(:sell_in) { 1 }
it 'increases quality by 1' do
it 'increases quality by 3' do
subject.update_quality
expect(items[0].quality).to eq 6
end
@ -202,7 +202,7 @@ describe GildedRose do
context 'when sell by date has passed' do
let(:sell_in) { 0 }
it 'increases quality by 2' do
it 'sets the quality to 0' do
subject.update_quality
expect(items[0].quality).to eq 0
end