diff --git a/src/utils.js b/src/utils.js index 71c0f13..0c2124a 100644 --- a/src/utils.js +++ b/src/utils.js @@ -8,13 +8,14 @@ _.mixin(require('underscore.inflections')) // 'true' -> true // '1' -> 1 function toNative(value) { - if (value === 'true' || value === 'false') { - return value === 'true' - } else if (!isNaN(+value)) { - return +value - } else { - return value + if (typeof value === 'string') { + if (value === 'true' || value === 'false') { + return value === 'true' + } else if (!isNaN(+value)) { + return +value + } } + return value } // Creates incremental id. diff --git a/test/utils.js b/test/utils.js index 897662f..32b71f5 100644 --- a/test/utils.js +++ b/test/utils.js @@ -28,4 +28,19 @@ describe('utils', function() { }) }) + + describe('toNative', function() { + + it('should convert string to native type', function() { + + assert.strictEqual(utils.toNative('1'), 1) + assert.strictEqual(utils.toNative('true'), true) + + assert.strictEqual(utils.toNative('string'), 'string') + assert.strictEqual(utils.toNative(1), 1) + assert.strictEqual(utils.toNative(true), true) + + }) + + }) }) \ No newline at end of file