it('ignore if not found', function () { var tpl = '{{#each( l)}}{{title}}{{/each}}'; var data = { x: [ { title: 5 } ] }; var render = new XTemplate(tpl).render(data); expect(render).to.equal(''); });
describe('Status', function () { it('getStatusFromFile should be a function', function () { expect(typeof Status.getStatusFromFile).to.equal('function'); }); it('checkFileExist should be a function', function () { expect(typeof Status.checkFileExist).to.equal('function'); }); it('setStatus should be a function', function () { expect(typeof Status.setStatus).to.equal('function'); }); });
it('support expression for variable', function () { var tpl = '{{n+3*4/2}}'; var data = { n: 1 }; expect(new XTemplate(tpl).render(data)).to.equal('7'); });
it('bone.save() should UPDATE when primaryKey is defined and saved before', async function() { const post = await Post.create({ id: 1, title: 'New Post', createdAt: new Date(2010, 9, 11) }); const updatedAtWas = post.updatedAt; post.title = 'Skeleton King'; await post.save(); const foundPost = await Post.findOne({ title: 'Skeleton King' }); expect(foundPost.id).to.equal(post.id); expect(foundPost.updatedAt.getTime()).to.be.above(updatedAtWas.getTime()); });
it('Bone.join().count()', async function() { const query = Post.find({ title: ['Archangel Tyrael', 'New Post'] }); const count = await query.count(); const posts = await query.order('title').with('attachment'); expect(posts.length).to.equal(count); expect(posts[0]).to.be.a(Post); expect(posts[0].title).to.equal('Archangel Tyrael'); expect(posts[0].attachment).to.be(null); expect(posts[1].attachment).to.be.an(Attachment); expect(posts[1].attachment.postId).to.equal(posts[1].id); });
it('.find $eq', async function() { const posts = await Post.find({ title: { $eq: 'New Post' } }); expect(posts.length).to.be.above(0); expect(posts[0].title).to.equal('New Post'); });
it('support array as render parameter', function () { var tpl = '!{{#each (this)}}{{this}}-{{/each}}!'; var data = [1, 2]; var render = new XTemplate(tpl, data).render(data); expect(render).to.equal('!1-2-!'); });
it('support expression for variable in string', function () { var tpl = '{{n+" is good"}}'; var data = { n: 'xtemplate' }; expect(new XTemplate(tpl).render(data)).to.equal('xtemplate is good'); });
it('this will prevent up resolve',function(){ var tpl = '{{#each (data)}}{{this.title}}{{/each}}'; var data = { title:'2', data: [{title2:'1'}] }; var render = new XTemplate(tpl).render(data); expect(render).to.equal(''); });
it('support access parent scope', function () { var tpl = '{{#each (data)}}{{r}}{{xindex}}:{{this}}{{/each}}'; var data = { r: '!', data: { x: 1, y: 2 } }; var render = new XTemplate(tpl).render(data); expect(render).to.equal('!x:1!y:2'); });
it('support nest array', function () { var tpl = '{{#each (data)}}{{this[0]}}{{this[1]}}{{this}}{{/each}}'; var data = { data: [ [1, 2] ] }; var render = new XTemplate(tpl).render(data); expect(render).to.equal('121,2'); });
it('differentiate negative number and minus', function () { var tpl = '{{n-1}}'; var data = { n: 10 }; expect(new XTemplate(tpl).render(data)).to.equal('9'); });