bootstrap-vue
Version:
With more than 85 components, over 45 available plugins, several directives, and 1000+ icons, BootstrapVue provides one of the most comprehensive implementations of the Bootstrap v4 component and grid system available for Vue.js v2.6, complete with extens
73 lines (69 loc) • 2.68 kB
JavaScript
import { toFixed, toFloat, toInteger } from './number'
describe('utils/number', () => {
it('toInteger works', async () => {
expect(toInteger(1)).toBe(1)
expect(toInteger('1')).toBe(1)
expect(toInteger(1e5)).toBe(100000)
expect(toInteger('1e5')).toBe(1)
expect(toInteger('256 foobar')).toBe(256)
expect(toInteger('foo 256bar')).toBe(NaN)
expect(toInteger({})).toBe(NaN)
expect(toInteger([])).toBe(NaN)
expect(toInteger(new Date())).toBe(NaN)
expect(toInteger(null)).toBe(NaN)
expect(toInteger(undefined)).toBe(NaN)
expect(toInteger(null, 0)).toBe(0)
expect(toInteger(undefined, -1)).toBe(-1)
})
it('toFloat works', async () => {
expect(toFloat(1)).toBe(1)
expect(toFloat('1')).toBe(1)
expect(toFloat(1.23)).toBe(1.23)
expect(toFloat('1.23')).toBe(1.23)
expect(toFloat(1e5)).toBe(100000)
// `parseFloat()` works differently than `parseInt()` in this case
expect(toFloat('1e5')).toBe(100000)
expect(toFloat('256 foobar')).toBe(256)
expect(toFloat('256.78 foobar')).toBe(256.78)
expect(toFloat('foo 256bar')).toBe(NaN)
expect(toFloat({})).toBe(NaN)
expect(toFloat([])).toBe(NaN)
expect(toFloat(new Date())).toBe(NaN)
expect(toFloat(null)).toBe(NaN)
expect(toFloat(undefined)).toBe(NaN)
expect(toFloat(null, 0)).toBe(0)
expect(toFloat(undefined, -1)).toBe(-1)
})
it('toFixed works', async () => {
expect(toFixed(1)).toBe('1')
expect(toFixed(1.23)).toBe('1')
expect(toFixed(1.78)).toBe('2')
expect(toFixed('1')).toBe('1')
expect(toFixed('1.23')).toBe('1')
expect(toFixed('1.78')).toBe('2')
expect(toFixed(1, 2)).toBe('1.00')
expect(toFixed('1', 2)).toBe('1.00')
expect(toFixed('1 foo', 2)).toBe('1.00')
expect(toFixed('foo 1 bar', 2)).toBe('NaN')
expect(toFixed('1.23', 4)).toBe('1.2300')
expect(toFixed('1.78', 2)).toBe('1.78')
expect(toFixed({})).toBe('NaN')
expect(toFixed([])).toBe('NaN')
expect(toFixed(new Date())).toBe('NaN')
expect(toFixed(null)).toBe('NaN')
expect(toFixed(undefined)).toBe('NaN')
expect(toFixed({}, 3)).toBe('NaN')
expect(toFixed([], 2)).toBe('NaN')
expect(toFixed(new Date(), 1)).toBe('NaN')
expect(toFixed(null, 4)).toBe('NaN')
expect(toFixed(undefined, 3)).toBe('NaN')
expect(toFixed(1, '2')).toBe('1.00')
expect(toFixed('1', '2')).toBe('1.00')
expect(toFixed('1 foo', '2')).toBe('1.00')
expect(toFixed('foo 1 bar', '2')).toBe('NaN')
expect(toFixed(1, 'foo')).toBe('1')
expect(toFixed('1', undefined)).toBe('1')
expect(toFixed('1 foo', null)).toBe('1')
expect(toFixed('foo 1 bar', {})).toBe('NaN')
})
})