const TRANSITION_END = 'transitionend'
// Shoutout AngusCroll (https://goo.gl/pxwQGp)
-const toType = obj => ({}.toString.call(obj).match(/\s([a-z]+)/i)[1].toLowerCase())
+const toType = obj => {
+ if (obj === null || obj === undefined) {
+ return `${obj}`
+ }
+
+ return {}.toString.call(obj).match(/\s([a-z]+)/i)[1].toLowerCase()
+}
/**
* --------------------------------------------------------------------------
})
describe('typeCheckConfig', () => {
+ const namePlugin = 'collapse'
+
it('should check type of the config object', () => {
- const namePlugin = 'collapse'
const defaultType = {
toggle: 'boolean',
parent: '(string|element)'
Util.typeCheckConfig(namePlugin, config, defaultType)
}).toThrow(new Error('COLLAPSE: Option "parent" provided type "number" but expected type "(string|element)".'))
})
+
+ it('should return null stringified when null is passed', () => {
+ const defaultType = {
+ toggle: 'boolean',
+ parent: '(null|element)'
+ }
+ const config = {
+ toggle: true,
+ parent: null
+ }
+
+ Util.typeCheckConfig(namePlugin, config, defaultType)
+ expect().nothing()
+ })
+
+ it('should return undefined stringified when undefined is passed', () => {
+ const defaultType = {
+ toggle: 'boolean',
+ parent: '(undefined|element)'
+ }
+ const config = {
+ toggle: true,
+ parent: undefined
+ }
+
+ Util.typeCheckConfig(namePlugin, config, defaultType)
+ expect().nothing()
+ })
})
describe('makeArray', () => {