mirror of
https://github.com/emilybache/GildedRose-Refactoring-Kata.git
synced 2026-02-21 01:11:08 +00:00
refactor: restructure GildedRose and fix update order
- Added ItemType enum for clearer item categorization - Split logic into smaller helper methods for readability - Updated sellIn decrement to occur before quality update (matches original Gilded Rose behavior and fixes approval test) - Improved maintainability, clarity, and type safety
This commit is contained in:
parent
69f2361ab5
commit
51adedafa7
@ -30,7 +30,6 @@ Mocha
|
|||||||
npm run test:mocha
|
npm run test:mocha
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
## Run the TextTest fixture from the Command-Line
|
## Run the TextTest fixture from the Command-Line
|
||||||
|
|
||||||
_You may need to install `ts-node`_
|
_You may need to install `ts-node`_
|
||||||
@ -40,13 +39,13 @@ npx ts-node test/golden-master-text-test.ts
|
|||||||
```
|
```
|
||||||
|
|
||||||
Or with number of days as args:
|
Or with number of days as args:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
npx ts-node test/golden-master-text-test.ts 10
|
npx ts-node test/golden-master-text-test.ts 10
|
||||||
```
|
```
|
||||||
|
|
||||||
You should make sure the command shown above works when you execute it in a terminal before trying to use TextTest (see below).
|
You should make sure the command shown above works when you execute it in a terminal before trying to use TextTest (see below).
|
||||||
|
|
||||||
|
|
||||||
## Run the TextTest approval test that comes with this project
|
## Run the TextTest approval test that comes with this project
|
||||||
|
|
||||||
There are instructions in the [TextTest Readme](../texttests/README.md) for setting up TextTest. You will need to specify the Python executable and interpreter in [config.gr](../texttests/config.gr). Uncomment these lines:
|
There are instructions in the [TextTest Readme](../texttests/README.md) for setting up TextTest. You will need to specify the Python executable and interpreter in [config.gr](../texttests/config.gr). Uncomment these lines:
|
||||||
@ -54,4 +53,7 @@ There are instructions in the [TextTest Readme](../texttests/README.md) for sett
|
|||||||
executable:${TEXTTEST_HOME}/python/texttest_fixture.py
|
executable:${TEXTTEST_HOME}/python/texttest_fixture.py
|
||||||
interpreter:python
|
interpreter:python
|
||||||
|
|
||||||
|
//https://github.com/emilybache/GildedRose-Refactoring-Kata.git
|
||||||
|
// https://github.com/emilybache/GildedRose-Refactoring-Kata
|
||||||
|
// GitHub - emilybache/GildedRose-Refactoring-Kata: Starting code for the GildedRose Refactoring Kata in many programming languages.
|
||||||
|
// Starting code for the GildedRose Refactoring Kata in many programming languages. - emilybache/GildedRose-Refactoring-Kata
|
||||||
|
|||||||
@ -1,9 +1,16 @@
|
|||||||
|
enum ItemType {
|
||||||
|
AGED_BRIE = "AGED_BRIE",
|
||||||
|
BACKSTAGE_PASSES = "BACKSTAGE_PASSES",
|
||||||
|
SULFURAS = "SULFURAS",
|
||||||
|
NORMAL = "NORMAL",
|
||||||
|
}
|
||||||
|
|
||||||
export class Item {
|
export class Item {
|
||||||
name: string;
|
name: string;
|
||||||
sellIn: number;
|
sellIn: number;
|
||||||
quality: number;
|
quality: number;
|
||||||
|
|
||||||
constructor(name, sellIn, quality) {
|
constructor(name: string, sellIn: number, quality: number) {
|
||||||
this.name = name;
|
this.name = name;
|
||||||
this.sellIn = sellIn;
|
this.sellIn = sellIn;
|
||||||
this.quality = quality;
|
this.quality = quality;
|
||||||
@ -17,53 +24,84 @@ export class GildedRose {
|
|||||||
this.items = items;
|
this.items = items;
|
||||||
}
|
}
|
||||||
|
|
||||||
updateQuality() {
|
private specifyItemType(item: Item): ItemType {
|
||||||
for (let i = 0; i < this.items.length; i++) {
|
if (item.name.includes("Aged Brie")) {
|
||||||
if (this.items[i].name != 'Aged Brie' && this.items[i].name != 'Backstage passes to a TAFKAL80ETC concert') {
|
return ItemType.AGED_BRIE;
|
||||||
if (this.items[i].quality > 0) {
|
} else if (item.name.includes("Backstage passes")) {
|
||||||
if (this.items[i].name != 'Sulfuras, Hand of Ragnaros') {
|
return ItemType.BACKSTAGE_PASSES;
|
||||||
this.items[i].quality = this.items[i].quality - 1
|
} else if (item.name.includes("Sulfuras")) {
|
||||||
}
|
return ItemType.SULFURAS;
|
||||||
}
|
} else {
|
||||||
} else {
|
return ItemType.NORMAL;
|
||||||
if (this.items[i].quality < 50) {
|
|
||||||
this.items[i].quality = this.items[i].quality + 1
|
|
||||||
if (this.items[i].name == 'Backstage passes to a TAFKAL80ETC concert') {
|
|
||||||
if (this.items[i].sellIn < 11) {
|
|
||||||
if (this.items[i].quality < 50) {
|
|
||||||
this.items[i].quality = this.items[i].quality + 1
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (this.items[i].sellIn < 6) {
|
|
||||||
if (this.items[i].quality < 50) {
|
|
||||||
this.items[i].quality = this.items[i].quality + 1
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (this.items[i].name != 'Sulfuras, Hand of Ragnaros') {
|
|
||||||
this.items[i].sellIn = this.items[i].sellIn - 1;
|
|
||||||
}
|
|
||||||
if (this.items[i].sellIn < 0) {
|
|
||||||
if (this.items[i].name != 'Aged Brie') {
|
|
||||||
if (this.items[i].name != 'Backstage passes to a TAFKAL80ETC concert') {
|
|
||||||
if (this.items[i].quality > 0) {
|
|
||||||
if (this.items[i].name != 'Sulfuras, Hand of Ragnaros') {
|
|
||||||
this.items[i].quality = this.items[i].quality - 1
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
this.items[i].quality = this.items[i].quality - this.items[i].quality
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if (this.items[i].quality < 50) {
|
|
||||||
this.items[i].quality = this.items[i].quality + 1
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private updateItemQuality(item: Item, type: ItemType): void {
|
||||||
|
switch (type) {
|
||||||
|
case ItemType.AGED_BRIE:
|
||||||
|
this.updateAgedBrieQuality(item);
|
||||||
|
break;
|
||||||
|
case ItemType.BACKSTAGE_PASSES:
|
||||||
|
this.updateBackstagePassesQuality(item);
|
||||||
|
break;
|
||||||
|
case ItemType.SULFURAS:
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
this.updateNormalItemQuality(item);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private updateNormalItemQuality(item: Item): void {
|
||||||
|
if (item.sellIn > 0) {
|
||||||
|
this.decreaseQuality(item, 1);
|
||||||
|
} else {
|
||||||
|
this.decreaseQuality(item, 2);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private updateAgedBrieQuality(item: Item): void {
|
||||||
|
if (item.sellIn > 0) {
|
||||||
|
this.increaseQuality(item, 1);
|
||||||
|
} else {
|
||||||
|
this.increaseQuality(item, 2);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private updateBackstagePassesQuality(item: Item): void {
|
||||||
|
if (item.sellIn <= 0) {
|
||||||
|
item.quality = 0;
|
||||||
|
} else if (item.sellIn <= 5) {
|
||||||
|
this.increaseQuality(item, 3);
|
||||||
|
} else if (item.sellIn <= 10) {
|
||||||
|
this.increaseQuality(item, 2);
|
||||||
|
} else {
|
||||||
|
this.increaseQuality(item, 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private updateItemSellIn(item: Item, type: ItemType): void {
|
||||||
|
if (type !== ItemType.SULFURAS) {
|
||||||
|
item.sellIn -= 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
private increaseQuality(item: Item, amount: number): void {
|
||||||
|
item.quality = Math.min(item.quality + amount, 50);
|
||||||
|
}
|
||||||
|
private decreaseQuality(item: Item, amount: number): void {
|
||||||
|
item.quality = Math.max(item.quality - amount, 0);
|
||||||
|
}
|
||||||
|
private updateSingleItem(item: Item): void {
|
||||||
|
const type = this.specifyItemType(item);
|
||||||
|
|
||||||
|
this.updateItemSellIn(item, type);
|
||||||
|
this.updateItemQuality(item, type);
|
||||||
|
}
|
||||||
|
|
||||||
|
updateQuality() {
|
||||||
|
for (const item of this.items) {
|
||||||
|
this.updateSingleItem(item);
|
||||||
|
}
|
||||||
return this.items;
|
return this.items;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
388
TypeScript/test/jest/__snapshots__/approvals.spec.ts.snap
Normal file
388
TypeScript/test/jest/__snapshots__/approvals.spec.ts.snap
Normal file
@ -0,0 +1,388 @@
|
|||||||
|
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
||||||
|
|
||||||
|
exports[`Gilded Rose Approval should foo 1`] = `
|
||||||
|
[
|
||||||
|
Item {
|
||||||
|
"name": "foo",
|
||||||
|
"quality": 0,
|
||||||
|
"sellIn": -1,
|
||||||
|
},
|
||||||
|
]
|
||||||
|
`;
|
||||||
|
|
||||||
|
exports[`Gilded Rose Approval should thirtyDays 1`] = `
|
||||||
|
"OMGHAI!
|
||||||
|
-------- day 0 --------
|
||||||
|
name, sellIn, quality
|
||||||
|
+5 Dexterity Vest, 10, 20
|
||||||
|
Aged Brie, 2, 0
|
||||||
|
Elixir of the Mongoose, 5, 7
|
||||||
|
Sulfuras, Hand of Ragnaros, 0, 80
|
||||||
|
Sulfuras, Hand of Ragnaros, -1, 80
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, 15, 20
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, 10, 49
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, 5, 49
|
||||||
|
Conjured Mana Cake, 3, 6
|
||||||
|
|
||||||
|
-------- day 1 --------
|
||||||
|
name, sellIn, quality
|
||||||
|
+5 Dexterity Vest, 9, 19
|
||||||
|
Aged Brie, 1, 1
|
||||||
|
Elixir of the Mongoose, 4, 6
|
||||||
|
Sulfuras, Hand of Ragnaros, 0, 80
|
||||||
|
Sulfuras, Hand of Ragnaros, -1, 80
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, 14, 21
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, 9, 50
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, 4, 50
|
||||||
|
Conjured Mana Cake, 2, 5
|
||||||
|
|
||||||
|
-------- day 2 --------
|
||||||
|
name, sellIn, quality
|
||||||
|
+5 Dexterity Vest, 8, 18
|
||||||
|
Aged Brie, 0, 2
|
||||||
|
Elixir of the Mongoose, 3, 5
|
||||||
|
Sulfuras, Hand of Ragnaros, 0, 80
|
||||||
|
Sulfuras, Hand of Ragnaros, -1, 80
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, 13, 22
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, 8, 50
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, 3, 50
|
||||||
|
Conjured Mana Cake, 1, 4
|
||||||
|
|
||||||
|
-------- day 3 --------
|
||||||
|
name, sellIn, quality
|
||||||
|
+5 Dexterity Vest, 7, 17
|
||||||
|
Aged Brie, -1, 4
|
||||||
|
Elixir of the Mongoose, 2, 4
|
||||||
|
Sulfuras, Hand of Ragnaros, 0, 80
|
||||||
|
Sulfuras, Hand of Ragnaros, -1, 80
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, 12, 23
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, 7, 50
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, 2, 50
|
||||||
|
Conjured Mana Cake, 0, 3
|
||||||
|
|
||||||
|
-------- day 4 --------
|
||||||
|
name, sellIn, quality
|
||||||
|
+5 Dexterity Vest, 6, 16
|
||||||
|
Aged Brie, -2, 6
|
||||||
|
Elixir of the Mongoose, 1, 3
|
||||||
|
Sulfuras, Hand of Ragnaros, 0, 80
|
||||||
|
Sulfuras, Hand of Ragnaros, -1, 80
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, 11, 24
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, 6, 50
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, 1, 50
|
||||||
|
Conjured Mana Cake, -1, 1
|
||||||
|
|
||||||
|
-------- day 5 --------
|
||||||
|
name, sellIn, quality
|
||||||
|
+5 Dexterity Vest, 5, 15
|
||||||
|
Aged Brie, -3, 8
|
||||||
|
Elixir of the Mongoose, 0, 2
|
||||||
|
Sulfuras, Hand of Ragnaros, 0, 80
|
||||||
|
Sulfuras, Hand of Ragnaros, -1, 80
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, 10, 25
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, 5, 50
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, 0, 50
|
||||||
|
Conjured Mana Cake, -2, 0
|
||||||
|
|
||||||
|
-------- day 6 --------
|
||||||
|
name, sellIn, quality
|
||||||
|
+5 Dexterity Vest, 4, 14
|
||||||
|
Aged Brie, -4, 10
|
||||||
|
Elixir of the Mongoose, -1, 0
|
||||||
|
Sulfuras, Hand of Ragnaros, 0, 80
|
||||||
|
Sulfuras, Hand of Ragnaros, -1, 80
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, 9, 27
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, 4, 50
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, -1, 0
|
||||||
|
Conjured Mana Cake, -3, 0
|
||||||
|
|
||||||
|
-------- day 7 --------
|
||||||
|
name, sellIn, quality
|
||||||
|
+5 Dexterity Vest, 3, 13
|
||||||
|
Aged Brie, -5, 12
|
||||||
|
Elixir of the Mongoose, -2, 0
|
||||||
|
Sulfuras, Hand of Ragnaros, 0, 80
|
||||||
|
Sulfuras, Hand of Ragnaros, -1, 80
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, 8, 29
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, 3, 50
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, -2, 0
|
||||||
|
Conjured Mana Cake, -4, 0
|
||||||
|
|
||||||
|
-------- day 8 --------
|
||||||
|
name, sellIn, quality
|
||||||
|
+5 Dexterity Vest, 2, 12
|
||||||
|
Aged Brie, -6, 14
|
||||||
|
Elixir of the Mongoose, -3, 0
|
||||||
|
Sulfuras, Hand of Ragnaros, 0, 80
|
||||||
|
Sulfuras, Hand of Ragnaros, -1, 80
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, 7, 31
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, 2, 50
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, -3, 0
|
||||||
|
Conjured Mana Cake, -5, 0
|
||||||
|
|
||||||
|
-------- day 9 --------
|
||||||
|
name, sellIn, quality
|
||||||
|
+5 Dexterity Vest, 1, 11
|
||||||
|
Aged Brie, -7, 16
|
||||||
|
Elixir of the Mongoose, -4, 0
|
||||||
|
Sulfuras, Hand of Ragnaros, 0, 80
|
||||||
|
Sulfuras, Hand of Ragnaros, -1, 80
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, 6, 33
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, 1, 50
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, -4, 0
|
||||||
|
Conjured Mana Cake, -6, 0
|
||||||
|
|
||||||
|
-------- day 10 --------
|
||||||
|
name, sellIn, quality
|
||||||
|
+5 Dexterity Vest, 0, 10
|
||||||
|
Aged Brie, -8, 18
|
||||||
|
Elixir of the Mongoose, -5, 0
|
||||||
|
Sulfuras, Hand of Ragnaros, 0, 80
|
||||||
|
Sulfuras, Hand of Ragnaros, -1, 80
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, 5, 35
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, 0, 50
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, -5, 0
|
||||||
|
Conjured Mana Cake, -7, 0
|
||||||
|
|
||||||
|
-------- day 11 --------
|
||||||
|
name, sellIn, quality
|
||||||
|
+5 Dexterity Vest, -1, 8
|
||||||
|
Aged Brie, -9, 20
|
||||||
|
Elixir of the Mongoose, -6, 0
|
||||||
|
Sulfuras, Hand of Ragnaros, 0, 80
|
||||||
|
Sulfuras, Hand of Ragnaros, -1, 80
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, 4, 38
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, -1, 0
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, -6, 0
|
||||||
|
Conjured Mana Cake, -8, 0
|
||||||
|
|
||||||
|
-------- day 12 --------
|
||||||
|
name, sellIn, quality
|
||||||
|
+5 Dexterity Vest, -2, 6
|
||||||
|
Aged Brie, -10, 22
|
||||||
|
Elixir of the Mongoose, -7, 0
|
||||||
|
Sulfuras, Hand of Ragnaros, 0, 80
|
||||||
|
Sulfuras, Hand of Ragnaros, -1, 80
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, 3, 41
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, -2, 0
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, -7, 0
|
||||||
|
Conjured Mana Cake, -9, 0
|
||||||
|
|
||||||
|
-------- day 13 --------
|
||||||
|
name, sellIn, quality
|
||||||
|
+5 Dexterity Vest, -3, 4
|
||||||
|
Aged Brie, -11, 24
|
||||||
|
Elixir of the Mongoose, -8, 0
|
||||||
|
Sulfuras, Hand of Ragnaros, 0, 80
|
||||||
|
Sulfuras, Hand of Ragnaros, -1, 80
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, 2, 44
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, -3, 0
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, -8, 0
|
||||||
|
Conjured Mana Cake, -10, 0
|
||||||
|
|
||||||
|
-------- day 14 --------
|
||||||
|
name, sellIn, quality
|
||||||
|
+5 Dexterity Vest, -4, 2
|
||||||
|
Aged Brie, -12, 26
|
||||||
|
Elixir of the Mongoose, -9, 0
|
||||||
|
Sulfuras, Hand of Ragnaros, 0, 80
|
||||||
|
Sulfuras, Hand of Ragnaros, -1, 80
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, 1, 47
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, -4, 0
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, -9, 0
|
||||||
|
Conjured Mana Cake, -11, 0
|
||||||
|
|
||||||
|
-------- day 15 --------
|
||||||
|
name, sellIn, quality
|
||||||
|
+5 Dexterity Vest, -5, 0
|
||||||
|
Aged Brie, -13, 28
|
||||||
|
Elixir of the Mongoose, -10, 0
|
||||||
|
Sulfuras, Hand of Ragnaros, 0, 80
|
||||||
|
Sulfuras, Hand of Ragnaros, -1, 80
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, 0, 50
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, -5, 0
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, -10, 0
|
||||||
|
Conjured Mana Cake, -12, 0
|
||||||
|
|
||||||
|
-------- day 16 --------
|
||||||
|
name, sellIn, quality
|
||||||
|
+5 Dexterity Vest, -6, 0
|
||||||
|
Aged Brie, -14, 30
|
||||||
|
Elixir of the Mongoose, -11, 0
|
||||||
|
Sulfuras, Hand of Ragnaros, 0, 80
|
||||||
|
Sulfuras, Hand of Ragnaros, -1, 80
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, -1, 0
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, -6, 0
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, -11, 0
|
||||||
|
Conjured Mana Cake, -13, 0
|
||||||
|
|
||||||
|
-------- day 17 --------
|
||||||
|
name, sellIn, quality
|
||||||
|
+5 Dexterity Vest, -7, 0
|
||||||
|
Aged Brie, -15, 32
|
||||||
|
Elixir of the Mongoose, -12, 0
|
||||||
|
Sulfuras, Hand of Ragnaros, 0, 80
|
||||||
|
Sulfuras, Hand of Ragnaros, -1, 80
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, -2, 0
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, -7, 0
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, -12, 0
|
||||||
|
Conjured Mana Cake, -14, 0
|
||||||
|
|
||||||
|
-------- day 18 --------
|
||||||
|
name, sellIn, quality
|
||||||
|
+5 Dexterity Vest, -8, 0
|
||||||
|
Aged Brie, -16, 34
|
||||||
|
Elixir of the Mongoose, -13, 0
|
||||||
|
Sulfuras, Hand of Ragnaros, 0, 80
|
||||||
|
Sulfuras, Hand of Ragnaros, -1, 80
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, -3, 0
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, -8, 0
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, -13, 0
|
||||||
|
Conjured Mana Cake, -15, 0
|
||||||
|
|
||||||
|
-------- day 19 --------
|
||||||
|
name, sellIn, quality
|
||||||
|
+5 Dexterity Vest, -9, 0
|
||||||
|
Aged Brie, -17, 36
|
||||||
|
Elixir of the Mongoose, -14, 0
|
||||||
|
Sulfuras, Hand of Ragnaros, 0, 80
|
||||||
|
Sulfuras, Hand of Ragnaros, -1, 80
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, -4, 0
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, -9, 0
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, -14, 0
|
||||||
|
Conjured Mana Cake, -16, 0
|
||||||
|
|
||||||
|
-------- day 20 --------
|
||||||
|
name, sellIn, quality
|
||||||
|
+5 Dexterity Vest, -10, 0
|
||||||
|
Aged Brie, -18, 38
|
||||||
|
Elixir of the Mongoose, -15, 0
|
||||||
|
Sulfuras, Hand of Ragnaros, 0, 80
|
||||||
|
Sulfuras, Hand of Ragnaros, -1, 80
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, -5, 0
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, -10, 0
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, -15, 0
|
||||||
|
Conjured Mana Cake, -17, 0
|
||||||
|
|
||||||
|
-------- day 21 --------
|
||||||
|
name, sellIn, quality
|
||||||
|
+5 Dexterity Vest, -11, 0
|
||||||
|
Aged Brie, -19, 40
|
||||||
|
Elixir of the Mongoose, -16, 0
|
||||||
|
Sulfuras, Hand of Ragnaros, 0, 80
|
||||||
|
Sulfuras, Hand of Ragnaros, -1, 80
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, -6, 0
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, -11, 0
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, -16, 0
|
||||||
|
Conjured Mana Cake, -18, 0
|
||||||
|
|
||||||
|
-------- day 22 --------
|
||||||
|
name, sellIn, quality
|
||||||
|
+5 Dexterity Vest, -12, 0
|
||||||
|
Aged Brie, -20, 42
|
||||||
|
Elixir of the Mongoose, -17, 0
|
||||||
|
Sulfuras, Hand of Ragnaros, 0, 80
|
||||||
|
Sulfuras, Hand of Ragnaros, -1, 80
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, -7, 0
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, -12, 0
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, -17, 0
|
||||||
|
Conjured Mana Cake, -19, 0
|
||||||
|
|
||||||
|
-------- day 23 --------
|
||||||
|
name, sellIn, quality
|
||||||
|
+5 Dexterity Vest, -13, 0
|
||||||
|
Aged Brie, -21, 44
|
||||||
|
Elixir of the Mongoose, -18, 0
|
||||||
|
Sulfuras, Hand of Ragnaros, 0, 80
|
||||||
|
Sulfuras, Hand of Ragnaros, -1, 80
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, -8, 0
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, -13, 0
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, -18, 0
|
||||||
|
Conjured Mana Cake, -20, 0
|
||||||
|
|
||||||
|
-------- day 24 --------
|
||||||
|
name, sellIn, quality
|
||||||
|
+5 Dexterity Vest, -14, 0
|
||||||
|
Aged Brie, -22, 46
|
||||||
|
Elixir of the Mongoose, -19, 0
|
||||||
|
Sulfuras, Hand of Ragnaros, 0, 80
|
||||||
|
Sulfuras, Hand of Ragnaros, -1, 80
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, -9, 0
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, -14, 0
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, -19, 0
|
||||||
|
Conjured Mana Cake, -21, 0
|
||||||
|
|
||||||
|
-------- day 25 --------
|
||||||
|
name, sellIn, quality
|
||||||
|
+5 Dexterity Vest, -15, 0
|
||||||
|
Aged Brie, -23, 48
|
||||||
|
Elixir of the Mongoose, -20, 0
|
||||||
|
Sulfuras, Hand of Ragnaros, 0, 80
|
||||||
|
Sulfuras, Hand of Ragnaros, -1, 80
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, -10, 0
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, -15, 0
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, -20, 0
|
||||||
|
Conjured Mana Cake, -22, 0
|
||||||
|
|
||||||
|
-------- day 26 --------
|
||||||
|
name, sellIn, quality
|
||||||
|
+5 Dexterity Vest, -16, 0
|
||||||
|
Aged Brie, -24, 50
|
||||||
|
Elixir of the Mongoose, -21, 0
|
||||||
|
Sulfuras, Hand of Ragnaros, 0, 80
|
||||||
|
Sulfuras, Hand of Ragnaros, -1, 80
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, -11, 0
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, -16, 0
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, -21, 0
|
||||||
|
Conjured Mana Cake, -23, 0
|
||||||
|
|
||||||
|
-------- day 27 --------
|
||||||
|
name, sellIn, quality
|
||||||
|
+5 Dexterity Vest, -17, 0
|
||||||
|
Aged Brie, -25, 50
|
||||||
|
Elixir of the Mongoose, -22, 0
|
||||||
|
Sulfuras, Hand of Ragnaros, 0, 80
|
||||||
|
Sulfuras, Hand of Ragnaros, -1, 80
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, -12, 0
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, -17, 0
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, -22, 0
|
||||||
|
Conjured Mana Cake, -24, 0
|
||||||
|
|
||||||
|
-------- day 28 --------
|
||||||
|
name, sellIn, quality
|
||||||
|
+5 Dexterity Vest, -18, 0
|
||||||
|
Aged Brie, -26, 50
|
||||||
|
Elixir of the Mongoose, -23, 0
|
||||||
|
Sulfuras, Hand of Ragnaros, 0, 80
|
||||||
|
Sulfuras, Hand of Ragnaros, -1, 80
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, -13, 0
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, -18, 0
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, -23, 0
|
||||||
|
Conjured Mana Cake, -25, 0
|
||||||
|
|
||||||
|
-------- day 29 --------
|
||||||
|
name, sellIn, quality
|
||||||
|
+5 Dexterity Vest, -19, 0
|
||||||
|
Aged Brie, -27, 50
|
||||||
|
Elixir of the Mongoose, -24, 0
|
||||||
|
Sulfuras, Hand of Ragnaros, 0, 80
|
||||||
|
Sulfuras, Hand of Ragnaros, -1, 80
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, -14, 0
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, -19, 0
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, -24, 0
|
||||||
|
Conjured Mana Cake, -26, 0
|
||||||
|
|
||||||
|
-------- day 30 --------
|
||||||
|
name, sellIn, quality
|
||||||
|
+5 Dexterity Vest, -20, 0
|
||||||
|
Aged Brie, -28, 50
|
||||||
|
Elixir of the Mongoose, -25, 0
|
||||||
|
Sulfuras, Hand of Ragnaros, 0, 80
|
||||||
|
Sulfuras, Hand of Ragnaros, -1, 80
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, -15, 0
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, -20, 0
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, -25, 0
|
||||||
|
Conjured Mana Cake, -27, 0
|
||||||
|
|
||||||
|
"
|
||||||
|
`;
|
||||||
@ -1,9 +1,119 @@
|
|||||||
import { Item, GildedRose } from '@/gilded-rose';
|
import { Item, GildedRose } from "@/gilded-rose";
|
||||||
|
|
||||||
describe('Gilded Rose', () => {
|
describe("GildedRose", () => {
|
||||||
it('should foo', () => {
|
it("should decrease sellIn and quality for normal items", () => {
|
||||||
const gildedRose = new GildedRose([new Item('foo', 0, 0)]);
|
const items = [new Item("Normal Item", 10, 20)];
|
||||||
const items = gildedRose.updateQuality();
|
const shop = new GildedRose(items);
|
||||||
expect(items[0].name).toBe('fixme');
|
|
||||||
|
shop.updateQuality();
|
||||||
|
|
||||||
|
expect(items[0].sellIn).toBe(9);
|
||||||
|
expect(items[0].quality).toBe(19);
|
||||||
|
});
|
||||||
|
|
||||||
|
it("should decrease quality twice as fast after sellIn <= 0", () => {
|
||||||
|
const items = [new Item("Normal Item", 0, 10)];
|
||||||
|
const shop = new GildedRose(items);
|
||||||
|
|
||||||
|
shop.updateQuality();
|
||||||
|
|
||||||
|
expect(items[0].sellIn).toBe(-1);
|
||||||
|
expect(items[0].quality).toBe(8);
|
||||||
|
});
|
||||||
|
|
||||||
|
it("should increase quality of Aged Brie as it gets older", () => {
|
||||||
|
const items = [new Item("Aged Brie", 5, 10)];
|
||||||
|
const shop = new GildedRose(items);
|
||||||
|
|
||||||
|
shop.updateQuality();
|
||||||
|
|
||||||
|
expect(items[0].sellIn).toBe(4);
|
||||||
|
expect(items[0].quality).toBe(11);
|
||||||
|
});
|
||||||
|
|
||||||
|
it("should increase Aged Brie quality twice as fast after sellIn <= 0", () => {
|
||||||
|
const items = [new Item("Aged Brie", 0, 10)];
|
||||||
|
const shop = new GildedRose(items);
|
||||||
|
|
||||||
|
shop.updateQuality();
|
||||||
|
|
||||||
|
expect(items[0].sellIn).toBe(-1);
|
||||||
|
expect(items[0].quality).toBe(12);
|
||||||
|
});
|
||||||
|
|
||||||
|
it("should not increase quality above 50", () => {
|
||||||
|
const items = [new Item("Aged Brie", 5, 50)];
|
||||||
|
const shop = new GildedRose(items);
|
||||||
|
|
||||||
|
shop.updateQuality();
|
||||||
|
|
||||||
|
expect(items[0].quality).toBe(50);
|
||||||
|
});
|
||||||
|
|
||||||
|
it("should never decrease quality below 0", () => {
|
||||||
|
const items = [new Item("Normal Item", 5, 0)];
|
||||||
|
const shop = new GildedRose(items);
|
||||||
|
|
||||||
|
shop.updateQuality();
|
||||||
|
|
||||||
|
expect(items[0].quality).toBe(0);
|
||||||
|
});
|
||||||
|
|
||||||
|
it("should not change quality or sellIn for Sulfuras", () => {
|
||||||
|
const items = [new Item("Sulfuras, Hand of Ragnaros", 0, 80)];
|
||||||
|
const shop = new GildedRose(items);
|
||||||
|
|
||||||
|
shop.updateQuality();
|
||||||
|
|
||||||
|
expect(items[0].sellIn).toBe(0);
|
||||||
|
expect(items[0].quality).toBe(80);
|
||||||
|
});
|
||||||
|
|
||||||
|
it("should increase Backstage pass quality by 1 when sellIn > 10", () => {
|
||||||
|
const items = [
|
||||||
|
new Item("Backstage passes to a TAFKAL80ETC concert", 15, 20),
|
||||||
|
];
|
||||||
|
const shop = new GildedRose(items);
|
||||||
|
|
||||||
|
shop.updateQuality();
|
||||||
|
|
||||||
|
expect(items[0].sellIn).toBe(14);
|
||||||
|
expect(items[0].quality).toBe(21);
|
||||||
|
});
|
||||||
|
|
||||||
|
it("should increase Backstage pass quality by 2 when sellIn <= 10 and > 5", () => {
|
||||||
|
const items = [
|
||||||
|
new Item("Backstage passes to a TAFKAL80ETC concert", 10, 20),
|
||||||
|
];
|
||||||
|
const shop = new GildedRose(items);
|
||||||
|
|
||||||
|
shop.updateQuality();
|
||||||
|
|
||||||
|
expect(items[0].sellIn).toBe(9);
|
||||||
|
expect(items[0].quality).toBe(22);
|
||||||
|
});
|
||||||
|
|
||||||
|
it("should increase Backstage pass quality by 3 when sellIn <= 5 and > 0", () => {
|
||||||
|
const items = [
|
||||||
|
new Item("Backstage passes to a TAFKAL80ETC concert", 5, 20),
|
||||||
|
];
|
||||||
|
const shop = new GildedRose(items);
|
||||||
|
|
||||||
|
shop.updateQuality();
|
||||||
|
|
||||||
|
expect(items[0].sellIn).toBe(4);
|
||||||
|
expect(items[0].quality).toBe(23);
|
||||||
|
});
|
||||||
|
|
||||||
|
it("should drop Backstage pass quality to 0 after the concert (sellIn <= 0)", () => {
|
||||||
|
const items = [
|
||||||
|
new Item("Backstage passes to a TAFKAL80ETC concert", 0, 30),
|
||||||
|
];
|
||||||
|
const shop = new GildedRose(items);
|
||||||
|
|
||||||
|
shop.updateQuality();
|
||||||
|
|
||||||
|
expect(items[0].sellIn).toBe(-1);
|
||||||
|
expect(items[0].quality).toBe(0);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
388
TypeScript/test/vitest/__snapshots__/approvals.spec.ts.snap
Normal file
388
TypeScript/test/vitest/__snapshots__/approvals.spec.ts.snap
Normal file
@ -0,0 +1,388 @@
|
|||||||
|
// Vitest Snapshot v1
|
||||||
|
|
||||||
|
exports[`Gilded Rose Approval > should foo 1`] = `
|
||||||
|
[
|
||||||
|
Item {
|
||||||
|
"name": "foo",
|
||||||
|
"quality": 0,
|
||||||
|
"sellIn": -1,
|
||||||
|
},
|
||||||
|
]
|
||||||
|
`;
|
||||||
|
|
||||||
|
exports[`Gilded Rose Approval > should thirtyDays 1`] = `
|
||||||
|
"OMGHAI!
|
||||||
|
-------- day 0 --------
|
||||||
|
name, sellIn, quality
|
||||||
|
+5 Dexterity Vest, 10, 20
|
||||||
|
Aged Brie, 2, 0
|
||||||
|
Elixir of the Mongoose, 5, 7
|
||||||
|
Sulfuras, Hand of Ragnaros, 0, 80
|
||||||
|
Sulfuras, Hand of Ragnaros, -1, 80
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, 15, 20
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, 10, 49
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, 5, 49
|
||||||
|
Conjured Mana Cake, 3, 6
|
||||||
|
|
||||||
|
-------- day 1 --------
|
||||||
|
name, sellIn, quality
|
||||||
|
+5 Dexterity Vest, 9, 19
|
||||||
|
Aged Brie, 1, 1
|
||||||
|
Elixir of the Mongoose, 4, 6
|
||||||
|
Sulfuras, Hand of Ragnaros, 0, 80
|
||||||
|
Sulfuras, Hand of Ragnaros, -1, 80
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, 14, 21
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, 9, 50
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, 4, 50
|
||||||
|
Conjured Mana Cake, 2, 5
|
||||||
|
|
||||||
|
-------- day 2 --------
|
||||||
|
name, sellIn, quality
|
||||||
|
+5 Dexterity Vest, 8, 18
|
||||||
|
Aged Brie, 0, 2
|
||||||
|
Elixir of the Mongoose, 3, 5
|
||||||
|
Sulfuras, Hand of Ragnaros, 0, 80
|
||||||
|
Sulfuras, Hand of Ragnaros, -1, 80
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, 13, 22
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, 8, 50
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, 3, 50
|
||||||
|
Conjured Mana Cake, 1, 4
|
||||||
|
|
||||||
|
-------- day 3 --------
|
||||||
|
name, sellIn, quality
|
||||||
|
+5 Dexterity Vest, 7, 17
|
||||||
|
Aged Brie, -1, 4
|
||||||
|
Elixir of the Mongoose, 2, 4
|
||||||
|
Sulfuras, Hand of Ragnaros, 0, 80
|
||||||
|
Sulfuras, Hand of Ragnaros, -1, 80
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, 12, 23
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, 7, 50
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, 2, 50
|
||||||
|
Conjured Mana Cake, 0, 3
|
||||||
|
|
||||||
|
-------- day 4 --------
|
||||||
|
name, sellIn, quality
|
||||||
|
+5 Dexterity Vest, 6, 16
|
||||||
|
Aged Brie, -2, 6
|
||||||
|
Elixir of the Mongoose, 1, 3
|
||||||
|
Sulfuras, Hand of Ragnaros, 0, 80
|
||||||
|
Sulfuras, Hand of Ragnaros, -1, 80
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, 11, 24
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, 6, 50
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, 1, 50
|
||||||
|
Conjured Mana Cake, -1, 1
|
||||||
|
|
||||||
|
-------- day 5 --------
|
||||||
|
name, sellIn, quality
|
||||||
|
+5 Dexterity Vest, 5, 15
|
||||||
|
Aged Brie, -3, 8
|
||||||
|
Elixir of the Mongoose, 0, 2
|
||||||
|
Sulfuras, Hand of Ragnaros, 0, 80
|
||||||
|
Sulfuras, Hand of Ragnaros, -1, 80
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, 10, 25
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, 5, 50
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, 0, 50
|
||||||
|
Conjured Mana Cake, -2, 0
|
||||||
|
|
||||||
|
-------- day 6 --------
|
||||||
|
name, sellIn, quality
|
||||||
|
+5 Dexterity Vest, 4, 14
|
||||||
|
Aged Brie, -4, 10
|
||||||
|
Elixir of the Mongoose, -1, 0
|
||||||
|
Sulfuras, Hand of Ragnaros, 0, 80
|
||||||
|
Sulfuras, Hand of Ragnaros, -1, 80
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, 9, 27
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, 4, 50
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, -1, 0
|
||||||
|
Conjured Mana Cake, -3, 0
|
||||||
|
|
||||||
|
-------- day 7 --------
|
||||||
|
name, sellIn, quality
|
||||||
|
+5 Dexterity Vest, 3, 13
|
||||||
|
Aged Brie, -5, 12
|
||||||
|
Elixir of the Mongoose, -2, 0
|
||||||
|
Sulfuras, Hand of Ragnaros, 0, 80
|
||||||
|
Sulfuras, Hand of Ragnaros, -1, 80
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, 8, 29
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, 3, 50
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, -2, 0
|
||||||
|
Conjured Mana Cake, -4, 0
|
||||||
|
|
||||||
|
-------- day 8 --------
|
||||||
|
name, sellIn, quality
|
||||||
|
+5 Dexterity Vest, 2, 12
|
||||||
|
Aged Brie, -6, 14
|
||||||
|
Elixir of the Mongoose, -3, 0
|
||||||
|
Sulfuras, Hand of Ragnaros, 0, 80
|
||||||
|
Sulfuras, Hand of Ragnaros, -1, 80
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, 7, 31
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, 2, 50
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, -3, 0
|
||||||
|
Conjured Mana Cake, -5, 0
|
||||||
|
|
||||||
|
-------- day 9 --------
|
||||||
|
name, sellIn, quality
|
||||||
|
+5 Dexterity Vest, 1, 11
|
||||||
|
Aged Brie, -7, 16
|
||||||
|
Elixir of the Mongoose, -4, 0
|
||||||
|
Sulfuras, Hand of Ragnaros, 0, 80
|
||||||
|
Sulfuras, Hand of Ragnaros, -1, 80
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, 6, 33
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, 1, 50
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, -4, 0
|
||||||
|
Conjured Mana Cake, -6, 0
|
||||||
|
|
||||||
|
-------- day 10 --------
|
||||||
|
name, sellIn, quality
|
||||||
|
+5 Dexterity Vest, 0, 10
|
||||||
|
Aged Brie, -8, 18
|
||||||
|
Elixir of the Mongoose, -5, 0
|
||||||
|
Sulfuras, Hand of Ragnaros, 0, 80
|
||||||
|
Sulfuras, Hand of Ragnaros, -1, 80
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, 5, 35
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, 0, 50
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, -5, 0
|
||||||
|
Conjured Mana Cake, -7, 0
|
||||||
|
|
||||||
|
-------- day 11 --------
|
||||||
|
name, sellIn, quality
|
||||||
|
+5 Dexterity Vest, -1, 8
|
||||||
|
Aged Brie, -9, 20
|
||||||
|
Elixir of the Mongoose, -6, 0
|
||||||
|
Sulfuras, Hand of Ragnaros, 0, 80
|
||||||
|
Sulfuras, Hand of Ragnaros, -1, 80
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, 4, 38
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, -1, 0
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, -6, 0
|
||||||
|
Conjured Mana Cake, -8, 0
|
||||||
|
|
||||||
|
-------- day 12 --------
|
||||||
|
name, sellIn, quality
|
||||||
|
+5 Dexterity Vest, -2, 6
|
||||||
|
Aged Brie, -10, 22
|
||||||
|
Elixir of the Mongoose, -7, 0
|
||||||
|
Sulfuras, Hand of Ragnaros, 0, 80
|
||||||
|
Sulfuras, Hand of Ragnaros, -1, 80
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, 3, 41
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, -2, 0
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, -7, 0
|
||||||
|
Conjured Mana Cake, -9, 0
|
||||||
|
|
||||||
|
-------- day 13 --------
|
||||||
|
name, sellIn, quality
|
||||||
|
+5 Dexterity Vest, -3, 4
|
||||||
|
Aged Brie, -11, 24
|
||||||
|
Elixir of the Mongoose, -8, 0
|
||||||
|
Sulfuras, Hand of Ragnaros, 0, 80
|
||||||
|
Sulfuras, Hand of Ragnaros, -1, 80
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, 2, 44
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, -3, 0
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, -8, 0
|
||||||
|
Conjured Mana Cake, -10, 0
|
||||||
|
|
||||||
|
-------- day 14 --------
|
||||||
|
name, sellIn, quality
|
||||||
|
+5 Dexterity Vest, -4, 2
|
||||||
|
Aged Brie, -12, 26
|
||||||
|
Elixir of the Mongoose, -9, 0
|
||||||
|
Sulfuras, Hand of Ragnaros, 0, 80
|
||||||
|
Sulfuras, Hand of Ragnaros, -1, 80
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, 1, 47
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, -4, 0
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, -9, 0
|
||||||
|
Conjured Mana Cake, -11, 0
|
||||||
|
|
||||||
|
-------- day 15 --------
|
||||||
|
name, sellIn, quality
|
||||||
|
+5 Dexterity Vest, -5, 0
|
||||||
|
Aged Brie, -13, 28
|
||||||
|
Elixir of the Mongoose, -10, 0
|
||||||
|
Sulfuras, Hand of Ragnaros, 0, 80
|
||||||
|
Sulfuras, Hand of Ragnaros, -1, 80
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, 0, 50
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, -5, 0
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, -10, 0
|
||||||
|
Conjured Mana Cake, -12, 0
|
||||||
|
|
||||||
|
-------- day 16 --------
|
||||||
|
name, sellIn, quality
|
||||||
|
+5 Dexterity Vest, -6, 0
|
||||||
|
Aged Brie, -14, 30
|
||||||
|
Elixir of the Mongoose, -11, 0
|
||||||
|
Sulfuras, Hand of Ragnaros, 0, 80
|
||||||
|
Sulfuras, Hand of Ragnaros, -1, 80
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, -1, 0
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, -6, 0
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, -11, 0
|
||||||
|
Conjured Mana Cake, -13, 0
|
||||||
|
|
||||||
|
-------- day 17 --------
|
||||||
|
name, sellIn, quality
|
||||||
|
+5 Dexterity Vest, -7, 0
|
||||||
|
Aged Brie, -15, 32
|
||||||
|
Elixir of the Mongoose, -12, 0
|
||||||
|
Sulfuras, Hand of Ragnaros, 0, 80
|
||||||
|
Sulfuras, Hand of Ragnaros, -1, 80
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, -2, 0
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, -7, 0
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, -12, 0
|
||||||
|
Conjured Mana Cake, -14, 0
|
||||||
|
|
||||||
|
-------- day 18 --------
|
||||||
|
name, sellIn, quality
|
||||||
|
+5 Dexterity Vest, -8, 0
|
||||||
|
Aged Brie, -16, 34
|
||||||
|
Elixir of the Mongoose, -13, 0
|
||||||
|
Sulfuras, Hand of Ragnaros, 0, 80
|
||||||
|
Sulfuras, Hand of Ragnaros, -1, 80
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, -3, 0
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, -8, 0
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, -13, 0
|
||||||
|
Conjured Mana Cake, -15, 0
|
||||||
|
|
||||||
|
-------- day 19 --------
|
||||||
|
name, sellIn, quality
|
||||||
|
+5 Dexterity Vest, -9, 0
|
||||||
|
Aged Brie, -17, 36
|
||||||
|
Elixir of the Mongoose, -14, 0
|
||||||
|
Sulfuras, Hand of Ragnaros, 0, 80
|
||||||
|
Sulfuras, Hand of Ragnaros, -1, 80
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, -4, 0
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, -9, 0
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, -14, 0
|
||||||
|
Conjured Mana Cake, -16, 0
|
||||||
|
|
||||||
|
-------- day 20 --------
|
||||||
|
name, sellIn, quality
|
||||||
|
+5 Dexterity Vest, -10, 0
|
||||||
|
Aged Brie, -18, 38
|
||||||
|
Elixir of the Mongoose, -15, 0
|
||||||
|
Sulfuras, Hand of Ragnaros, 0, 80
|
||||||
|
Sulfuras, Hand of Ragnaros, -1, 80
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, -5, 0
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, -10, 0
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, -15, 0
|
||||||
|
Conjured Mana Cake, -17, 0
|
||||||
|
|
||||||
|
-------- day 21 --------
|
||||||
|
name, sellIn, quality
|
||||||
|
+5 Dexterity Vest, -11, 0
|
||||||
|
Aged Brie, -19, 40
|
||||||
|
Elixir of the Mongoose, -16, 0
|
||||||
|
Sulfuras, Hand of Ragnaros, 0, 80
|
||||||
|
Sulfuras, Hand of Ragnaros, -1, 80
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, -6, 0
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, -11, 0
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, -16, 0
|
||||||
|
Conjured Mana Cake, -18, 0
|
||||||
|
|
||||||
|
-------- day 22 --------
|
||||||
|
name, sellIn, quality
|
||||||
|
+5 Dexterity Vest, -12, 0
|
||||||
|
Aged Brie, -20, 42
|
||||||
|
Elixir of the Mongoose, -17, 0
|
||||||
|
Sulfuras, Hand of Ragnaros, 0, 80
|
||||||
|
Sulfuras, Hand of Ragnaros, -1, 80
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, -7, 0
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, -12, 0
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, -17, 0
|
||||||
|
Conjured Mana Cake, -19, 0
|
||||||
|
|
||||||
|
-------- day 23 --------
|
||||||
|
name, sellIn, quality
|
||||||
|
+5 Dexterity Vest, -13, 0
|
||||||
|
Aged Brie, -21, 44
|
||||||
|
Elixir of the Mongoose, -18, 0
|
||||||
|
Sulfuras, Hand of Ragnaros, 0, 80
|
||||||
|
Sulfuras, Hand of Ragnaros, -1, 80
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, -8, 0
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, -13, 0
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, -18, 0
|
||||||
|
Conjured Mana Cake, -20, 0
|
||||||
|
|
||||||
|
-------- day 24 --------
|
||||||
|
name, sellIn, quality
|
||||||
|
+5 Dexterity Vest, -14, 0
|
||||||
|
Aged Brie, -22, 46
|
||||||
|
Elixir of the Mongoose, -19, 0
|
||||||
|
Sulfuras, Hand of Ragnaros, 0, 80
|
||||||
|
Sulfuras, Hand of Ragnaros, -1, 80
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, -9, 0
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, -14, 0
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, -19, 0
|
||||||
|
Conjured Mana Cake, -21, 0
|
||||||
|
|
||||||
|
-------- day 25 --------
|
||||||
|
name, sellIn, quality
|
||||||
|
+5 Dexterity Vest, -15, 0
|
||||||
|
Aged Brie, -23, 48
|
||||||
|
Elixir of the Mongoose, -20, 0
|
||||||
|
Sulfuras, Hand of Ragnaros, 0, 80
|
||||||
|
Sulfuras, Hand of Ragnaros, -1, 80
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, -10, 0
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, -15, 0
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, -20, 0
|
||||||
|
Conjured Mana Cake, -22, 0
|
||||||
|
|
||||||
|
-------- day 26 --------
|
||||||
|
name, sellIn, quality
|
||||||
|
+5 Dexterity Vest, -16, 0
|
||||||
|
Aged Brie, -24, 50
|
||||||
|
Elixir of the Mongoose, -21, 0
|
||||||
|
Sulfuras, Hand of Ragnaros, 0, 80
|
||||||
|
Sulfuras, Hand of Ragnaros, -1, 80
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, -11, 0
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, -16, 0
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, -21, 0
|
||||||
|
Conjured Mana Cake, -23, 0
|
||||||
|
|
||||||
|
-------- day 27 --------
|
||||||
|
name, sellIn, quality
|
||||||
|
+5 Dexterity Vest, -17, 0
|
||||||
|
Aged Brie, -25, 50
|
||||||
|
Elixir of the Mongoose, -22, 0
|
||||||
|
Sulfuras, Hand of Ragnaros, 0, 80
|
||||||
|
Sulfuras, Hand of Ragnaros, -1, 80
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, -12, 0
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, -17, 0
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, -22, 0
|
||||||
|
Conjured Mana Cake, -24, 0
|
||||||
|
|
||||||
|
-------- day 28 --------
|
||||||
|
name, sellIn, quality
|
||||||
|
+5 Dexterity Vest, -18, 0
|
||||||
|
Aged Brie, -26, 50
|
||||||
|
Elixir of the Mongoose, -23, 0
|
||||||
|
Sulfuras, Hand of Ragnaros, 0, 80
|
||||||
|
Sulfuras, Hand of Ragnaros, -1, 80
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, -13, 0
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, -18, 0
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, -23, 0
|
||||||
|
Conjured Mana Cake, -25, 0
|
||||||
|
|
||||||
|
-------- day 29 --------
|
||||||
|
name, sellIn, quality
|
||||||
|
+5 Dexterity Vest, -19, 0
|
||||||
|
Aged Brie, -27, 50
|
||||||
|
Elixir of the Mongoose, -24, 0
|
||||||
|
Sulfuras, Hand of Ragnaros, 0, 80
|
||||||
|
Sulfuras, Hand of Ragnaros, -1, 80
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, -14, 0
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, -19, 0
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, -24, 0
|
||||||
|
Conjured Mana Cake, -26, 0
|
||||||
|
|
||||||
|
-------- day 30 --------
|
||||||
|
name, sellIn, quality
|
||||||
|
+5 Dexterity Vest, -20, 0
|
||||||
|
Aged Brie, -28, 50
|
||||||
|
Elixir of the Mongoose, -25, 0
|
||||||
|
Sulfuras, Hand of Ragnaros, 0, 80
|
||||||
|
Sulfuras, Hand of Ragnaros, -1, 80
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, -15, 0
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, -20, 0
|
||||||
|
Backstage passes to a TAFKAL80ETC concert, -25, 0
|
||||||
|
Conjured Mana Cake, -27, 0
|
||||||
|
|
||||||
|
"
|
||||||
|
`;
|
||||||
Loading…
Reference in New Issue
Block a user