|
|
@@ -9,6 +9,7 @@ import {
|
|
|
renderSlot,
|
|
|
VueElement
|
|
|
} from '../src'
|
|
|
+import { toNumber } from '../src/apiCustomElement'
|
|
|
|
|
|
describe('defineCustomElement', () => {
|
|
|
const container = document.createElement('div')
|
|
|
@@ -394,3 +395,36 @@ describe('defineCustomElement', () => {
|
|
|
})
|
|
|
})
|
|
|
})
|
|
|
+
|
|
|
+describe('toNumber', () => {
|
|
|
+ it('handles strings', () => {
|
|
|
+ expect(toNumber('')).toBe('')
|
|
|
+ expect(toNumber(null)).toBe('')
|
|
|
+ expect(toNumber('Something else')).toBe('Something else')
|
|
|
+ })
|
|
|
+
|
|
|
+ it('numbers', () => {
|
|
|
+ expect(toNumber('0')).toBe(0)
|
|
|
+ expect(toNumber('1')).toBe(1)
|
|
|
+ expect(toNumber('1.1')).toBe(1.1)
|
|
|
+ expect(toNumber('123e-1')).toBe(12.3)
|
|
|
+ expect(toNumber('Infinity')).toBe(Infinity)
|
|
|
+ })
|
|
|
+
|
|
|
+ it('NaN', () => {
|
|
|
+ expect(toNumber('NaN')).toBeNaN()
|
|
|
+ expect(toNumber('nan')).not.toBeNaN()
|
|
|
+ })
|
|
|
+
|
|
|
+ // all of these are handled by Number
|
|
|
+ it('string non decimal bases', () => {
|
|
|
+ expect(toNumber('0b0')).toBe(0)
|
|
|
+ expect(toNumber('0b1')).toBe(1)
|
|
|
+
|
|
|
+ expect(toNumber('0o3')).toBe(3)
|
|
|
+ expect(toNumber('0o0')).toBe(0)
|
|
|
+
|
|
|
+ expect(toNumber('0x0')).toBe(0)
|
|
|
+ expect(toNumber('0xf')).toBe(15)
|
|
|
+ })
|
|
|
+})
|