GildedRose-Refactoring-Kata/ruby/spec/gilded_rose_spec.rb
2020-11-04 15:04:25 +00:00

64 lines
1.8 KiB
Ruby

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)]
GildedRose.update_quality(items)
expect(items[0].name).to eq "foo"
end
describe 'non-special item input' do
it 'should decrese the quality of normal item' do
items = [potato]
GildedRose.update_quality(items)
expect(items.first.quality).to eq (1)
end
it 'should decrese the sellIn of normal item' do
items = [potato]
GildedRose.update_quality(items)
expect(items.first.sell_in).to eq (14)
end
it 'should decrease quality of normal items by 2 when sell_in date passes' do
items = [Item.new("old potato", 0, 20)]
GildedRose.update_quality(items)
expect(items.first.quality).to eq (18)
end
it 'should not decrease quality below 0' do
items = [Item.new("old potato", 0, 0)]
GildedRose.update_quality(items)
expect(items.first.quality).to eq (0)
end
end
describe 'Aged Brie input' do
it 'increases in quality as it ages' do
items = [Item.new("Aged Brie", 25, 45)]
GildedRose.update_quality(items)
expect(items.first.quality).to eq 46
end
it 'cannot increase in quality beyond 50' do
items = [Item.new("Aged Brie", 25, 50)]
GildedRose.update_quality(items)
expect(items.first.quality).to eq 50
end
end
describe 'Sulfuras input' do
it 'does not change' do
items = [sulfarus]
GildedRose.update_quality(items)
expect(items[0]).to eq sulfarus
end
end
end
end