File: chat-websocket/node_modules/socket.io/node_modules/socket.io-client/node_modules/ws/node_modules/options/test/options.test.js

Recommend this page to a friend!
  Classes of Igor Escobar   Terminal Crossword   chat-websocket/node_modules/socket.io/node_modules/socket.io-client/node_modules/ws/node_modules/options/test/options.test.js   Download  
File: chat-websocket/node_modules/socket.io/node_modules/socket.io-client/node_modules/ws/node_modules/options/test/options.test.js
Role: Example script
Content type: text/plain
Description: Example script
Class: Terminal Crossword
Generate a crosswords board on a text console
Author: By
Last change:
Date: 2 years ago
Size: 4,089 bytes
 

Contents

Class file image Download
var Options = require('options') , expect = require('expect.js'); describe('Options', function() { describe('#ctor', function() { it('initializes options', function() { var option = new Options({a: true, b: false}); expect(option.value.a).to.equal(true); expect(option.value.b).to.equal(false); }) }) describe('#merge', function() { it('merges options from another object', function() { var option = new Options({a: true, b: false}); option.merge({b: true}); expect(option.value.a).to.equal(true); expect(option.value.b).to.equal(true); }) it('does nothing when arguments are undefined', function() { var option = new Options({a: true, b: false}); option.merge(undefined); expect(option.value.a).to.equal(true); expect(option.value.b).to.equal(false); }) it('cannot set values that werent already there', function() { var option = new Options({a: true, b: false}); option.merge({c: true}); expect(typeof option.value.c).to.equal('undefined'); }) it('can require certain options to be defined', function() { var option = new Options({a: true, b: false, c: 3}); var caughtException = false; try { option.merge({}, ['a', 'b', 'c']); } catch (e) { caughtException = e.toString() == 'Error: options a, b and c must be defined'; } expect(caughtException).to.equal(true); }) it('can require certain options to be defined, when options are undefined', function() { var option = new Options({a: true, b: false, c: 3}); var caughtException = false; try { option.merge(undefined, ['a', 'b', 'c']); } catch (e) { caughtException = e.toString() == 'Error: options a, b and c must be defined'; } expect(caughtException).to.equal(true); }) it('returns "this"', function() { var option = new Options({a: true, b: false, c: 3}); expect(option.merge()).to.equal(option); }) }) describe('#copy', function() { it('returns a new object with the indicated options', function() { var option = new Options({a: true, b: false, c: 3}); var obj = option.copy(['a', 'c']); expect(obj.a).to.equal(true); expect(obj.c).to.equal(3); expect(typeof obj.b).to.equal('undefined'); }) }) describe('#value', function() { it('can be enumerated', function() { var option = new Options({a: true, b: false}); expect(Object.keys(option.value).length).to.equal(2); }) it('can not be used to set values', function() { var option = new Options({a: true, b: false}); option.value.b = true; expect(option.value.b).to.equal(false); }) it('can not be used to add values', function() { var option = new Options({a: true, b: false}); option.value.c = 3; expect(typeof option.value.c).to.equal('undefined'); }) }) describe('#read', function() { it('reads and merges config from a file', function() { var option = new Options({a: true, b: true}); option.read(__dirname + '/fixtures/test.conf'); expect(option.value.a).to.equal('foobar'); expect(option.value.b).to.equal(false); }) it('asynchronously reads and merges config from a file when a callback is passed', function(done) { var option = new Options({a: true, b: true}); option.read(__dirname + '/fixtures/test.conf', function(error) { expect(option.value.a).to.equal('foobar'); expect(option.value.b).to.equal(false); done(); }); }) }) describe('#reset', function() { it('resets options to defaults', function() { var option = new Options({a: true, b: false}); option.merge({b: true}); expect(option.value.b).to.equal(true); option.reset(); expect(option.value.b).to.equal(false); }) }) it('is immutable', function() { var option = new Options({a: true, b: false}); option.foo = 2; expect(typeof option.foo).to.equal('undefined'); }) })