From 09e25a28892e13283475607b2fc5f242e21a404a Mon Sep 17 00:00:00 2001
From: tangjinzhou <415800467@qq.com>
Date: Thu, 17 May 2018 10:40:50 +0800
Subject: [PATCH] test: add affix unit test
---
components/affix/__tests__/index.test.js | 71 ++++++++++++++++++++++++
tests/setup.js | 4 +-
tests/shared/demoTest.js | 3 +
3 files changed, 75 insertions(+), 3 deletions(-)
create mode 100644 components/affix/__tests__/index.test.js
diff --git a/components/affix/__tests__/index.test.js b/components/affix/__tests__/index.test.js
new file mode 100644
index 000000000..5bb0ffb90
--- /dev/null
+++ b/components/affix/__tests__/index.test.js
@@ -0,0 +1,71 @@
+import Affix from '..'
+import Button from '../../button'
+import { mount } from '@vue/test-utils'
+const events = {}
+
+const AffixMounter = {
+ mounted () {
+ this.$refs.container.scrollTop = 100
+ this.$refs.container.addEventListener = jest.fn().mockImplementation((event, cb) => {
+ events[event] = cb
+ })
+ },
+ methods: {
+ getTarget () {
+ return this.$refs.container
+ },
+ },
+
+ render () {
+ return (
+
+
+
this.$refs.container}
+ ref='affix'
+ >
+
+
+
+
+ )
+ },
+}
+describe('Affix Render', () => {
+ beforeAll(() => {
+ jest.useFakeTimers()
+ })
+
+ afterAll(() => {
+ jest.useRealTimers()
+ })
+ it('Affix render perfectly', () => {
+ const wrapper = mount(AffixMounter, { attachToDocument: true })
+ jest.runAllTimers()
+
+ wrapper.vm.$refs.affix.$refs.fixedNode.parentNode.getBoundingClientRect = jest.fn(() => {
+ return {
+ bottom: 100, height: 28, left: 0, right: 0, top: -50, width: 195,
+ }
+ })
+ events.scroll({
+ type: 'scroll',
+ })
+ jest.runAllTimers()
+ expect(wrapper.vm.$refs.affix.affixStyle).not.toBe(null)
+ })
+})
diff --git a/tests/setup.js b/tests/setup.js
index cbd61b820..42fbf73b0 100644
--- a/tests/setup.js
+++ b/tests/setup.js
@@ -1,6 +1,4 @@
-import Vue from 'vue'
-import antd from 'vue-antd-ui'
-Vue.use(antd)
+
/* eslint-disable global-require */
if (typeof window !== 'undefined') {
global.window.resizeTo = (width, height) => {
diff --git a/tests/shared/demoTest.js b/tests/shared/demoTest.js
index 2dc8d73da..772fcae90 100644
--- a/tests/shared/demoTest.js
+++ b/tests/shared/demoTest.js
@@ -2,6 +2,9 @@ import glob from 'glob'
import { renderToString } from '@vue/server-test-utils'
import MockDate from 'mockdate'
import moment from 'moment'
+import Vue from 'vue'
+import antd from 'vue-antd-ui'
+Vue.use(antd)
export default function demoTest (component, options = {}) {
const files = glob.sync(`./components/${component}/demo/*.md`)