diff --git a/src/dataSources/model/DataSource.ts b/src/dataSources/model/DataSource.ts index c125ea2f2..e3cf1e14c 100644 --- a/src/dataSources/model/DataSource.ts +++ b/src/dataSources/model/DataSource.ts @@ -1,4 +1,4 @@ -import { AddOptions, CombinedModelConstructorOptions, Model } from '../../common'; +import { AddOptions, CombinedModelConstructorOptions, Model, RemoveOptions } from '../../common'; import EditorModel from '../../editor/model/Editor'; import { DataRecordProps, DataSourceProps } from '../types'; import DataRecord from './DataRecord'; @@ -48,4 +48,8 @@ export default class DataSource extends Model { getRecords() { return [...this.records.models]; } + + removeRecord(id: string | number, opts?: RemoveOptions): DataRecord | undefined { + return this.records.remove(id, opts); + } } diff --git a/test/specs/dataSources/index.ts b/test/specs/dataSources/index.ts index 1c37dcbed..80e87fb82 100644 --- a/test/specs/dataSources/index.ts +++ b/test/specs/dataSources/index.ts @@ -143,7 +143,13 @@ describe('DataSourceManager', () => { expect(el.innerHTML).toBe('Name1-UP'); }); - test.todo('component is properly updating on record remove'); + test('component is properly updating on record remove', () => { + const ds = dsm.add(dsTest); + const cmpVar = addDataVariable(); + const el = cmpVar.getEl()!; + ds.removeRecord('id1'); + expect(el.innerHTML).toBe('default'); + }); test.todo('component is properly updating on record reset'); });