123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- import * as React from 'react';
- import { Store } from './Store';
- import { IWrappedComponent } from './ComponentWrapper';
-
- describe('Store', () => {
- let uut: Store;
-
- beforeEach(() => {
- uut = new Store();
- });
-
- it('initial state', () => {
- expect(uut.getPropsForId('component1')).toEqual({});
- });
-
- it('holds props by id', () => {
- uut.updateProps('component1', { a: 1, b: 2 });
- expect(uut.getPropsForId('component1')).toEqual({ a: 1, b: 2 });
- });
-
- it('defensive for invalid Id and props', () => {
- uut.updateProps('component1', undefined);
- expect(uut.getPropsForId('component1')).toEqual({});
- });
-
- it('holds original components classes by componentName', () => {
- const MyWrappedComponent = () => class MyComponent extends React.Component {};
- uut.setComponentClassForName('example.mycomponent', MyWrappedComponent);
- expect(uut.getComponentClassForName('example.mycomponent')).toEqual(MyWrappedComponent);
- });
-
- it('clear props by component id when clear component', () => {
- uut.updateProps('refUniqueId', { foo: 'bar' });
- uut.clearComponent('refUniqueId');
- expect(uut.getPropsForId('refUniqueId')).toEqual({});
- });
-
- it('clear instance by component id when clear component', () => {
- uut.setComponentInstance('refUniqueId', ({} as IWrappedComponent));
- uut.clearComponent('refUniqueId');
- expect(uut.getComponentInstance('refUniqueId')).toEqual(undefined);
- });
-
- it('holds component instance by id', () => {
- uut.setComponentInstance('component1', ({} as IWrappedComponent));
- expect(uut.getComponentInstance('component1')).toEqual({});
- });
-
- it('calls component setProps when set props by id', () => {
- const instance: any = {setProps: jest.fn()};
- const props = { foo: 'bar' };
-
- uut.setComponentInstance('component1', instance);
- uut.updateProps('component1', props);
-
- expect(instance.setProps).toHaveBeenCalledWith(props);
- });
-
- it('not throw exeption when set props by id component not found', () => {
- expect(() => uut.updateProps('component1', { foo: 'bar' })).not.toThrow();
- });
- });
|