popover.test.js 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. import { clear } from 'jest-date-mock';
  2. import { BASE_CLASS_PREFIX } from '../../../semi-foundation/base/constants';
  3. import Popover from '../index';
  4. import { Button } from '../../index';
  5. import { genAfterEach, genBeforeEach, mount, sleep } from '../../_test_/utils';
  6. const wrapCls = `${BASE_CLASS_PREFIX}-popover`;
  7. const wrapSelector = `.${wrapCls}`;
  8. const triggerCls = 'trigger';
  9. describe(`Popover`, () => {
  10. beforeEach(() => {
  11. clear();
  12. genBeforeEach()();
  13. });
  14. afterEach(genAfterEach());
  15. it(`test appearance`, async () => {
  16. const contentId = `content`;
  17. const elem = mount(
  18. <Popover trigger={'hover'} visible={true} content={<p id={contentId}>I'm content</p>} showArrow={true}>
  19. <Button>Hover Me</Button>
  20. </Popover>
  21. );
  22. // check if popover showed or not
  23. expect(document.querySelectorAll(wrapSelector).length > 0).toBeTruthy();
  24. expect(document.querySelectorAll(`#${contentId}`).length > 0).toBeTruthy();
  25. // check if popover has arrow icon or not
  26. expect(document.querySelectorAll(`.${BASE_CLASS_PREFIX}-popover-icon-arrow`).length > 0).toBeTruthy();
  27. });
  28. it(`test appearance without arrow`, async () => {
  29. const contentId = `content`;
  30. const elem = mount(
  31. <Popover trigger={'hover'} visible={true} content={<p id={contentId}>I'm content</p>} spacing={0}>
  32. <Button>Hover Me</Button>
  33. </Popover>
  34. );
  35. // check if popover showed or not
  36. expect(document.querySelectorAll(wrapSelector).length > 0).toBeTruthy();
  37. expect(document.querySelectorAll(`#${contentId}`).length > 0).toBeTruthy();
  38. // check if popover has arrow icon or not
  39. expect(document.querySelectorAll(`.${BASE_CLASS_PREFIX}-popover-icon-arrow`).length === 0).toBeTruthy();
  40. });
  41. });