44 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
			
		
		
	
	
			44 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
import { mount } from '@vue/test-utils';
 | 
						|
import { asyncExpect } from '@/tests/utils';
 | 
						|
import Popover from '..';
 | 
						|
import mountTest from '../../../tests/shared/mountTest';
 | 
						|
 | 
						|
describe('Popover', () => {
 | 
						|
  mountTest(Popover);
 | 
						|
  it('should show overlay when trigger is clicked', async () => {
 | 
						|
    const popover = mount(
 | 
						|
      {
 | 
						|
        render() {
 | 
						|
          return (
 | 
						|
            <Popover
 | 
						|
              ref="popover"
 | 
						|
              content="console.log('hello world')"
 | 
						|
              title="code"
 | 
						|
              trigger="click"
 | 
						|
            >
 | 
						|
              <span>show me your code</span>
 | 
						|
            </Popover>
 | 
						|
          );
 | 
						|
        },
 | 
						|
      },
 | 
						|
      { sync: false },
 | 
						|
    );
 | 
						|
    await asyncExpect(() => {
 | 
						|
      expect(popover.vm.$refs.popover.getPopupDomNode()).toBe(null);
 | 
						|
 | 
						|
      popover.find('span').trigger('click');
 | 
						|
    }, 0);
 | 
						|
    let popup = null;
 | 
						|
    await asyncExpect(() => {
 | 
						|
      popup = popover.vm.$refs.popover.getPopupDomNode();
 | 
						|
      expect(popup).not.toBe(null);
 | 
						|
      expect(popup.className).toContain('ant-popover-placement-top');
 | 
						|
    }, 1000);
 | 
						|
    await asyncExpect(() => {
 | 
						|
      expect(popup.innerHTML).toMatchSnapshot();
 | 
						|
      expect(popup.innerHTML).toMatchSnapshot();
 | 
						|
    });
 | 
						|
    await asyncExpect(() => {});
 | 
						|
  });
 | 
						|
});
 |