不要怂,就是干,撸起袖子干!

Commit 82e6ae8c by Daniel Durante

Translated Utils to Buster from Jasmine.

1 parent 13b2ab73
var Utils = require('../lib/utils') var buster = require("buster")
, Utils = require('../lib/utils')
, Helpers = require('./buster-helpers')
describe('Utils', function() { buster.spec.expose()
buster.testRunner.timeout = 1000
describe(Helpers.getTestDialectTeaser("Utils"), function() {
describe('removeCommentsFromFunctionString', function() { describe('removeCommentsFromFunctionString', function() {
it("removes line comments at the start of a line", function() { it("removes line comments at the start of a line", function(done) {
var functionWithLineComments = function() { var functionWithLineComments = function() {
// noot noot // noot noot
} }
var result = Utils.removeCommentsFromFunctionString(functionWithLineComments.toString()) var result = Utils.removeCommentsFromFunctionString(functionWithLineComments.toString())
expect(result).toNotMatch(/.*noot.*/) expect(result).not.toMatch(/.*noot.*/)
done()
}) })
it("removes lines comments in the middle of a line", function() { it("removes lines comments in the middle of a line", function(done) {
var functionWithLineComments = function() { var functionWithLineComments = function() {
alert(1) // noot noot alert(1) // noot noot
} }
var result = Utils.removeCommentsFromFunctionString(functionWithLineComments.toString()) var result = Utils.removeCommentsFromFunctionString(functionWithLineComments.toString())
expect(result).toNotMatch(/.*noot.*/) expect(result).not.toMatch(/.*noot.*/)
done()
}) })
it("removes range comments", function() { it("removes range comments", function(done) {
var s = function() { var s = function() {
alert(1) /* alert(1) /*
noot noot noot noot
...@@ -31,97 +38,117 @@ describe('Utils', function() { ...@@ -31,97 +38,117 @@ describe('Utils', function() {
}.toString() }.toString()
var result = Utils.removeCommentsFromFunctionString(s) var result = Utils.removeCommentsFromFunctionString(s)
expect(result).toNotMatch(/.*noot.*/) expect(result).not.toMatch(/.*noot.*/)
expect(result).toNotMatch(/.*foo.*/) expect(result).not.toMatch(/.*foo.*/)
expect(result).toMatch(/.*alert\(2\).*/) expect(result).toMatch(/.*alert\(2\).*/)
done()
}) })
}) })
describe('argsArePrimaryKeys', function() { describe('argsArePrimaryKeys', function() {
it("doesn't detect primary keys if primareyKeys and values have different lengths", function() { it("doesn't detect primary keys if primareyKeys and values have different lengths", function(done) {
expect(Utils.argsArePrimaryKeys([1,2,3], [1])).toBeFalsy() expect(Utils.argsArePrimaryKeys([1,2,3], [1])).toBeFalsy()
done()
}) })
it("doesn't detect primary keys if primary keys are hashes or arrays", function() { it("doesn't detect primary keys if primary keys are hashes or arrays", function(done) {
expect(Utils.argsArePrimaryKeys([[]], [1])).toBeFalsy() expect(Utils.argsArePrimaryKeys([[]], [1])).toBeFalsy()
done()
}) })
it('detects primary keys if length is correct and data types are matching', function() { it('detects primary keys if length is correct and data types are matching', function(done) {
expect(Utils.argsArePrimaryKeys([1,2,3], ["INTEGER", "INTEGER", "INTEGER"])).toBeTruthy() expect(Utils.argsArePrimaryKeys([1,2,3], ["INTEGER", "INTEGER", "INTEGER"])).toBeTruthy()
done()
}) })
it("detects primary keys if primary keys are dates and lengths are matching", function() { it("detects primary keys if primary keys are dates and lengths are matching", function(done) {
expect(Utils.argsArePrimaryKeys([new Date()], ['foo'])).toBeTruthy() expect(Utils.argsArePrimaryKeys([new Date()], ['foo'])).toBeTruthy()
done()
}) })
}) })
describe('underscore', function() { describe('underscore', function() {
describe('underscoredIf', function() { describe('underscoredIf', function() {
it('is defined', function() { it('is defined', function(done) {
expect(Utils._.underscoredIf).toBeDefined() expect(Utils._.underscoredIf).toBeDefined()
done()
}) })
it('underscores if second param is true', function() { it('underscores if second param is true', function(done) {
expect(Utils._.underscoredIf('fooBar', true)).toEqual('foo_bar') expect(Utils._.underscoredIf('fooBar', true)).toEqual('foo_bar')
done()
}) })
it("doesn't underscore if second param is false", function() { it("doesn't underscore if second param is false", function(done) {
expect(Utils._.underscoredIf('fooBar', false)).toEqual('fooBar') expect(Utils._.underscoredIf('fooBar', false)).toEqual('fooBar')
done()
}) })
}) })
describe('camelizeIf', function() { describe('camelizeIf', function() {
it('is defined', function() { it('is defined', function(done) {
expect(Utils._.camelizeIf).toBeDefined() expect(Utils._.camelizeIf).toBeDefined()
done()
}) })
it('camelizes if second param is true', function() { it('camelizes if second param is true', function(done) {
expect(Utils._.camelizeIf('foo_bar', true)).toEqual('fooBar') expect(Utils._.camelizeIf('foo_bar', true)).toEqual('fooBar')
done()
}) })
it("doesn't camelize if second param is false", function() { it("doesn't camelize if second param is false", function(done) {
expect(Utils._.underscoredIf('fooBar', true)).toEqual('foo_bar') expect(Utils._.underscoredIf('fooBar', true)).toEqual('foo_bar')
done()
}) })
}) })
}) })
describe('isHash', function() { describe('isHash', function() {
it('doesn\'t match arrays', function() { it('doesn\'t match arrays', function(done) {
expect(Utils.isHash([])).toBeFalsy(); expect(Utils.isHash([])).toBeFalsy()
}); done()
it('doesn\'t match null', function() { })
expect(Utils.isHash(null)).toBeFalsy();
}); it('doesn\'t match null', function(done) {
it('matches plain objects', function() { expect(Utils.isHash(null)).toBeFalsy()
var values = { done()
'name': { })
'first': 'Foo',
'last': 'Bar' it('matches plain objects', function(done) {
}
};
expect(Utils.isHash(values)).toBeTruthy();
});
it('matches plain objects with length property/key', function() {
var values = { var values = {
'name': { 'name': {
'first': 'Foo', 'first': 'Foo',
'last': 'Bar' 'last': 'Bar'
}, }
'length': 1 }
}; expect(Utils.isHash(values)).toBeTruthy()
expect(Utils.isHash(values)).toBeTruthy(); done()
}); })
});
it('matches plain objects with length property/key', function(done) {
var values = {
'name': {
'first': 'Foo',
'last': 'Bar'
},
'length': 1
}
expect(Utils.isHash(values)).toBeTruthy()
done()
})
})
describe('format', function() { describe('format', function() {
it('should format where clause correctly when the value is truthy', function() { it('should format where clause correctly when the value is truthy', function(done) {
var where = ['foo = ?', 1]; var where = ['foo = ?', 1]
expect(Utils.format(where)).toEqual('foo = 1'); expect(Utils.format(where)).toEqual('foo = 1')
}); done()
})
it('should format where clause correctly when the value is falsy', function() {
var where = ['foo = ?', 0]; it('should format where clause correctly when the value is falsy', function(done) {
expect(Utils.format(where)).toEqual('foo = 0'); var where = ['foo = ?', 0]
}); expect(Utils.format(where)).toEqual('foo = 0')
}); done()
})
})
}) })
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!