Files

91 lines
2.6 KiB
JavaScript

var Immutable = require('immutable');
var Config = require('../config');
describe('Config', function() {
var config = Config.createWithValues({
hello: {
world: 1,
test: 'Hello',
isFalse: false
}
});
describe('getValue', function() {
it('must return value as immutable', function() {
var value = config.getValue('hello');
expect(Immutable.Map.isMap(value)).toBeTruthy();
});
it('must return deep value', function() {
var value = config.getValue('hello.world');
expect(value).toBe(1);
});
it('must return default value if non existant', function() {
var value = config.getValue('hello.nonExistant', 'defaultValue');
expect(value).toBe('defaultValue');
});
it('must not return default value for falsy values', function() {
var value = config.getValue('hello.isFalse', 'defaultValue');
expect(value).toBe(false);
});
});
describe('setValue', function() {
it('must set value as immutable', function() {
var testConfig = config.setValue('hello', {
'cool': 1
});
var value = testConfig.getValue('hello');
expect(Immutable.Map.isMap(value)).toBeTruthy();
expect(value.size).toBe(1);
expect(value.has('cool')).toBeTruthy();
});
it('must set deep value', function() {
var testConfig = config.setValue('hello.world', 2);
var hello = testConfig.getValue('hello');
var world = testConfig.getValue('hello.world');
expect(Immutable.Map.isMap(hello)).toBeTruthy();
expect(hello.size).toBe(3);
expect(world).toBe(2);
});
});
describe('toReducedVersion', function() {
it('must only return diffs for simple values', function() {
var _config = Config.createWithValues({
gitbook: '3.0.0'
});
var reducedVersion = _config.toReducedVersion();
expect(reducedVersion.toJS()).toEqual({
gitbook: '3.0.0'
});
});
it('must only return diffs for deep values', function() {
var _config = Config.createWithValues({
structure: {
readme: 'intro.md'
}
});
var reducedVersion = _config.toReducedVersion();
expect(reducedVersion.toJS()).toEqual({
structure: {
readme: 'intro.md'
}
});
});
});
});