collapsible.test.js 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. import { clear } from 'jest-date-mock';
  2. import { Collapsible } from '../../index';
  3. function getCollapsible(props, children) {
  4. return (<Collapsible {...(props || {})}>
  5. {children ? children : <div className='collapsible-test-content'>hello</div>}
  6. </Collapsible>);
  7. }
  8. describe('collapsible', () => {
  9. beforeEach(() => {
  10. // Avoid `attachTo: document.body` Warning
  11. const div = document.createElement('div');
  12. div.setAttribute('id', 'container');
  13. document.body.appendChild(div);
  14. clear();
  15. });
  16. it('keepDOM = true', () => {
  17. let component = getCollapsible({ keepDOM: true, motion: false, lazyRender:true });
  18. let collapsible = mount(component, { attachTo: document.getElementById('container') })
  19. expect(collapsible.exists(`.collapsible-test-content`)).toEqual(false);
  20. collapsible.setProps({keepDOM: true, motion: false, lazyRender:false,isOpen:true})
  21. collapsible.update();
  22. expect(collapsible.exists(`.collapsible-test-content`)).toEqual(true);
  23. collapsible.unmount()
  24. });
  25. it('keepDOM = true lazyRender=false', ()=>{
  26. let component = getCollapsible({ keepDOM: true, motion: false, lazyRender:false });
  27. let collapsible = mount(component, { attachTo: document.getElementById('container') })
  28. expect(collapsible.exists(`.collapsible-test-content`)).toEqual(true);
  29. collapsible.setProps({keepDOM: true, motion: false, lazyRender:false,isOpen:true})
  30. collapsible.update();
  31. expect(collapsible.exists(`.collapsible-test-content`)).toEqual(true);
  32. collapsible.setProps({keepDOM: true, motion: false, lazyRender:false,isOpen:false})
  33. collapsible.update();
  34. expect(collapsible.exists(`.collapsible-test-content`)).toEqual(true);
  35. collapsible.unmount()
  36. })
  37. it('keepDOM lazyRender = false', () => {
  38. let component = getCollapsible({ keepDOM: false,motion:false, lazyRender: false });
  39. let collapsible = mount(component);
  40. expect(collapsible.exists(`.collapsible-test-content`)).toEqual(false);
  41. // set true
  42. collapsible.setProps({ isOpen: true,motion:false,keepDOM: false, lazyRender: false });
  43. collapsible.update(); // 必须调用一次update
  44. expect(collapsible.exists(`.collapsible-test-content`)).toEqual(true);
  45. collapsible.setProps({ isOpen: false,motion:false,keepDOM: false, lazyRender: false });
  46. collapsible.update(); // 必须调用一次update
  47. expect(collapsible.exists(`.collapsible-test-content`)).toEqual(false);
  48. collapsible.unmount()
  49. });
  50. });