From 54cb2d268b9eb0c6afa7d30c76995d07563729ec Mon Sep 17 00:00:00 2001 From: n1073645 Date: Mon, 9 Mar 2020 09:37:34 +0000 Subject: [PATCH] Luhn checksum tests --- src/core/operations/LuhnChecksum.mjs | 6 ++++++ tests/operations/tests/LuhnChecksum.mjs | 24 +++++++++++++++++++++++- 2 files changed, 29 insertions(+), 1 deletion(-) diff --git a/src/core/operations/LuhnChecksum.mjs b/src/core/operations/LuhnChecksum.mjs index e6d5fe2b..d9aff649 100644 --- a/src/core/operations/LuhnChecksum.mjs +++ b/src/core/operations/LuhnChecksum.mjs @@ -64,9 +64,15 @@ class LuhnChecksum extends Operation { * @returns {string} */ run(input, args) { + + if (!(input)) return "0"; + const checkSum = this.checksum(input).toString(); + let checkDigit = this.checksum(input+"0"); + checkDigit = (checkDigit === 0 ? 0 : (10-checkDigit)).toString(); + return "Checksum: " + checkSum + "\n\nCheckdigit: " + checkDigit + "\n\nLuhn Validated String: "+ input + checkDigit; } diff --git a/tests/operations/tests/LuhnChecksum.mjs b/tests/operations/tests/LuhnChecksum.mjs index 28b17854..c5c4c6b7 100644 --- a/tests/operations/tests/LuhnChecksum.mjs +++ b/tests/operations/tests/LuhnChecksum.mjs @@ -11,7 +11,29 @@ TestRegister.addTests([ { name: "Luhn Checksum on standard data", input: "35641709012469", - expectedOutput: "7", + expectedOutput: "Checksum: 7\n\nCheckdigit: 0\n\nLuhn Validated String: 356417090124690", + recipeConfig: [ + { + op: "Luhn Checksum", + args: [] + }, + ], + }, + { + name: "Luhn Checksum on standard data 2", + input: "896101950123440000", + expectedOutput: "Checksum: 5\n\nCheckdigit: 1\n\nLuhn Validated String: 8961019501234400001", + recipeConfig: [ + { + op: "Luhn Checksum", + args: [] + }, + ], + }, + { + name: "Luhn Checksum on standard data 3", + input: "35726908971331", + expectedOutput: "Checksum: 6\n\nCheckdigit: 7\n\nLuhn Validated String: 357269089713317", recipeConfig: [ { op: "Luhn Checksum",