diff --git a/tests/unit/d2-container-ghost-bs.spec.js b/tests/unit/d2-container-ghost-bs.spec.js new file mode 100644 index 00000000..e8af6dc0 --- /dev/null +++ b/tests/unit/d2-container-ghost-bs.spec.js @@ -0,0 +1,65 @@ +import { mount } from '@vue/test-utils' +import D2ContainerGhostBs from '@/components/d2-container/components/d2-container-ghost-bs.vue' + +describe('d2-container-ghost-bs.vue', () => { + // 存在且是Vue组件实例 + it('is a vue instance', () => { + const wrapper = mount(D2ContainerGhostBs, { + slots: { + default: '
body
', + header: '
header
', + footer: '
footer
' + } + }) + + expect(wrapper.exists()).toBeTruthy() + expect(wrapper.isVueInstance()).toBeTruthy() + }) + + // 包含特定类名 + it('contains specific classnames', () => { + const wrapper = mount(D2ContainerGhostBs, { + slots: { + default: '
body
', + header: '
header
', + footer: '
footer
' + } + }) + + expect(wrapper.is('.d2-container-ghost-bs')).toBeTruthy() + expect(wrapper.contains('.d2-container-ghost-bs__header')).toBeTruthy() + expect(wrapper.contains('.d2-container-ghost-bs__body')).toBeTruthy() + expect(wrapper.contains('.d2-container-ghost-bs__footer')).toBeTruthy() + }) + + // betterScrollOptions prop + it('has a property named \'betterScrollOptions\'', () => { + const wrapper = mount(D2ContainerGhostBs, { + slots: { + default: '
body
', + header: '
header
', + footer: '
footer
' + }, + propsData: { + betterScrollOptions: {} + } + }) + + expect(wrapper.props().betterScrollOptions).toEqual({}) + }) + + // 渲染slot + it('has one or more slots', () => { + const wrapper = mount(D2ContainerGhostBs, { + slots: { + default: '
body
', + header: '
header
', + footer: '
footer
' + } + }) + + expect(wrapper.text()).toMatch('header') + expect(wrapper.text()).toMatch('body') + expect(wrapper.text()).toMatch('footer') + }) +}) \ No newline at end of file diff --git a/tests/unit/d2-container-ghost.spec.js b/tests/unit/d2-container-ghost.spec.js new file mode 100644 index 00000000..247e1e57 --- /dev/null +++ b/tests/unit/d2-container-ghost.spec.js @@ -0,0 +1,54 @@ +import { mount } from '@vue/test-utils' +import D2ContainerGhost from '@/components/d2-container/components/d2-container-ghost.vue' + +describe('d2-container-ghost.vue', () => { + // 存在且是Vue组件实例 + it('is a vue instance', () => { + const wrapper = mount(D2ContainerGhost) + + expect(wrapper.exists()).toBeTruthy() + expect(wrapper.isVueInstance()).toBeTruthy() + }) + + // 包含特定类名 + it('contains specific classnames', () => { + const wrapper = mount(D2ContainerGhost, { + slots: { + default: '
body
', + header: '
header
', + footer: '
footer
' + } + }) + + expect(wrapper.is('.d2-container-ghost')).toBeTruthy() + expect(wrapper.contains('.d2-container-ghost__header')).toBeTruthy() + expect(wrapper.contains('.d2-container-ghost__body')).toBeTruthy() + expect(wrapper.contains('.d2-container-ghost__footer')).toBeTruthy() + }) + + // 节流间隔prop + it('has a property named \'scrollDelay\'', () => { + const wrapper = mount(D2ContainerGhost, { + propsData: { + scrollDelay: 30 + } + }) + + expect(wrapper.props().scrollDelay).toEqual(30) + }) + + // 渲染slot + it('has one or more slots', () => { + const wrapper = mount(D2ContainerGhost, { + slots: { + default: '
body
', + header: '
header
', + footer: '
footer
' + } + }) + + expect(wrapper.text()).toMatch('header') + expect(wrapper.text()).toMatch('body') + expect(wrapper.text()).toMatch('footer') + }) +})