Browse Source

Add page update event to pages

pull/3411/head
Artur Arseniev 6 years ago
parent
commit
a24cbf4d04
  1. 5
      src/pages/index.js
  2. 11
      test/specs/pages/index.js

5
src/pages/index.js

@ -6,6 +6,7 @@ import Page from './model/Page';
export const evPfx = 'page:';
export const evPageSelect = `${evPfx}select`;
export const evPageUpdate = `${evPfx}update`;
export const evPageAdd = `${evPfx}add`;
export const evPageAddBefore = `${evPageAdd}:before`;
export const evPageRemove = `${evPfx}remove`;
@ -22,6 +23,7 @@ export default () => {
events: {
select: evPageSelect,
update: evPageUpdate,
add: evPageAdd,
addBefore: evPageAddBefore,
remove: evPageRemove,
@ -50,6 +52,9 @@ export default () => {
this.select(mainPage, { silent: 1, main: 1 });
pages.on('add', (p, c, o) => em.trigger(evPageAdd, p, o));
pages.on('remove', (p, c, o) => em.trigger(evPageRemove, p, o));
pages.on('change', (p, c) => {
em.trigger(evPageUpdate, p, p.changedAttributes(), c);
});
model.on('change:selected', this._onPageChange);
return this;

11
test/specs/pages/index.js

@ -239,4 +239,15 @@ describe('Managing pages', () => {
pm.remove(page.id);
expect(pm.getAll().length).toBe(1);
});
test('Change page', () => {
const event = jest.fn();
em.on(pm.events.update, event);
const page = pm.add({});
const up = { name: 'Test' };
const opts = { myopts: 1 };
page.set(up, opts);
expect(event).toBeCalledTimes(1);
expect(event).toBeCalledWith(page, up, opts);
});
});

Loading…
Cancel
Save