diff --git a/ruby/spec/gilded_rose_spec.rb b/ruby/spec/gilded_rose_spec.rb index 84a15bdb..d566ce58 100644 --- a/ruby/spec/gilded_rose_spec.rb +++ b/ruby/spec/gilded_rose_spec.rb @@ -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