UNPKG

@tiwarivikram/meanio

Version:

Extracted functionality for MEAN.io

92 lines (77 loc) 2.58 kB
(function () { 'use strict' /* jshint expr:true */ // Tests are not ready, bypassing the whole test return var mean = require('../..'), should = require('should') /* jshint -W030 */ describe('mean.js', function () { it('exports an object', function () { should.exist(mean) mean.should.be.an.Object }) var menus before(function () { menus = new mean.Menus() }) it('creates an empty menu array', function () { menus.get().should.be.an.Array.and.be.empty }) it('adds a menu', function () { menus.add({ title: 'test' }) menus.get().should.eql([{ title: 'test', name: 'test', icon: null, link: null, roles: ['anonymous'], submenus: [] }]) }) it('adds 2 menus', function () { menus.get().should.be.an.Array.and.have.length(1) // 1 anonymous menus.add({ title: 'auth', roles: ['authenticated'] }, { title: 'mocha', roles: ['mocha'] }) // since user is authenticated, the menu for anonymous wont be shown to him menus.get({ roles: ['authenticated'] }).should.be.an.Array.and.have.length(1) // authenticated menus.get({ roles: ['mocha'] }).should.be.an.Array.and.have.length(2) // authenticated and mocha }) // anonymous is anonymous, authenticated is authenticated ... If you need a submenu // item for everybody, add submenu item for role 'all' it('add menu item for ALL users', function () { menus.get().should.be.an.Array.and.have.length(1) // anonymous menus.add({ title: 'check_all', roles: ['all'] }) menus.get().should.be.an.Array.and.have.length(2) // anonymous and all menus.get({roles: ['mocha']}).should.be.an.Array.and.have.length(3) // authenticated, mocha and all menus.get({roles: ['authenticated']}).should.be.an.Array.and.have.length(2) // authenticated and all menus.add({ title: 'check_all2', roles: null }) menus.get().should.be.an.Array.and.have.length(3) // anonymous and all menus.get({roles: ['mocha']}).should.be.an.Array.and.have.length(4) // authenticated, mocha and all menus.get({roles: ['authenticated']}).should.be.an.Array.and.have.length(3) // authenticated and all }) xit('properly weight js footer menus', function (done) { mean.aggregated('js', 'footer', function (aggr) { aggr.should.be.empty done() }) }) }) })()