summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorAndrej Mihajlov <and@codeispoetry.ru>2017-06-22 14:10:42 +0300
committerAndrej Mihajlov <and@codeispoetry.ru>2017-06-22 14:10:42 +0300
commitcb247f4878d3bb7926381eac2da005bea0036130 (patch)
treecba0dc372e90bf4fe584347fd4e9b175ee6a12d8
parent6add95b14cc72edd0c90a6b4f9b02f39105f2941 (diff)
parent7432e0bc60d6462e65ef34fac3669a66fbe75538 (diff)
downloadmullvadvpn-cb247f4878d3bb7926381eac2da005bea0036130.tar.xz
mullvadvpn-cb247f4878d3bb7926381eac2da005bea0036130.zip
Merge branch 'feature/drop-enum'
-rw-r--r--app/lib/enum.js82
-rw-r--r--test/enum.spec.js40
2 files changed, 0 insertions, 122 deletions
diff --git a/app/lib/enum.js b/app/lib/enum.js
deleted file mode 100644
index f436c741d0..0000000000
--- a/app/lib/enum.js
+++ /dev/null
@@ -1,82 +0,0 @@
-/**
- * Enum
- * @exports
- * @class Enum
- */
-export default class Enum {
-
- /**
- * Creates an instance of EnumBase.
- *
- * @param {...string|object} ... - enum keys
- * @memberOf Enum
- */
- constructor() {
- const items = [...arguments];
- let allKeys = [];
- let reverseMap = new Map();
-
- for(const item of items) {
- if(typeof(item) === 'string') {
- Object.defineProperty(this, item, {
- enumerable: true,
- value: item,
- writable: false
- });
- allKeys.push(item);
- reverseMap.set(item, item);
- } else if(typeof(item) === 'object') {
- for(const key of Object.keys(item)) {
- Object.defineProperty(this, key, {
- enumerable: true,
- value: item[key],
- writable: false
- });
- allKeys.push(key);
- reverseMap.set(item[key], key);
- }
- } else {
- throw new Error('Unsupported argument type: ' + typeof(item));
- }
- }
-
- Object.defineProperty(this, 'allKeys', {
- enumerable: false,
- value: allKeys,
- writable: false
- });
-
- Object.defineProperty(this, 'reverseMap', {
- enumerable: false,
- value: reverseMap,
- writable: false
- });
-
- Object.freeze(this);
- }
-
- /**
- * Check if key is registered in this enum
- *
- * @param {string} key
- * @returns {bool}
- *
- * @memberOf Enum
- */
- isValid(key) {
- return this.allKeys.includes(key);
- }
-
- /**
- * Return key for value
- *
- * @param {any} value
- * @returns {any|undefined} returns undefined if key is not found
- *
- * @memberOf Enum
- */
- reverse(value) {
- return this.reverseMap.get(value);
- }
-}
-
diff --git a/test/enum.spec.js b/test/enum.spec.js
deleted file mode 100644
index 013fbc4e0f..0000000000
--- a/test/enum.spec.js
+++ /dev/null
@@ -1,40 +0,0 @@
-import { expect } from 'chai';
-import Enum from '../app/lib/enum';
-
-describe('enum', () => {
- it('should be able to compare values', () => {
- const e = new Enum('NORTH', 'SOUTH', 'WEST', 'EAST');
- expect(e.NORTH).to.be.equal('NORTH');
- });
-
- it('should not be able to modify enum', () => {
- const e = new Enum('NORTH', 'SOUTH', 'WEST', 'EAST');
- expect(() => e.ANYWHERE = 'ANYWHERE').to.throw();
- });
-
- it('should be able to validate enum keys', () => {
- const e = new 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;
- });
-
- it('should receive correct keys from Object.keys', () => {
- const keys = ['NORTH', 'SOUTH', 'WEST', 'EAST'];
- const e = new Enum(...keys);
- expect(Object.keys(e)).to.be.deep.equal(keys);
- });
-
- it('should do reverse lookup', () => {
- const keys = { NORTH: 0, SOUTH: 1, WEST: 2, EAST: 3 };
- const e = new Enum(keys);
- expect(e.reverse(2)).to.be.equal('WEST');
- });
-
- it('should return undefined on reverse lookup failure', () => {
- const keys = { NORTH: 0, SOUTH: 1, WEST: 2, EAST: 3 };
- const e = new Enum(keys);
- expect(e.reverse(1337)).to.be.undefined;
- });
-});