Skip to content

Commit dbf3cb5

Browse files
committed
feat: added check for root model
1 parent f9d1599 commit dbf3cb5

File tree

4 files changed

+7
-4
lines changed

4 files changed

+7
-4
lines changed

src/dashboard/dashboard-manager.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -188,6 +188,6 @@ describe('Dashboard manager', () => {
188188
mockModelManager.getModelInstances = jest.fn().mockReturnValue([new mockDataSource()]);
189189

190190
expect(dashboard.getModelInstances(mockDataSource).length).toBe(1);
191-
expect(mockModelManager.getModelInstances).toHaveBeenCalledWith(mockDataSource);
191+
expect(mockModelManager.getModelInstances).toHaveBeenCalledWith(mockDataSource, {});
192192
});
193193
});

src/dashboard/default-dashboard.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,6 @@ export class DefaultDashboard<TRoot extends object> implements Dashboard<TRoot>
9191
* @inheritdoc
9292
*/
9393
public getModelInstances<T extends object>(modelClass: Constructable<T>): object[] {
94-
return this.modelManager.getModelInstances<T>(modelClass);
94+
return this.modelManager.getModelInstances<T>(modelClass, this.root);
9595
}
9696
}

src/model/manager/model-manager.test.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,7 @@ describe('Model manager', () => {
7474
expect(manager.getModelInstances(testClass).length).toBe(2);
7575
expect(manager.getModelInstances(testClass1).length).toBe(1);
7676
expect(manager.getModelInstances(testClass2).length).toBe(0);
77+
expect(manager.getModelInstances(testClass, {}).length).toBe(0);
7778
});
7879

7980
test('allows constructing new models', () => {

src/model/manager/model-manager.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,10 @@ export class ModelManager {
2727
/**
2828
* Returns a shallow copy array of model instances that match the argument model class
2929
*/
30-
public getModelInstances<T extends object>(modelClass: Constructable<T>): object[] {
31-
return Array.from(this.modelInstanceMap.keys()).filter(modelInstance => modelInstance instanceof modelClass);
30+
public getModelInstances<T extends object>(modelClass: Constructable<T>, root?: object): object[] {
31+
return Array.from(this.modelInstanceMap.keys())
32+
.filter(modelInstance => root === undefined || this.getRoot(modelInstance) === root)
33+
.filter(modelInstance => modelInstance instanceof modelClass);
3234
}
3335

3436
/**

0 commit comments

Comments
 (0)