strings.js
module.exports = {,
dashSeparated: function(string) {
return string.replace(/([A-Z]|[0-9]+)/g, function(match) {
return '-' + match.toLowerCase();
});
}
};
strings.tests.js
describe ('strings module @focus', function(){
it('should replace capitalized letters with lower-case letter and dash', function() {
var camel = 'sampleString';
var expected = 'sample-string';
var dashed = strings.dashSeparated(camel);
assert.equal(dashed, expected);
});
it('should replace capitalized letters with lower-case letters prefixed by dashes', function() {
var camel = 'sampleStringWithDashes';
var expected = 'sample-string-with-dashes';
var dashed = strings.dashSeparated(camel);
assert.equal(dashed, expected);
});
it('should insert dash in front of numbers', function() {
var camel = 'sample1';
var expected = 'sample-1';
var dashed = strings.dashSeparated(camel);
assert.equal(dashed, expected);
});
it('should insert dash in front of numbers but keep numbers grouped', function() {
var camel = 'sample123';
var expected = 'sample-123';
var dashed = strings.dashSeparated(camel);
assert.equal(dashed, expected);
});
it('should insert dash & lower-case capitalized letters and insert dash before number groups', function() {
var camel = 'sample123Dashed456TEST7a';
var expected = 'sample-123-dashed-456-t-e-s-t-7a';
var dashed = strings.dashSeparated(camel)
assert.equal(dashed, expected);
});
});