|
9 | 9 | renderSlot,
|
10 | 10 | VueElement
|
11 | 11 | } from '../src'
|
| 12 | +import { toNumber } from '../src/apiCustomElement' |
12 | 13 |
|
13 | 14 | describe('defineCustomElement', () => {
|
14 | 15 | const container = document.createElement('div')
|
@@ -394,3 +395,36 @@ describe('defineCustomElement', () => {
|
394 | 395 | })
|
395 | 396 | })
|
396 | 397 | })
|
| 398 | + |
| 399 | +describe('toNumber', () => { |
| 400 | + it('handles strings', () => { |
| 401 | + expect(toNumber('')).toBe('') |
| 402 | + expect(toNumber(null)).toBe('') |
| 403 | + expect(toNumber('Something else')).toBe('Something else') |
| 404 | + }) |
| 405 | + |
| 406 | + it('numbers', () => { |
| 407 | + expect(toNumber('0')).toBe(0) |
| 408 | + expect(toNumber('1')).toBe(1) |
| 409 | + expect(toNumber('1.1')).toBe(1.1) |
| 410 | + expect(toNumber('123e-1')).toBe(12.3) |
| 411 | + expect(toNumber('Infinity')).toBe(Infinity) |
| 412 | + }) |
| 413 | + |
| 414 | + it('NaN', () => { |
| 415 | + expect(toNumber('NaN')).toBeNaN() |
| 416 | + expect(toNumber('nan')).not.toBeNaN() |
| 417 | + }) |
| 418 | + |
| 419 | + // all of these are handled by Number |
| 420 | + it('string non decimal bases', () => { |
| 421 | + expect(toNumber('0b0')).toBe(0) |
| 422 | + expect(toNumber('0b1')).toBe(1) |
| 423 | + |
| 424 | + expect(toNumber('0o3')).toBe(3) |
| 425 | + expect(toNumber('0o0')).toBe(0) |
| 426 | + |
| 427 | + expect(toNumber('0x0')).toBe(0) |
| 428 | + expect(toNumber('0xf')).toBe(15) |
| 429 | + }) |
| 430 | +}) |
0 commit comments