add tests for backstage items

This commit is contained in:
ollie beney 2020-11-04 15:15:36 +00:00
parent f7556aecc0
commit c940184607

View File

@ -3,6 +3,7 @@ require 'gilded_rose'
describe GildedRose do
let(:potato) { Item.new('potato', 15, 2)}
let(:sulfarus) { Item.new('Sulfuras, Hand of Ragnaros', 50, 80) }
describe "#update_quality" do
it "does not change the name" do
items = [Item.new("foo", 0, 0)]
@ -53,9 +54,38 @@ let(:sulfarus) { Item.new('Sulfuras, Hand of Ragnaros', 50, 80) }
it 'does not change' do
items = [sulfarus]
GildedRose.update_quality(items)
expect(items[0]).to eq sulfarus
expect(items[0].quality).to eq 80
expect(items[0].sell_in).to eq 50
end
end
describe 'backstage pass input' do
it 'increases in quality by one when sellIn is > 10 days' do
items = [Item.new("Backstage passes to a TAFKAL80ETC concert", 15, 20)]
GildedRose.update_quality(items)
expect(items.first.quality).to eq 21
end
it 'increases in quality by 2 when sellin < 10 days' do
items = [Item.new("Backstage passes to a TAFKAL80ETC concert", 9, 20)]
GildedRose.update_quality(items)
expect(items.first.quality).to eq 22
end
it 'increases by 3 when sellin < 5' do
items = [Item.new("Backstage passes to a TAFKAL80ETC concert", 4, 20)]
GildedRose.update_quality(items)
expect(items.first.quality).to eq 23
end
it 'decreases to 0 when sellin == 0' do
items = [Item.new("Backstage passes to a TAFKAL80ETC concert", 0, 20)]
GildedRose.update_quality(items)
expect(items.first.quality).to eq 0
end
end
end