lfr-amd-loader
Version:
AMD Loader with support for combo URL and conditional loading
123 lines (98 loc) • 4.38 kB
JavaScript
var assert = require('chai').assert;
require('./fixture/common.js');
var config = require('./fixture/config.js');
var configParser = new global.ConfigParser(config);
describe('URLBuilder', function () {
it('should create URL for module with path', function () {
var urlBuilder = new global.URLBuilder(configParser);
var url = urlBuilder.build(['aui-core']);
assert.strictEqual(url.length, 1);
assert.strictEqual(url[0], 'http://localhost:3000/combo?/modules/aui-core.js');
});
it('should create URL for module with full path', function () {
var urlBuilder = new global.URLBuilder(configParser);
var url = urlBuilder.build(['aui-base']);
assert.strictEqual(url.length, 1);
assert.strictEqual(url[0], 'http://localhost:8080/demo/modules/aui-base.js');
});
it('should create url for module when combine set to false', function () {
var configParser = new global.ConfigParser({
'url': 'http://localhost:3000/modules',
'basePath': '/base',
'combine': false,
'modules': {
'aui-base': {
'dependencies': [],
'path': 'aui-base.js'
},
'aui-core.js': {
'dependencies': []
}
}
});
var urlBuilder = new global.URLBuilder(configParser);
var url = urlBuilder.build(['aui-base', 'aui-core.js']);
assert.strictEqual(url.length, 2);
assert.strictEqual(url[0], 'http://localhost:3000/modules/base/aui-base.js');
});
it('should create url for modules with external URLs', function () {
var configParser = new global.ConfigParser({
'url': 'http://localhost:3000/modules',
'basePath': '/base',
'modules': {
'https://code.jquery.com/ui/1.11.2/jquery-ui.min.js': {
'dependencies': []
},
'jquery-2.1.2': {
'dependencies': [],
'path': 'http://code.jquery.com/jquery-2.1.2.min.js'
},
'//code.jquery.com/jquery-1.11.2.min.js': {
'dependencies': []
},
'www.mydomain.com/crap.js': {
'dependencies': []
}
}
});
var urlBuilder = new global.URLBuilder(configParser);
var url = urlBuilder.build(['https://code.jquery.com/ui/1.11.2/jquery-ui.min.js', 'jquery-2.1.2', '//code.jquery.com/jquery-1.11.2.min.js', 'www.mydomain.com/crap.js']);
assert.strictEqual(url.length, 4);
assert.strictEqual(url[0], 'https://code.jquery.com/ui/1.11.2/jquery-ui.min.js');
assert.strictEqual(url[1], 'http://code.jquery.com/jquery-2.1.2.min.js');
assert.strictEqual(url[2], '//code.jquery.com/jquery-1.11.2.min.js');
assert.strictEqual(url[3], 'www.mydomain.com/crap.js');
});
it('should not replace parts of path', function () {
var configParser = new global.ConfigParser({
'url': 'http://localhost:3000/modules',
'basePath': '/base',
'paths': {
'jquery': 'http://code.jquery.com/jquery-2.1.3.min.js',
'aui': 'html/js'
},
'modules': {
'jquery': {
'dependencies': []
},
'aui': {
'dependencies': []
},
'aui/js/loader.js': {
'dependencies': []
},
'test/aui/js/aui/loader.js': {
'dependencies': []
}
}
});
var urlBuilder = new global.URLBuilder(configParser);
var url = urlBuilder.build(['jquery', 'aui', 'aui/js/loader.js', 'test/aui/js/aui/loader.js']);
assert.strictEqual(url.length, 4);
assert.strictEqual(url[0], 'http://code.jquery.com/jquery-2.1.3.min.js');
assert.strictEqual(url[1], 'http://localhost:3000/modules/base/html/js.js');
assert.strictEqual(url[2], 'http://localhost:3000/modules/base/html/js/js/loader.js');
assert.strictEqual(url[3], 'http://localhost:3000/modules/base/test/aui/js/aui/loader.js');
});
});
;