[Build] Allow bundles to be removed

Allow bundles to be removed by:

* Waiting for explicit activation before bootstrapping,
  providing a time period when bundles could be removed.
* Adding a remove method to BundleRegistry
This commit is contained in:
Victor Woeltjen 2016-02-02 15:18:50 -08:00
parent bb7f4239f6
commit a10db656ce
4 changed files with 32 additions and 3 deletions

View File

@ -26,8 +26,12 @@
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
<title></title>
<script type="text/javascript"
src="bower_components/requirejs/require.js"
data-main="main.js">
src="bower_components/requirejs/require.js">
</script>
<script type="text/javascript">
require(['main'], function (mct) {
mct.run();
});
</script>
<link rel="icon" type="image/png" href="platform/commonUI/general/res/images/favicons/favicon-32x32.png" sizes="32x32">
<link rel="icon" type="image/png" href="platform/commonUI/general/res/images/favicons/favicon-96x96.png" sizes="96x96">

View File

@ -89,5 +89,11 @@ define([
'./example/generator/bundle'
], function (Main, legacyRegistry) {
'use strict';
new Main().run(legacyRegistry);
return {
legacyRegistry: legacyRegistry,
run: function () {
return new Main().run(legacyRegistry);
}
};
});

View File

@ -44,5 +44,9 @@ define(function () {
return Object.keys(this.bundles);
};
BundleRegistry.prototype.remove = function (path) {
delete this.bundles[path];
};
return BundleRegistry;
});

View File

@ -68,6 +68,21 @@ define(['./BundleRegistry'], function (BundleRegistry) {
expect(bundleRegistry.get(testPath))
.toBe(testBundleDef);
});
describe("and then removed", function () {
beforeEach(function () {
bundleRegistry.remove(testPath);
});
it("appears empty again", function () {
expect(bundleRegistry.list()).toEqual([]);
});
it("does not contain the removed bundle", function () {
expect(bundleRegistry.contains(testPath))
.toBe(false);
});
});
});
});