diff --git a/TypeScript/test/jest/gilded-rose.spec.ts b/TypeScript/test/jest/gilded-rose.spec.ts index 6533075095..29efd09e8e 100644 --- a/TypeScript/test/jest/gilded-rose.spec.ts +++ b/TypeScript/test/jest/gilded-rose.spec.ts @@ -1,9 +1,19 @@ -import { Item, GildedRose } from '@/gilded-rose'; +import { Item, GildedRose } from "@/gilded-rose"; -describe('Gilded Rose', () => { - it('should foo', () => { - const gildedRose = new GildedRose([new Item('foo', 0, 0)]); - const items = gildedRose.updateQuality(); - expect(items[0].name).toBe('fixme'); +describe("GildedRose", () => { + describe("updateQuality", () => { + describe("Aged Brie", () => { + it("should increase quality when updateQuality is called", () => { + // Test code here + }); + + it("should not increase quality above 50", () => { + // Test code here + }); + + it("should increase quality by 2 after sellIn date has passed", () => { + // Test code here + }); + }); }); }); diff --git a/ruby/gilded_rose_spec.rb b/ruby/gilded_rose_spec.rb index 015a759fbc..76e49c3709 100644 --- a/ruby/gilded_rose_spec.rb +++ b/ruby/gilded_rose_spec.rb @@ -8,4 +8,74 @@ GildedRose.new(items).update_quality() expect(items[0].name).to eq "fixme" end + + context 'para items normales' do + before do + ## Arrange + @items = [Item.new("foo", 10, 2)] + @gilded = GildedRose.new(@items) + end + + + it 'decrementa la calidad del item' do + #Act + @gilded.update_quality() + + #Assert + expect(@items[0].quality).to eq 1 + end + + it 'decrementa los dias para vender el item' do + #Act + @gilded.update_quality() + + #Assert + expect(@items[0].sell_in).to eq 9 + end + + it 'decrementa la calidad del item al doble de velocidad cuando ya no quedan dias para venderlo' do + @items[0].sell_in = 0 + @items[0].quality = 20 + + @gilded.update_quality() + + expect(@items[0].quality).to eq 18 + end + + it 'no decrementa la calidad del item a negativo' do + @items[0].quality = 0 + + @gilded.update_quality() + + expect(@items[0].quality).to eq 0 + end + end + + context 'para items Aged Brie' do + it 'incrementa su calidad' + + it 'incrementa su calidad en 2 cuando ya no quedan dias de venta' + + it 'no incrementa su calidad por sobre 50' + end + + context 'para items Sulfuras' do + it 'no cambia su calidad' + + it 'no cambia los dias para venderlo' + end + + context 'para items Backstage Pass' do + it 'incrementa su calidad si quedan más de 10 días para venderlo' + + it 'incrementa su calidad en 2 si quedan 10 dias o menos para venderlo' + + it 'incrementa su calidad en 3 si quedan 5 dias o menos para venderlo' + + it 'decrementa su calidad a 0 si ya no quedan dias para venderlo' + end + + context 'para items conjurados' do + it 'decrementa su calidad en 2' + end end