From 5bbbc93d808a23299e6da9a651730c1058c96f5c Mon Sep 17 00:00:00 2001 From: Juan Cruz Viotti Date: Thu, 20 Nov 2014 13:53:10 -0400 Subject: [PATCH] Implement helpers module with formatLongString() --- lib/helpers/helpers.coffee | 5 +++++ lib/helpers/helpers.spec.coffee | 35 +++++++++++++++++++++++++++++++++ 2 files changed, 40 insertions(+) create mode 100644 lib/helpers/helpers.coffee create mode 100644 lib/helpers/helpers.spec.coffee diff --git a/lib/helpers/helpers.coffee b/lib/helpers/helpers.coffee new file mode 100644 index 00000000..decab1eb --- /dev/null +++ b/lib/helpers/helpers.coffee @@ -0,0 +1,5 @@ +exports.formatLongString = (string, n) -> + return string if not n? + splitRegexp = new RegExp(".{1,#{n}}", 'g') + splittedString = string.match(splitRegexp) + return splittedString.join('\n') diff --git a/lib/helpers/helpers.spec.coffee b/lib/helpers/helpers.spec.coffee new file mode 100644 index 00000000..eea6a729 --- /dev/null +++ b/lib/helpers/helpers.spec.coffee @@ -0,0 +1,35 @@ +expect = require('chai').expect +_ = require('lodash') +helpers = require('./helpers') + +STRING = + numbers: '1234567812345678' + +describe 'Helpers:', -> + + describe '#formatLongString()', -> + + it 'should format a string', -> + result = helpers.formatLongString(STRING.numbers, 4) + expect(result).to.equal('1234\n5678\n1234\n5678') + + it 'should return the same string if n is null/undefined', -> + for value in [ undefined, null ] + result = helpers.formatLongString(STRING.numbers, value) + expect(result).to.equal(STRING.numbers) + + it 'should throw an error if input is not a string', -> + for value in [ + undefined + null + [] + {} + 123 + ] + fn = _.partial(helpers.formatLongString, value, 4) + expect(fn).to.throw + + it 'should return the same string if n > string.length', -> + stringLength = STRING.numbers.length + result = helpers.formatLongString(STRING.numbers, stringLength + 1) + expect(result).to.equal(STRING.numbers)