From 1a8c9a073f10d4152d526e4586bdb409b60e1e93 Mon Sep 17 00:00:00 2001 From: Dan Holmes Date: Thu, 3 Dec 2020 17:00:28 +0000 Subject: [PATCH] Create module for standard item --- js-jasmine/src/aged_brie_update.js | 8 +++++++- js-jasmine/src/backstage_pass_update.js | 8 +++++++- js-jasmine/src/shop.js | 14 +++++++++----- js-jasmine/src/standard_update.js | 23 +++++++++++++++++++++++ js-jasmine/src/sulfuras_update.js | 8 +++++++- 5 files changed, 53 insertions(+), 8 deletions(-) create mode 100644 js-jasmine/src/standard_update.js diff --git a/js-jasmine/src/aged_brie_update.js b/js-jasmine/src/aged_brie_update.js index ea3c765b..ca72858a 100644 --- a/js-jasmine/src/aged_brie_update.js +++ b/js-jasmine/src/aged_brie_update.js @@ -1,3 +1,9 @@ +function updateQuality(item) { + if (is(item)) { + item.quality += getQualityChange(item); + } +} + function getQualityChange(item) { if (item.sellIn <= 0) { return 2; @@ -10,4 +16,4 @@ function is(item) { return item.name.toLowerCase().match(/aged brie/); }; -module.exports = { is, getQualityChange }; \ No newline at end of file +module.exports = { updateQuality, is }; \ No newline at end of file diff --git a/js-jasmine/src/backstage_pass_update.js b/js-jasmine/src/backstage_pass_update.js index 74bc1fdc..4dfe036b 100644 --- a/js-jasmine/src/backstage_pass_update.js +++ b/js-jasmine/src/backstage_pass_update.js @@ -1,3 +1,9 @@ +function updateQuality(item) { + if (is(item)) { + item.quality += getQualityChange(item); + } +} + function getQualityChange(item) { if (item.sellIn <= 0) { return -item.quality; @@ -14,4 +20,4 @@ function is(item) { return item.name.toLowerCase().match(/backstage pass/); }; -module.exports = { is, getQualityChange }; \ No newline at end of file +module.exports = { updateQuality, is }; \ No newline at end of file diff --git a/js-jasmine/src/shop.js b/js-jasmine/src/shop.js index 6b0d0730..830630d2 100644 --- a/js-jasmine/src/shop.js +++ b/js-jasmine/src/shop.js @@ -1,5 +1,6 @@ -var backstage_pass = require('./backstage_pass_update.js') -var aged_brie = require('./aged_brie_update.js') +var standardItem = require('./standard_update.js') +var backstagePass = require('./backstage_pass_update.js') +var agedBrie = require('./aged_brie_update.js') var sulfuras = require('./sulfuras_update.js') class Shop { @@ -23,12 +24,15 @@ class Shop { } _updateItemQuality(item) { - item.quality += this._getQualityChange(item); + standardItem.updateQuality(item); + backstagePass.updateQuality(item); + agedBrie.updateQuality(item); + sulfuras.updateQuality(item); } _getQualityChange(item) { - if (backstage_pass.is(item)) { - return backstage_pass.getQualityChange(item); + if (backstagePass.is(item)) { + return 0; } else if (aged_brie.is(item)) { return aged_brie.getQualityChange(item); } else if (sulfuras.is(item)) { diff --git a/js-jasmine/src/standard_update.js b/js-jasmine/src/standard_update.js new file mode 100644 index 00000000..b4ca1b8c --- /dev/null +++ b/js-jasmine/src/standard_update.js @@ -0,0 +1,23 @@ +var backstagePass = require('./backstage_pass_update.js') +var agedBrie = require('./aged_brie_update.js') +var sulfuras = require('./sulfuras_update.js') + +function updateQuality(item) { + if (is(item)) { + item.quality += getQualityChange(item); + } +} + +function getQualityChange(item) { + if (item.sellIn <= 0) { + return -2; + } else { + return -1; + } +} + +function is(item) { + return !(backstagePass.is(item) || agedBrie.is(item) || sulfuras.is(item)) +}; + +module.exports = { updateQuality }; \ No newline at end of file diff --git a/js-jasmine/src/sulfuras_update.js b/js-jasmine/src/sulfuras_update.js index 55e89b8a..675a051c 100644 --- a/js-jasmine/src/sulfuras_update.js +++ b/js-jasmine/src/sulfuras_update.js @@ -1,3 +1,9 @@ +function updateQuality(item) { + if (is(item)) { + item.quality += getQualityChange(item); + } +} + function getQualityChange(item) { return 0; } @@ -6,4 +12,4 @@ function is(item) { return item.name.toLowerCase().match(/sulfuras/); }; -module.exports = { is, getQualityChange }; \ No newline at end of file +module.exports = { updateQuality, is }; \ No newline at end of file