diff --git a/examples/typescript/ts-stock_management-01_base/src/FlowerStock.ts b/examples/typescript/ts-stock_management-01_base/src/FlowerStock.ts index 32de4ee1..d3353de1 100644 --- a/examples/typescript/ts-stock_management-01_base/src/FlowerStock.ts +++ b/examples/typescript/ts-stock_management-01_base/src/FlowerStock.ts @@ -31,7 +31,7 @@ export class FlowerStock extends AggregateRoot { const flowerId = this.flowers.shift() - if (currentStock >= 50 && this.flowers.length < 50) { + if (this.hasStock(currentStock)) { this.record(new LowStock('low flower stock')) } @@ -47,7 +47,7 @@ export class FlowerStock extends AggregateRoot { const flowerIds: Array = this.flowers.splice(0, amount) - if (currentStock >= 50 && this.flowers.length < 50) { + if (this.hasStock(currentStock)) { this.record(new LowStock(`low flower stock produced by high demand: ${amount}`)) } @@ -59,8 +59,12 @@ export class FlowerStock extends AggregateRoot { this.flowers = this.flowers.filter(flowerId => !deadFlowers.includes(flowerId)) - if (currentStock >= 50 && this.flowers.length < 50) { + if (this.hasStock(currentStock)) { this.record(new LowStock(`low flower stock produced by ${deadFlowers.length} dead flowers`)) } } + + private hasStock(currentStock: number): boolean { + return currentStock >= 50 && this.flowers.length < 50; + } } \ No newline at end of file diff --git a/examples/typescript/ts-stock_management-01_base/tests/FlowerStock.test.ts b/examples/typescript/ts-stock_management-01_base/tests/FlowerStock.test.ts index aaa31297..0bd3f613 100644 --- a/examples/typescript/ts-stock_management-01_base/tests/FlowerStock.test.ts +++ b/examples/typescript/ts-stock_management-01_base/tests/FlowerStock.test.ts @@ -3,6 +3,7 @@ import { LowStock } from "../src/LowStock" import { NotEnoughStock } from "../src/NotEnoughStock" import { OutOfStock } from "../src/OutOfStock" +const MIN_STOCK_LEVEL = 50; describe('flower stock management', () => { it('should add a flower to the stock', () => { @@ -34,7 +35,7 @@ describe('flower stock management', () => { }) it('should reach low stock when getting a single flower from a stock of 50', () => { - const stockFlowerIds = makeFlowerIds(50) + const stockFlowerIds = makeFlowerIds(MIN_STOCK_LEVEL) const stock = new FlowerStock(stockFlowerIds) stock.get() @@ -46,7 +47,7 @@ describe('flower stock management', () => { }) it('should not reach low stock when getting a single flower from a stock greater than 50', () => { - const flowerIds = makeFlowerIds(51) + const flowerIds = makeFlowerIds(MIN_STOCK_LEVEL + 1) const stock = new FlowerStock(flowerIds) stock.get() @@ -71,10 +72,9 @@ describe('flower stock management', () => { }) it('should reach low stock when getting multiple flowers and the limit of 50 is exceeded', () => { - const lowStockLevel = 50 const unitsToLowStock = 5 const unitsToGetFromTheStock = 6 - const totalStock = lowStockLevel + unitsToLowStock + const totalStock = MIN_STOCK_LEVEL + unitsToLowStock const stockFlowerIds = makeFlowerIds(totalStock) const stock = new FlowerStock(stockFlowerIds) @@ -87,10 +87,9 @@ describe('flower stock management', () => { }) it('should not reach low stock when getting multiple flowers and the limit of 50 is not exceeded', () => { - const lowStockLimit = 50 const unitsToLowStock = 5 const unitsToGetFromTheStock = 5 - const totalStock = lowStockLimit + unitsToLowStock + const totalStock = MIN_STOCK_LEVEL + unitsToLowStock const flowerIds = makeFlowerIds(totalStock) const stock = new FlowerStock(flowerIds) @@ -119,10 +118,9 @@ describe('flower stock management', () => { it('should reach low stock when removing dead flowers and the limit of 50 is exceeded', () => { - const lowStockLevel = 50 const unitsToLowStock = 5 const totalDeadFlowers = 6 - const totalStock = lowStockLevel + unitsToLowStock + const totalStock = MIN_STOCK_LEVEL + unitsToLowStock const stockFlowerIds = makeFlowerIds(totalStock) const stock = new FlowerStock(stockFlowerIds) @@ -136,10 +134,9 @@ describe('flower stock management', () => { }) it('should not reach low stock when removing flowers and the limit of 50 is not exceeded', () => { - const lowStockLimit = 50 const unitsToLowStock = 5 const totalDeadFlowers = 5 - const totalStock = lowStockLimit + unitsToLowStock + const totalStock = MIN_STOCK_LEVEL + unitsToLowStock const flowerIds = makeFlowerIds(totalStock) const stock = new FlowerStock(flowerIds)