mirror of https://github.com/ColorlibHQ/gentelella
105 lines
3.0 KiB
JavaScript
105 lines
3.0 KiB
JavaScript
require('should');
|
|
var support = require('./support');
|
|
var App = support.resolve();
|
|
var app;
|
|
|
|
describe('mergePartials', function() {
|
|
beforeEach(function() {
|
|
app = new App();
|
|
});
|
|
|
|
it('should merge multiple partials collections onto one collection:', function() {
|
|
var opts = { viewType: 'partial' };
|
|
app.create('foo', opts);
|
|
app.create('bar', opts);
|
|
app.create('baz', opts);
|
|
|
|
app.foo('a', {path: 'a', content: 'aaa'});
|
|
app.bar('b', {path: 'b', content: 'bbb'});
|
|
app.baz('c', {path: 'c', content: 'ccc'});
|
|
|
|
var actual = app.mergePartials();
|
|
actual.should.have.property('partials');
|
|
actual.partials.should.have.properties(['a', 'b', 'c']);
|
|
});
|
|
|
|
it('should keep partials collections on separaet collections:', function() {
|
|
var opts = { viewType: 'partial' };
|
|
app.create('foo', opts);
|
|
app.create('bar', opts);
|
|
app.create('baz', opts);
|
|
|
|
app.foo('a', {path: 'a', content: 'aaa'});
|
|
app.bar('b', {path: 'b', content: 'bbb'});
|
|
app.baz('c', {path: 'c', content: 'ccc'});
|
|
|
|
var actual = app.mergePartials({mergePartials: false});
|
|
actual.should.not.have.property('partials');
|
|
actual.should.eql({ foos: { a: 'aaa' }, bars: { b: 'bbb' }, bazs: { c: 'ccc' } });
|
|
});
|
|
|
|
it('should emit `mergePartials`:', function() {
|
|
var opts = { viewType: 'partial' };
|
|
app.create('foo', opts);
|
|
app.create('bar', opts);
|
|
app.create('baz', opts);
|
|
var arr = [];
|
|
|
|
app.on('onMerge', function(view) {
|
|
arr.push(view.content);
|
|
});
|
|
|
|
app.foo('a', {path: 'a', content: 'aaa'});
|
|
app.bar('b', {path: 'b', content: 'bbb'});
|
|
app.baz('c', {path: 'c', content: 'ccc'});
|
|
|
|
var actual = app.mergePartials({mergePartials: false});
|
|
actual.should.not.have.property('partials');
|
|
actual.should.eql({ foos: { a: 'aaa' }, bars: { b: 'bbb' }, bazs: { c: 'ccc' } });
|
|
arr.should.eql(['aaa', 'bbb', 'ccc']);
|
|
});
|
|
|
|
it('should handle `onMerge` middleware:', function() {
|
|
var opts = { viewType: 'partial' };
|
|
app.create('foo', opts);
|
|
app.create('bar', opts);
|
|
app.create('baz', opts);
|
|
|
|
app.onMerge(/./, function(view, next) {
|
|
view.content += ' onMerge';
|
|
next();
|
|
});
|
|
|
|
app.foo('a', {path: 'a', content: 'aaa'});
|
|
app.bar('b', {path: 'b', content: 'bbb'});
|
|
app.baz('c', {path: 'c', content: 'ccc'});
|
|
|
|
var actual = app.mergePartials({mergePartials: false});
|
|
actual.should.eql({
|
|
foos: {a: 'aaa onMerge'},
|
|
bars: {b: 'bbb onMerge'},
|
|
bazs: {c: 'ccc onMerge'}
|
|
});
|
|
});
|
|
|
|
it('should skip views with `nomerge=true`:', function() {
|
|
var opts = { viewType: 'partial' };
|
|
|
|
app.create('foo', opts);
|
|
app.create('bar', opts);
|
|
app.create('baz', opts);
|
|
|
|
app.onMerge(/[ab]/, function(view, next) {
|
|
view.options.nomerge = true;
|
|
next();
|
|
});
|
|
|
|
app.foo('a', {path: 'a', content: 'aaa'});
|
|
app.bar('b', {path: 'b', content: 'bbb'});
|
|
app.baz('c', {path: 'c', content: 'ccc'});
|
|
|
|
var actual = app.mergePartials({mergePartials: false});
|
|
actual.should.eql({ bazs: { c: 'ccc' } });
|
|
});
|
|
});
|