Skip to content

Commit 5cb62be

Browse files
author
Sean Warren
committed
fix: iterate over all defaultSettings
1 parent d6f3218 commit 5cb62be

File tree

2 files changed

+22
-8
lines changed

2 files changed

+22
-8
lines changed

src/context/registry.js

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -57,13 +57,13 @@ export const extendAndPatchRegistry = (
5757
if (providerCls[clsName]) {
5858
providerCls[clsName] = cls;
5959
}
60-
});
61-
62-
// Override defaults for this particular context provider
63-
const providerSpecificDefaults = defaultSettings[providerCls] || {};
64-
Object.entries(providerSpecificDefaults).forEach(([key, value]) => {
65-
if (providerCls[key]) {
66-
providerCls[key] = value;
60+
const providerDefaultSettings = defaultSettings[providerCls.name];
61+
if (providerDefaultSettings) {
62+
Object.entries(providerDefaultSettings).forEach(([key, value]) => {
63+
if (providerCls[key]) {
64+
providerCls[key] = value;
65+
}
66+
});
6767
}
6868
});
6969

tests/context.tests.ts

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,8 @@ class ProviderEntity extends MaterialContextMixin(ApplicationContextMixin(Contex
3636
static Material = MockMaterial;
3737

3838
static Application = MockApplication;
39+
40+
static setting = 10;
3941
}
4042

4143
class DerivedProviderEntity extends ProviderEntity {
@@ -76,12 +78,24 @@ describe("ContextProviderRegistryContainer", () => {
7678
},
7779
};
7880

81+
const defaultSettings = {
82+
ProviderEntity: {
83+
setting: 100,
84+
},
85+
};
86+
7987
it("can be created and patched", () => {
80-
const registry = createAndPatchRegistry(classConfigObj, { Material: SpecificMockMaterial });
88+
const registry = createAndPatchRegistry(
89+
classConfigObj,
90+
{ Material: SpecificMockMaterial },
91+
defaultSettings,
92+
);
93+
8194
const _dataProvider = registry.findProviderInstanceByName("DataManager");
8295
const dataProvider = new _dataProvider.constructor(_dataProvider.config);
8396
const _appProvider = registry.findProviderInstanceByName("ApplicationDataManager");
8497
const appProvider = new _appProvider.constructor(_appProvider.config);
98+
expect(_dataProvider.constructor.setting).to.be.equal(100);
8599
expect(dataProvider.material).to.be.equal("defaultSpecificMockMaterial");
86100
expect(appProvider.application).to.be.equal("defaultSpecificMockApplication");
87101
});

0 commit comments

Comments
 (0)