|
|
@ -6,6 +6,8 @@ import ComponentWrapper from '../../../src/dom_components/model/ComponentWrapper |
|
|
describe('DataSourceManager', () => { |
|
|
describe('DataSourceManager', () => { |
|
|
let em: Editor; |
|
|
let em: Editor; |
|
|
let dsm: DataSourceManager; |
|
|
let dsm: DataSourceManager; |
|
|
|
|
|
let fixtures: HTMLElement; |
|
|
|
|
|
let cmpRoot: ComponentWrapper; |
|
|
const dsTest: DataSourceProps = { |
|
|
const dsTest: DataSourceProps = { |
|
|
id: 'ds1', |
|
|
id: 'ds1', |
|
|
records: [ |
|
|
records: [ |
|
|
@ -23,6 +25,18 @@ describe('DataSourceManager', () => { |
|
|
avoidInlineStyle: true, |
|
|
avoidInlineStyle: true, |
|
|
}); |
|
|
}); |
|
|
dsm = em.DataSources; |
|
|
dsm = em.DataSources; |
|
|
|
|
|
document.body.innerHTML = '<div id="fixtures"></div>'; |
|
|
|
|
|
const { Pages, Components } = em; |
|
|
|
|
|
Pages.onLoad(); |
|
|
|
|
|
cmpRoot = Components.getWrapper()!; |
|
|
|
|
|
const View = Components.getType('wrapper')!.view; |
|
|
|
|
|
const wrapperEl = new View({ |
|
|
|
|
|
model: cmpRoot, |
|
|
|
|
|
config: { ...cmpRoot.config, em }, |
|
|
|
|
|
}); |
|
|
|
|
|
wrapperEl.render(); |
|
|
|
|
|
fixtures = document.body.querySelector('#fixtures')!; |
|
|
|
|
|
fixtures.appendChild(wrapperEl.el); |
|
|
}); |
|
|
}); |
|
|
|
|
|
|
|
|
afterEach(() => { |
|
|
afterEach(() => { |
|
|
@ -33,47 +47,27 @@ describe('DataSourceManager', () => { |
|
|
expect(dsm).toBeTruthy(); |
|
|
expect(dsm).toBeTruthy(); |
|
|
}); |
|
|
}); |
|
|
|
|
|
|
|
|
describe('Traits', () => { |
|
|
test('add DataSource with records', () => { |
|
|
let fixtures: HTMLElement; |
|
|
const eventAdd = jest.fn(); |
|
|
let cmpRoot: ComponentWrapper; |
|
|
em.on(dsm.events.add, eventAdd); |
|
|
|
|
|
const ds = addDataSource(); |
|
|
beforeEach(() => { |
|
|
expect(dsm.getAll().length).toBe(1); |
|
|
document.body.innerHTML = '<div id="fixtures"></div>'; |
|
|
expect(eventAdd).toBeCalledTimes(1); |
|
|
const { Pages, Components } = em; |
|
|
expect(ds.getRecords().length).toBe(3); |
|
|
Pages.onLoad(); |
|
|
}); |
|
|
cmpRoot = Components.getWrapper()!; |
|
|
|
|
|
const View = Components.getType('wrapper')!.view; |
|
|
|
|
|
const wrapperEl = new View({ |
|
|
|
|
|
model: cmpRoot, |
|
|
|
|
|
config: { ...cmpRoot.config, em }, |
|
|
|
|
|
}); |
|
|
|
|
|
wrapperEl.render(); |
|
|
|
|
|
fixtures = document.body.querySelector('#fixtures')!; |
|
|
|
|
|
fixtures.appendChild(wrapperEl.el); |
|
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
test('add DataSource with records', () => { |
|
|
|
|
|
const eventAdd = jest.fn(); |
|
|
|
|
|
em.on(dsm.events.add, eventAdd); |
|
|
|
|
|
const ds = addDataSource(); |
|
|
|
|
|
expect(dsm.getAll().length).toBe(1); |
|
|
|
|
|
expect(eventAdd).toBeCalledTimes(1); |
|
|
|
|
|
expect(ds.getRecords().length).toBe(3); |
|
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
test('get added DataSource', () => { |
|
|
test('get added DataSource', () => { |
|
|
const ds = addDataSource(); |
|
|
const ds = addDataSource(); |
|
|
expect(dsm.get(dsTest.id)).toBe(ds); |
|
|
expect(dsm.get(dsTest.id)).toBe(ds); |
|
|
}); |
|
|
}); |
|
|
|
|
|
|
|
|
test('remove DataSource', () => { |
|
|
test('remove DataSource', () => { |
|
|
const event = jest.fn(); |
|
|
const event = jest.fn(); |
|
|
em.on(dsm.events.remove, event); |
|
|
em.on(dsm.events.remove, event); |
|
|
const ds = addDataSource(); |
|
|
const ds = addDataSource(); |
|
|
dsm.remove('ds1'); |
|
|
dsm.remove('ds1'); |
|
|
expect(dsm.getAll().length).toBe(0); |
|
|
expect(dsm.getAll().length).toBe(0); |
|
|
expect(event).toBeCalledTimes(1); |
|
|
expect(event).toBeCalledTimes(1); |
|
|
expect(event).toBeCalledWith(ds, expect.any(Object)); |
|
|
expect(event).toBeCalledWith(ds, expect.any(Object)); |
|
|
}); |
|
|
|
|
|
}); |
|
|
}); |
|
|
}); |
|
|
}); |
|
|
|