181d834fe6b59d75e34bbc5f2af710b6a46938d0
[aai/esr-gui.git] /
1 var assert = require('assert'),
2   require_optional = require('../');
3
4 describe('Require Optional', function() {
5   describe('top level require', function() {
6     it('should correctly require co library', function() {
7       var promise = require_optional('es6-promise');
8       assert.ok(promise);
9     });
10
11     it('should fail to require es6-promise library', function() {
12       try {
13         require_optional('co');
14       } catch(e) {
15         assert.equal('OPTIONAL_MODULE_NOT_FOUND', e.code);
16         return;
17       }
18
19       assert.ok(false);
20     });
21
22     it('should ignore optional library not defined', function() {
23       assert.equal(undefined, require_optional('es6-promise2'));
24     });
25   });
26
27   describe('internal module file require', function() {
28     it('should correctly require co library', function() {
29       var Long = require_optional('bson/lib/bson/long.js');
30       assert.ok(Long);
31     });
32   });
33
34   describe('top level resolve', function() {
35     it('should correctly use exists method', function() {
36       assert.equal(false, require_optional.exists('co'));
37       assert.equal(true, require_optional.exists('es6-promise'));
38       assert.equal(true, require_optional.exists('bson/lib/bson/long.js'));
39       assert.equal(false, require_optional.exists('es6-promise2'));
40     });
41   });
42 });