diff --git a/components/popconfirm/__tests__/__snapshots__/index.test.js.snap b/components/popconfirm/__tests__/__snapshots__/index.test.js.snap new file mode 100644 index 000000000..d60202a82 --- /dev/null +++ b/components/popconfirm/__tests__/__snapshots__/index.test.js.snap @@ -0,0 +1,19 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`Popconfirm should show overlay when trigger is clicked 1`] = ` +
+
+
+
+
+ +
code
+
+
+ + +
+
+
+
+`; diff --git a/components/popconfirm/__tests__/index.test.js b/components/popconfirm/__tests__/index.test.js new file mode 100644 index 000000000..210679d0b --- /dev/null +++ b/components/popconfirm/__tests__/index.test.js @@ -0,0 +1,62 @@ +import { mount } from '@vue/test-utils' +import { asyncExpect } from '@/tests/utils' +import Popconfirm from '..' +function $$ (className) { + return document.body.querySelectorAll(className) +} +describe('Popconfirm', () => { + it('should popup Popconfirm dialog', async () => { + const onVisibleChange = jest.fn() + + const wrapper = mount( + { + render () { + return Are you sure delete this task?} + okText='Yes' + cancelText='No' + mouseEnterDelay={0} + mouseLeaveDelay={0} + onVisibleChange={onVisibleChange} + > + Delete + + }, + }, { sync: false, attachToDocument: true }) + let triggerNode = null + await asyncExpect(() => { + triggerNode = wrapper.findAll('span').at(0) + triggerNode.trigger('click') + }) + await asyncExpect(() => { + expect(onVisibleChange).toBeCalledWith(true) + expect($$('.popconfirm-test').length).toBe(1) + triggerNode.trigger('click') + }, 1000) + await asyncExpect(() => { + expect(onVisibleChange).toBeCalledWith(false) + }) + }) + + it('should show overlay when trigger is clicked', async () => { + const popconfirm = mount({ + render () { + return + show me your code + + }, + }, { sync: false }) + + await asyncExpect(() => { + expect(popconfirm.vm.$refs.popconfirm.getPopupDomNode()).toBe(null) + + popconfirm.find('span').trigger('click') + }, 1000) + await asyncExpect(() => { + const popup = popconfirm.vm.$refs.popconfirm.getPopupDomNode() + expect(popup).not.toBe(null) + expect(popup.className).toContain('ant-popover-placement-top') + expect(popup.innerHTML).toMatchSnapshot() + }, 1000) + }) +})