]> git.ipfire.org Git - thirdparty/vuejs/core.git/commitdiff
refactor: move test
authorEduardo San Martin Morote <posva13@gmail.com>
Tue, 24 Aug 2021 08:17:49 +0000 (10:17 +0200)
committerEduardo San Martin Morote <posva13@gmail.com>
Tue, 24 Aug 2021 08:19:48 +0000 (10:19 +0200)
packages/runtime-dom/__tests__/customElement.spec.ts

index 042ac68a7afba2e5611df2c30a2367e0c2dfea84..2bd0ada28ae0c8250acc32e4b9ff1f88d432fec5 100644 (file)
@@ -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)
+  })
+})