You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

115 lines
2.9 KiB
JavaScript

var expect = require('expect')
var utils = require('../lib/utils')
var assign = utils.assign
var forEach = utils.forEach
var isArray = utils.isArray
var isFunction = utils.isFunction
var isRegExp = utils.isRegExp
var isString = utils.isString
var noop = utils.noop
function SomeClass (foo) {
this.foo = foo
}
SomeClass.prototype.bar = 'asdf'
describe('utils', function () {
it('→ exists', function () {
expect(utils).toExist()
})
describe('→ noop', function () {
it('→ is a function', function () {
expect(noop).toBeA(Function)
})
})
describe('→ isString', function () {
it('→ true for strings', function () {
expect(isString('is string')).toBe(true)
})
it('→ false for not strings', function () {
expect(isString(/is string/)).toBe(false)
})
})
describe('→ isRegExp', function () {
it('→ true for regex', function () {
expect(isRegExp(/some regex/)).toBe(true)
})
it('→ false for strings', function () {
expect(isRegExp('some string')).toBe(false)
})
})
describe('→ isArray', function () {
it('→ true for array', function () {
expect(isArray([])).toBe(true)
})
it('→ false for regex', function () {
expect(isArray(/some regex/)).toBe(false)
})
it('→ false for strings', function () {
expect(isArray('some string')).toBe(false)
})
})
describe('→ isFunction', function () {
it('→ true for function', function () {
expect(isFunction(function () {})).toBe(true)
})
it('→ false for array', function () {
expect(isFunction([])).toBe(false)
})
it('→ false for regex', function () {
expect(isFunction(/some regex/)).toBe(false)
})
it('→ false for strings', function () {
expect(isFunction('some string')).toBe(false)
})
})
describe('→ forEach', function () {
it('→ does not call properties on prototype', function () {
var count = 0
forEach(new SomeClass(123), function (key, value) {
count += 1
expect(key).toBe('foo')
expect(value).toBe(123)
})
expect(count).toEqual(1)
})
})
describe('→ assign', function () {
it('→ adds properties to dest', function () {
var dest = {}
var src = {foo: 123, bar: 'asdf'}
assign(dest, src)
expect(dest).toEqual({foo: 123, bar: 'asdf'})
})
it('→ overrides properties to dest', function () {
var dest = {foo: 456, bar: 'qwerty', blah: /foo/}
var src = {foo: 123, bar: 'asdf'}
assign(dest, src)
expect(dest).toEqual({foo: 123, bar: 'asdf', blah: /foo/})
})
it('→ does not overrides properties on prototype', function () {
var dest = {foo: 456, bar: 'qwerty', blah: /foo/}
assign(dest, new SomeClass(123))
expect(dest).toEqual({foo: 123, bar: 'qwerty', blah: /foo/})
})
})
})