apiCustomElement.spec.ts 983 B

123456789101112131415161718192021222324252627282930313233343536
  1. import { toNumber } from '../src/apiCustomElement'
  2. describe('Custom Element', () => {
  3. describe('toNumber', () => {
  4. it('handles strings', () => {
  5. expect(toNumber('')).toBe('')
  6. expect(toNumber(null)).toBe('')
  7. expect(toNumber('Something else')).toBe('Something else')
  8. })
  9. it('numbers', () => {
  10. expect(toNumber('0')).toBe(0)
  11. expect(toNumber('1')).toBe(1)
  12. expect(toNumber('1.1')).toBe(1.1)
  13. expect(toNumber('123e-1')).toBe(12.3)
  14. expect(toNumber('Infinity')).toBe(Infinity)
  15. })
  16. it('NaN', () => {
  17. expect(toNumber('NaN')).toBeNaN()
  18. expect(toNumber('nan')).not.toBeNaN()
  19. })
  20. // all of these are handled by Number
  21. it('string non decimal bases', () => {
  22. expect(toNumber('0b0')).toBe(0)
  23. expect(toNumber('0b1')).toBe(1)
  24. expect(toNumber('0o3')).toBe(3)
  25. expect(toNumber('0o0')).toBe(0)
  26. expect(toNumber('0x0')).toBe(0)
  27. expect(toNumber('0xf')).toBe(15)
  28. })
  29. })
  30. })