UNPKG

pp-parachute

Version:
66 lines (57 loc) 2.6 kB
var manager = require('../../shared/manager'); var path = require('path'); describe('Application Manager', function () { var pathToTest1 = path.resolve(__dirname + '/../test_apps/test1/parachute.js'); var pathToTest2 = path.resolve(__dirname + '/../test_apps/test2/parachute.js'); var app1 = require(pathToTest1); var app2 = require(pathToTest2); beforeEach(function() { manager.clear(); }); it('should load an application', function() { var app = require(pathToTest1); expect(function() { manager.loadApplication('test1', pathToTest1); }).not.toThrow(); expect(manager.getApplication('test1')).toBe(app); }); it('should set an environment based on a url', function() { var url = '/foo/bar/1'; //test app 1 env1 manager.loadApplication('test1', pathToTest1); manager.setEnvironmentForUrl(url); expect(manager.getCurrentEnvironment()).toBe(app1.environments['env1']); }); it('should return an asset root for the current environment', function() { var url = '/foo/bar/1'; //test app 1 env1 manager.loadApplication('test1', pathToTest1); manager.setEnvironmentForUrl(url); expect(manager.getAssetRoot()).toBe(app1.environments['env1'].getAssetRoot()); manager.clear(); expect(manager.getAssetRoot()).toBe(null); }); it('should return the current environment', function() { var url = '/foo/bar/1'; //test app 1 env1 manager.loadApplication('test1', pathToTest1); manager.setEnvironmentForUrl(url); expect(manager.getCurrentEnvironment()).toBe(app1.environments['env1']); manager.clear(); expect(manager.getCurrentEnvironment()).toBe(null); }); it('should require the application being loaded to exist', function() { expect(function() { manager.loadApplication('not_here', '/foobar/is/not/here.js'); }).toThrow(); }); it('should get view data', function() { var file = '/path/to/view.jade'; var url = '/foo/bar/1'; //test app 1 env1 manager.loadApplication('test1', pathToTest1); manager.setEnvironmentForUrl(url); manager.getCurrentEnvironment().setViewFile(file); var data = manager.getViewData(); expect(data.viewFile).toBe('view'); expect(data.viewDirectory.lastIndexOf('/path/to')).toBe(data.viewDirectory.length - ('/path/to'.length)); expect(data.viewEngine).toBe('jade'); }); //todo test all fns called form the command line });