test: agrega tests para ruby rspec

This commit is contained in:
Felipe Gaete 2024-08-12 09:37:42 -04:00
parent 1bd63ff6d5
commit c5f4394a09

View File

@ -52,17 +52,38 @@ describe GildedRose do
end end
context 'para items Aged Brie' do context 'para items Aged Brie' do
it 'incrementa su calidad' before do
@items = [Item.new("Aged Brie", 10, 2)]
@gilded = GildedRose.new(@items)
end
it 'incrementa su calidad en 2 cuando ya no quedan dias de venta' it 'incrementa su calidad' do
@gilded.update_quality
it 'no incrementa su calidad por sobre 50' expect(@items[0].quality).to eq 3
end
it 'incrementa su calidad en 2 cuando ya no quedan dias de venta' do
@items[0].sell_in = 0
@gilded.update_quality
expect(@items[0].quality).to eq 4
end
it 'no incrementa su calidad por sobre 50' do
@items[0].quality = 50
@gilded.update_quality
expect(@items[0].quality).to eq 50
end
end end
context 'para items Sulfuras' do context 'para items Sulfuras' do
before do before do
## Arrange ## Arrange
@items = [Item.new("Sulfuras, Hand of Ragnaros", 10, 2)] @items = [Item.new("Sulfuras, Hand of Ragnaros", 10, 80)]
@gilded = GildedRose.new(@items) @gilded = GildedRose.new(@items)
end end
@ -82,12 +103,22 @@ describe GildedRose do
end end
context 'para items Backstage Pass' do context 'para items Backstage Pass' do
it 'incrementa su calidad si quedan más de 10 días para venderlo' before do
it 'incrementa su calidad en 2 si quedan 10 dias o menos para venderlo' do
# arrange # arrange
@items = [Item.new("Backstage passes to a TAFKAL80ETC concert", 10, 2)] @items = [Item.new("Backstage passes to a TAFKAL80ETC concert", 10, 2)]
@gilded = GildedRose.new(@items) @gilded = GildedRose.new(@items)
end
it 'incrementa su calidad si quedan más de 10 días para venderlo' do
@items[0].sell_in = 11
@gilded.update_quality
expect(@items[0].quality).to eq 3
end
it 'incrementa su calidad en 2 si quedan 10 dias o menos para venderlo' do
@items[0].sell_in = 10
# act # act
@gilded.update_quality() @gilded.update_quality()
@ -96,12 +127,33 @@ describe GildedRose do
expect(@items[0].quality).to eq 4 expect(@items[0].quality).to eq 4
end end
it 'incrementa su calidad en 3 si quedan 5 dias o menos para venderlo' it 'incrementa su calidad en 3 si quedan 5 dias o menos para venderlo' do
@items[0].sell_in = 5
it 'decrementa su calidad a 0 si ya no quedan dias para venderlo' @gilded.update_quality
expect(@items[0].quality).to eq 5
end
it 'decrementa su calidad a 0 si ya no quedan dias para venderlo' do
@items[0].sell_in = 0
@gilded.update_quality
expect(@items[0].quality).to eq 0
end
end end
context 'para items conjurados' do context 'para items conjurados' do
it 'decrementa su calidad en 2' before do
@items = [Item.new('Conjured item', 10, 4)]
@gilded = GildedRose.new(@items)
end
it 'decrementa su calidad en 2' do
@gilded.update_quality
expect(@items[0].quality).to eq 2
end
end end
end end