react-native-navigation的迁移库

Store.test.ts 1.5KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. import { Store } from './Store';
  2. describe('Store', () => {
  3. let uut;
  4. beforeEach(() => {
  5. uut = new Store();
  6. });
  7. it('initial state', () => {
  8. expect(uut.getPropsForComponentId('component1')).toEqual({});
  9. });
  10. it('holds props by componentId', () => {
  11. uut.setPropsForComponentId('component1', { a: 1, b: 2 });
  12. expect(uut.getPropsForComponentId('component1')).toEqual({ a: 1, b: 2 });
  13. });
  14. it('defensive for invalid componentId and props', () => {
  15. uut.setPropsForComponentId('component1', undefined);
  16. uut.setPropsForComponentId(undefined, undefined);
  17. expect(uut.getPropsForComponentId('component1')).toEqual({});
  18. });
  19. it('holds original components classes by componentName', () => {
  20. const MyComponent = class {
  21. //
  22. };
  23. uut.setOriginalComponentClassForName('example.mycomponent', MyComponent);
  24. expect(uut.getOriginalComponentClassForName('example.mycomponent')).toEqual(MyComponent);
  25. });
  26. it('holds component refs by id', () => {
  27. const ref = {};
  28. uut.setRefForComponentId('refUniqueId', ref);
  29. expect(uut.getRefForComponentId('other')).toBeUndefined();
  30. expect(uut.getRefForComponentId('refUniqueId')).toBe(ref);
  31. });
  32. it('clean by id', () => {
  33. uut.setRefForComponentId('refUniqueId', {});
  34. uut.setPropsForComponentId('refUniqueId', { foo: 'bar' });
  35. uut.cleanId('refUniqueId');
  36. expect(uut.getRefForComponentId('refUniqueId')).toBeUndefined();
  37. expect(uut.getPropsForComponentId('refUniqueId')).toEqual({});
  38. });
  39. });