mirror of https://github.com/ColorlibHQ/gentelella
95 lines
3.0 KiB
JavaScript
95 lines
3.0 KiB
JavaScript
require('mocha');
|
|
require('should');
|
|
var path = require('path');
|
|
var assert = require('assert');
|
|
var support = require('./support');
|
|
var App = support.resolve();
|
|
var app;
|
|
|
|
describe('app.data', function() {
|
|
beforeEach(function() {
|
|
app = new App();
|
|
});
|
|
|
|
it('should set a key-value pair on cache.data:', function() {
|
|
app.data('a', 'b');
|
|
assert(app.cache.data.a === 'b');
|
|
});
|
|
|
|
it('should set an object on cache.data:', function() {
|
|
app.data({c: 'd'});
|
|
assert(app.cache.data.c === 'd');
|
|
});
|
|
|
|
it('should load data from a file onto cache.data:', function() {
|
|
app.data('test/fixtures/data/a.json');
|
|
assert(app.cache.data.a.one.a === 'aaa');
|
|
});
|
|
|
|
it('should load a glob of data onto cache.data:', function() {
|
|
app.data('test/fixtures/data/*.json');
|
|
assert(app.cache.data.a.one.a === 'aaa');
|
|
assert(app.cache.data.b.two.b === 'bbb');
|
|
assert(app.cache.data.c.three.c === 'ccc');
|
|
});
|
|
|
|
it('should use `namespace` defined on global opts:', function() {
|
|
app.option('namespace', function(key) {
|
|
return 'prefix_' + path.basename(key, path.extname(key));
|
|
});
|
|
app.data('test/fixtures/data/*.json');
|
|
assert(app.cache.data.prefix_a.one.a === 'aaa');
|
|
assert(app.cache.data.prefix_b.two.b === 'bbb');
|
|
assert(app.cache.data.prefix_c.three.c === 'ccc');
|
|
});
|
|
|
|
it('should use `namespace` defined on data opts:', function() {
|
|
app.data('test/fixtures/data/*.json', {
|
|
namespace: function(key) {
|
|
return 'prefix_' + path.basename(key, path.extname(key));
|
|
}
|
|
});
|
|
assert(app.cache.data.prefix_a.one.a === 'aaa');
|
|
assert(app.cache.data.prefix_b.two.b === 'bbb');
|
|
assert(app.cache.data.prefix_c.three.c === 'ccc');
|
|
});
|
|
|
|
it('should use `renameKey` defined on data opts:', function() {
|
|
app.data('test/fixtures/data/*.json', {
|
|
renameKey: function(key) {
|
|
return 'prefix_' + path.basename(key, path.extname(key));
|
|
}
|
|
});
|
|
assert(app.cache.data.prefix_a.one.a === 'aaa');
|
|
assert(app.cache.data.prefix_b.two.b === 'bbb');
|
|
assert(app.cache.data.prefix_c.three.c === 'ccc');
|
|
});
|
|
|
|
it('should extend `cache.data`', function() {
|
|
app.data({a: 'aaa', b: 'bbb', c: 'ccc'});
|
|
app.data({x: 'xxx', y: 'yyy', z: 'zzz'});
|
|
assert(app.cache.data.a === 'aaa');
|
|
assert(app.cache.data.b === 'bbb');
|
|
assert(app.cache.data.c === 'ccc');
|
|
assert(app.cache.data.x === 'xxx');
|
|
assert(app.cache.data.y === 'yyy');
|
|
assert(app.cache.data.z === 'zzz');
|
|
});
|
|
|
|
it('should extend the `cache.data` object when the first param is a string.', function() {
|
|
app.data('foo', {x: 'xxx', y: 'yyy', z: 'zzz'});
|
|
app.data('bar', {a: 'aaa', b: 'bbb', c: 'ccc'});
|
|
assert(app.cache.data.foo.x === 'xxx');
|
|
assert(app.cache.data.bar.a === 'aaa');
|
|
});
|
|
|
|
it('should be chainable.', function() {
|
|
app
|
|
.data({x: 'xxx', y: 'yyy', z: 'zzz'})
|
|
.data({a: 'aaa', b: 'bbb', c: 'ccc'});
|
|
|
|
assert(app.cache.data.x === 'xxx');
|
|
assert(app.cache.data.a === 'aaa');
|
|
});
|
|
});
|