Browse Source

Add device event for update

pull/3725/head
Artur Arseniev 5 years ago
parent
commit
bfc29dbdf7
  1. 13
      src/common/module.js
  2. 7
      src/device_manager/index.js
  3. 11
      test/specs/device_manager/index.js

13
src/common/module.js

@ -18,6 +18,19 @@ export default {
}, {});
},
__initListen() {
const { all, em, events } = this;
all &&
em &&
all
.on('add', (m, c, o) => em.trigger(events.add, m, o))
.on('remove', (m, c, o) => em.trigger(events.remove, m, o))
.on('change', (p, c) =>
em.trigger(events.update, p, p.changedAttributes(), c)
)
.on('all', this.__catchAllEvent, this);
},
__remove(model, opts = {}) {
const { em } = this;
const md = isString(model) ? this.get(model) : model;

7
src/device_manager/index.js

@ -74,15 +74,12 @@ export default () => {
init(config = {}) {
c = { ...defaults, ...config };
const { em } = c;
this.em = em;
devices = new Devices();
(c.devices || []).forEach(dv => this.add(dv.id || dv.name, dv.width, dv));
this.em = em;
this.all = devices;
devices
.on('add', (m, c, o) => em.trigger(evAdd, m, o))
.on('remove', (m, c, o) => em.trigger(evRemove, m, o))
.on('all', this.__catchAllEvent, this);
this.__initListen();
return this;
},

11
test/specs/device_manager/index.js

@ -121,6 +121,17 @@ describe('DeviceManager', () => {
expect(eventFnAll).toBeCalled();
});
test('Update device', () => {
const event = jest.fn();
em.on(obj.events.update, event);
const model = obj.add({});
const up = { name: 'Test' };
const opts = { myopts: 1 };
model.set(up, opts);
expect(event).toBeCalledTimes(1);
expect(event).toBeCalledWith(model, up, opts);
});
test('Render devices', () => {
expect(obj.render()).toBeTruthy();
});

Loading…
Cancel
Save