-import { toNumber } from '../src/apiCustomElement'
+import { parseNumber } from '../src/apiCustomElement'
describe('Custom Element', () => {
- describe('toNumber', () => {
+ describe('parseNumber', () => {
it('handles strings', () => {
- expect(toNumber('')).toBe('')
- expect(toNumber(null)).toBe('')
- expect(toNumber('Something else')).toBe('Something else')
+ expect(parseNumber('')).toBe('')
+ expect(parseNumber(null)).toBe('')
+ expect(parseNumber('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)
+ expect(parseNumber('0')).toBe(0)
+ expect(parseNumber('1')).toBe(1)
+ expect(parseNumber('1.1')).toBe(1.1)
+ expect(parseNumber('123e-1')).toBe(12.3)
+ expect(parseNumber('Infinity')).toBe(Infinity)
})
it('NaN', () => {
- expect(toNumber('NaN')).toBeNaN()
- expect(toNumber('nan')).not.toBeNaN()
+ expect(parseNumber('NaN')).toBeNaN()
+ expect(parseNumber('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(parseNumber('0b0')).toBe(0)
+ expect(parseNumber('0b1')).toBe(1)
- expect(toNumber('0o3')).toBe(3)
- expect(toNumber('0o0')).toBe(0)
+ expect(parseNumber('0o3')).toBe(3)
+ expect(parseNumber('0o0')).toBe(0)
- expect(toNumber('0x0')).toBe(0)
- expect(toNumber('0xf')).toBe(15)
+ expect(parseNumber('0x0')).toBe(0)
+ expect(parseNumber('0xf')).toBe(15)
})
})
})
}
protected _setAttr(key: string) {
- this._setProp(camelize(key), toNumber(this.getAttribute(key)), false)
+ this._setProp(camelize(key), parseNumber(this.getAttribute(key)), false)
}
/**
}
}
-export function toNumber(value: string | null): number | string {
+export function parseNumber(value: string | null): number | string {
// for Number('') and Number(null) as they both become 0
if (!value) return ''
const casted = Number(value)