summaryrefslogtreecommitdiffhomepage
path: root/test/lib/enum.spec.js
blob: 20de191d08f2114316208e46685931fb8916cd08 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
import { expect } from 'chai';
import Enum from '../../app/lib/enum';

describe('lib', () => {

  describe('enum', () => {
    it('should be able to compare values', () => {
      const e = Enum('NORTH', 'SOUTH', 'WEST', 'EAST');
      expect(e.NORTH).to.be.equal('NORTH');
    });

    it('should not be able to modify enum', () => {
      let e = Enum('NORTH', 'SOUTH', 'WEST', 'EAST');
      expect(() => e.ANYWHERE = 'ANYWHERE').to.throw();
    });

    it('should be able to validate enum keys', () => {
      let e = Enum('NORTH', 'SOUTH', 'WEST', 'EAST');
      expect(e.isValid('SOUTH')).to.be.true;
      expect(e.isValid('ANYWHERE')).to.be.false;
      expect(e.isValid()).to.be.false;
      expect(e.isValid(null)).to.be.false;
    });
  });

});