From: Eduardo San Martin Morote Date: Tue, 24 Aug 2021 08:17:49 +0000 (+0200) Subject: refactor: move test X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=2dcaf04e917f0cd3e0cfe10f3a168edfc2155d6a;p=thirdparty%2Fvuejs%2Fcore.git refactor: move test --- diff --git a/packages/runtime-dom/__tests__/customElement.spec.ts b/packages/runtime-dom/__tests__/customElement.spec.ts index 042ac68a7a..2bd0ada28a 100644 --- a/packages/runtime-dom/__tests__/customElement.spec.ts +++ b/packages/runtime-dom/__tests__/customElement.spec.ts @@ -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) + }) +})