diff --git a/platform/framework/src/resolve/RequireConfigurator.js b/platform/framework/src/resolve/RequireConfigurator.js index 5a3358c49c..abd4b4527a 100644 --- a/platform/framework/src/resolve/RequireConfigurator.js +++ b/platform/framework/src/resolve/RequireConfigurator.js @@ -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, diff --git a/platform/framework/test/resolve/RequireConfiguratorSpec.js b/platform/framework/test/resolve/RequireConfiguratorSpec.js index c7eba858a7..365d24a1cf 100644 --- a/platform/framework/test/resolve/RequireConfiguratorSpec.js +++ b/platform/framework/test/resolve/RequireConfiguratorSpec.js @@ -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" } + } + }); + + }); }); } ); \ No newline at end of file