diff --git a/src/_Classics_/caeser_cipher/caesar-cipher.test.js b/src/_Classics_/caeser_cipher/caesar-cipher.test.js new file mode 100644 index 00000000..3b4564a2 --- /dev/null +++ b/src/_Classics_/caeser_cipher/caesar-cipher.test.js @@ -0,0 +1,33 @@ +const { caesarCipher } = require('.'); + +describe('Caesar Cipher test suit', () => { + it('Should raise an error when missing second arg', () => { + expect(() => { caesarCipher('hello'); }).toThrowError(); + }); + + it('Should raise an error when second arg is not a num', () => { + expect(() => { caesarCipher('hello', 'yes'); }).toThrowError(); + }); + + it('Should return a encrypted word with positive num', () => { + expect(caesarCipher('character', 10)).toBe('mrkbkmdob'); + }); + + it('Should return the same word/sentence introduced if num = 0', () => { + expect(caesarCipher('character', 0)).toBe('character'); + }); + + it('Should return a encrypted word with negative num', () => { + expect(caesarCipher('character', '-10')).toBe('sxqhqsjuh'); + }); + + it('Should reuturn a encrypted sentence with spaces', () => { + expect(caesarCipher('another one bite the dust', 15)) + .toBe('pcdiwtg dct qxit iwt sjhi'); + }); + + it('Should return a encrypted sentence with preserved upper case letters', () => { + expect(caesarCipher('Another one Bite the Dust', 15)) + .toBe('Pcdiwtg dct Qxit iwt Sjhi'); + }); +}); diff --git a/src/_Classics_/caeser_cipher/index.js b/src/_Classics_/caeser_cipher/index.js index 8851bf03..507eb92e 100644 --- a/src/_Classics_/caeser_cipher/index.js +++ b/src/_Classics_/caeser_cipher/index.js @@ -21,7 +21,7 @@ function caesarCipher(str, num) { alphabetsMap[alphabets[index]] = index; } - for (let index in lowerCaseString) { + for (const index in lowerCaseString) { // get the current character const currentCharacter = lowerCaseString[index]; @@ -59,3 +59,7 @@ function caesarCipher(str, num) { } return result; } + +module.exports = { + caesarCipher, +};