UNPKG

pp-parachute

Version:
89 lines (78 loc) 3.52 kB
var ParachuteBase = require('../../application/parachute_base'); var Bundler = require('../../bundlers/bundler'); describe('parachute base', function () { beforeEach(function () { this.chute = new ParachuteBase('test'); }); it('should inherit properly', function () { var parent = new ParachuteBase('parent'); parent.setOutputDirectory('dir'); this.chute.inheritFrom(parent); expect(this.chute.parent).toBe(parent); expect(this.chute.getOutputDirectory()).toEqual('dir'); }); it('should emit and handle events properly', function (done) { this.chute.handle('event', function(one, two, three) { expect(one).toBe(1); expect(two).toBe(2); expect(three).toBe(3); done(); }); this.chute.emit('event', 1, 2, 3); }); it('should have bundlers', function () { var bundler1 = new Bundler(); var bundler2 = new Bundler(); this.chute.useBundler(bundler1, 'mountpath'); this.chute.useBundler(bundler2, 'mountpath2'); expect(Object.keys(this.chute.bundlers).length).toBe(2); expect(this.chute.bundlers[bundler1.bundlerId].bundler).toBe(bundler1); expect(this.chute.bundlers[bundler2.bundlerId].bundler).toBe(bundler2); }); //todo fix this test it('should return all active bundlers with no parent', function () { var bundler1 = new Bundler(); var bundler2 = new Bundler(); this.chute.useBundler(bundler1, 'mountpath'); this.chute.useBundler(bundler2, 'mountpath2'); var bundlers = this.chute.getActiveBundlers(); expect(Object.keys(bundlers).length).toBe(2); expect(bundlers[bundler1.bundlerId]).toBe(bundler1); expect(bundlers[bundler2.bundlerId]).toBe(bundler2); }); it('should return all active bundlers with a parent', function () { var bundler1 = new Bundler(); var bundler2 = new Bundler(); var parent = new ParachuteBase('parent'); parent.useBundler(bundler1, 'path'); this.chute.useBundler(bundler2, 'mountpath2'); this.chute.inheritFrom(parent); var bundlers = this.chute.getActiveBundlers(); expect(Object.keys(bundlers).length).toBe(2); expect(bundlers[bundler1.bundlerId]).toBe(bundler1); expect(bundlers[bundler2.bundlerId]).toBe(bundler2); }); it('should skip bundlers properly', function () { var bundler1 = new Bundler(); var bundler2 = new Bundler(); var parent = new ParachuteBase('parent'); parent.useBundler(bundler1, 'path'); this.chute.useBundler(bundler2, 'mountpath2'); this.chute.inheritFrom(parent); this.chute.skipBundler(bundler1); var bundlers = this.chute.getActiveBundlers(); expect(Object.keys(bundlers).length).toBe(1); expect(bundlers[bundler2.bundlerId]).toBe(bundler2); }); it('should inherit bundlers from its parent chain', function() { var bundler1 = new Bundler(); var bundler2 = new Bundler(); var parent = new ParachuteBase('parent'); parent.setOutputDirectory('dir'); parent.useBundler(bundler1, 'mount'); this.chute.inheritFrom(parent); this.chute.useBundler(bundler2, 'mount'); expect(this.chute.getBundlerById(bundler1.bundlerId).bundler).toBe(bundler1); expect(this.chute.getBundlerById(bundler2.bundlerId).bundler).toBe(bundler2); }); });