Browse Source

refactor

feature/data-sources
danstarns 2 years ago
parent
commit
0f840ff43b
  1. 74
      test/specs/data_sources/index.ts

74
test/specs/data_sources/index.ts

@ -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));
});
}); });
}); });

Loading…
Cancel
Save