Ejemplo n.º 1
0
  it('should be able to get the initial state', () => {
    const broadcast = createBroadcast();
    const initialState = {};
    broadcast.setState(initialState);

    assert.strictEqual(themeListener.initial({ [CHANNEL]: broadcast }), initialState);
  });
Ejemplo n.º 2
0
  it('should be able to subscribe to the event stream', done => {
    const broadcast = createBroadcast();
    const initialState = {};
    const secondState = {};
    broadcast.setState(initialState);

    themeListener.subscribe(
      {
        [CHANNEL]: broadcast,
      },
      state => {
        assert.strictEqual(state, secondState);
        done();
      },
    );

    broadcast.setState(secondState);
  });
Ejemplo n.º 3
0
test(`ThemeProvider unsubscribes on unmounting`, t => {
  const ThemeProvider = createThemeProvider();
  const theme = { themed: true };
  const broadcast = createBroadcast(theme);

  const wrapper = mount(
    <ThemeProvider theme={theme} />,
    mountOptions(broadcast),
  );

  const { subscriptionId } = wrapper.instance();
  t.true(wrapper.instance().subscriptionId !== undefined, 'brcast subscriptionId is undefined');
  t.true(typeof wrapper.instance().subscriptionId === 'number', 'brcast subscriptionId expected to be number');

  const subscription = getInterceptor(subscriptionId);

  const brcastInst = wrapper.context(channel);
  brcastInst.unsubscribe = (id) => subscription(id);
  wrapper.setContext({[channel]: brcastInst});

  wrapper.unmount();

  t.true(subscription() === subscriptionId, `ThemeProvider should unsubscribe on unmounting`);
});
Ejemplo n.º 4
0
 before(() => {
   shallow = createShallow();
   mount = createMount();
   broadcast = createBroadcast();
   context = { [CHANNEL]: broadcast };
 });