JSFiddle - React, Tailwind, and code Playground

by phsiao2000

HTML

<script src="https://cdnjs.cloudflare.com/ajax/libs/jasmine/2.4.1/jasmine.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jasmine/2.4.1/jasmine-html.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jasmine/2.4.1/boot.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jasmine/2.4.1/jasmine.min.css">

JavaScript

function isNumeric (num) { return !isNaN(parseFloat(num)) && !isNaN(Number(num)); }


describe('isNumeric', function () {
  describe('should return true', function () {
  	it('when given an integer', function () {
    	expect(isNumeric(123)).toBe(true)
    })

    it('when given a floating number', function () {
    	expect(isNumeric(1.23)).toBe(true)
    })

    it('when given an exponential number', function () {
      expect(isNumeric(1E23)).toBe(true)
    })
    
    it('when given a hex number', function () {
    	expect(isNumeric(0x1)).toBe(true)
    })

    it('when given a string that\'s just an integer', function () {
      expect(isNumeric('123')).toBe(true)
    })

    it('when given a string that\'s just a floating number', function () {
    	expect(isNumeric('1.23')).toBe(true)
    })

    it('when given a string that\'s just an exponential number', function () {
    	expect(isNumeric('1E23')).toBe(true)
    })
    
    it('when given an hex string', function () {
    	expect(isNumeric('0x1')).toBe(true)
    })
  })

  describe('should return false', function () {
  	it('when given NaN', function () {
    	expect(isNumeric(NaN)).toBe(false)
    })
  
  	it('when given a string that\'s not just a number', function () {
    	expect(isNumeric('123abc')).toBe(false)
    })

    it('when given an empty string', function () {
    	expect(isNumeric('')).toBe(false)
    })

    var subjects = [[], {}, null, function () {}, undefined, true, false]
    subjects.forEach(function (value) {
    	it('when given ' + ({}).toString.call(value), function () {
      	expect(isNumeric(value)).toBe(false)
      })
    })
  })
})