[Framework] Complete RequireJS configurator tests

Complete tests for the RequireJS configurator, used to
expose libraries beyond bundle boundaries (and, related,
to provide shims for non-AMD libraries.) WTD-568.
This commit is contained in:
Victor Woeltjen 2015-01-02 17:59:45 -08:00
parent 96aaea5e58
commit baca4ab4e6
2 changed files with 37 additions and 3 deletions

View File

@ -26,7 +26,7 @@ define(
// Adjust paths to point to libraries
if (configuration.paths) {
// Don't modify the actual bundle definition...
configuration = configuration.clone(configuration);
configuration = clone(configuration);
// ...replace values in a clone instead.
Object.keys(configuration.paths).forEach(function (path) {
configuration.paths[path] =
@ -47,6 +47,7 @@ define(
base[k][p] = next[k][p];
});
});
return base;
}
// Build a configuration object, to pass to requirejs.config,

View File

@ -1,8 +1,8 @@
/*global define,describe,it,expect,beforeEach,waitsFor,jasmine,runs*/
define(
["../../src/resolve/RequireConfigurator"],
function (RequireConfigurator) {
["../../src/resolve/RequireConfigurator", "../../src/load/Bundle"],
function (RequireConfigurator, Bundle) {
"use strict";
describe("The RequireJS configurator", function () {
@ -25,6 +25,39 @@ define(
// Should have invoked require.config
expect(mockRequire.config).toHaveBeenCalled();
});
it("assembles configurations from bundles", function () {
configurator.configure([
new Bundle("test/a", { configuration: {
paths: { a: "path/to/a", b: "path/to/b" }
} }),
new Bundle("test/b", { configuration: {
paths: { b: "path/to/b" },
shim: {
b: { "exports": "someExport" },
c: {}
}
} }),
new Bundle("test/c", { configuration: {
shim: {
c: { "exports": "someOtherExport" }
}
} })
]);
expect(mockRequire.config).toHaveBeenCalledWith({
baseUrl: "",
paths: {
a: "test/a/lib/path/to/a",
b: "test/b/lib/path/to/b"
},
shim: {
b: { "exports": "someExport" },
c: { "exports": "someOtherExport" }
}
});
});
});
}
);