mirror of
https://github.com/element-plus/element-plus.git
synced 2024-12-27 03:01:14 +08:00
74 lines
1.7 KiB
TypeScript
74 lines
1.7 KiB
TypeScript
import { mount } from '@vue/test-utils'
|
|
import Alert from '../src/index.vue'
|
|
|
|
const AXIOM = 'Rem is the best girl'
|
|
|
|
describe('Alert.vue', () => {
|
|
test('render test & class', () => {
|
|
const wrapper = mount(Alert, {
|
|
props: {
|
|
title: AXIOM,
|
|
showIcon: true,
|
|
},
|
|
})
|
|
expect(wrapper.find('.el-alert__title').text()).toEqual(AXIOM)
|
|
expect(wrapper.find('.el-alert').classes()).toContain('el-alert--info')
|
|
})
|
|
|
|
test('type', () => {
|
|
const wrapper = mount(Alert, {
|
|
props: {
|
|
title: 'test',
|
|
type: 'success',
|
|
showIcon: true,
|
|
},
|
|
})
|
|
expect(wrapper.find('.el-alert').classes()).toContain('el-alert--success')
|
|
expect(wrapper.find('.el-alert__icon').classes()).toContain('el-icon-success')
|
|
})
|
|
|
|
test('description', () => {
|
|
const wrapper = mount(Alert, {
|
|
props: {
|
|
title: 'Dorne',
|
|
description: AXIOM,
|
|
showIcon: true,
|
|
},
|
|
})
|
|
expect(wrapper.find('.el-alert__description').text()).toEqual(AXIOM)
|
|
})
|
|
|
|
test('theme', () => {
|
|
const wrapper = mount(Alert, {
|
|
props: {
|
|
title: 'test',
|
|
effect: 'dark',
|
|
},
|
|
})
|
|
expect(wrapper.find('.el-alert').classes()).toContain('is-dark')
|
|
})
|
|
|
|
test('title slot', () => {
|
|
const wrapper = mount(Alert, {
|
|
slots: {
|
|
title: AXIOM,
|
|
},
|
|
})
|
|
expect(wrapper.find('.el-alert__title').text()).toEqual(AXIOM)
|
|
})
|
|
|
|
test('close', async () => {
|
|
const wrapper = mount(Alert, {
|
|
props: {
|
|
closeText: 'close',
|
|
},
|
|
})
|
|
|
|
const closeBtn = wrapper.find('.el-alert__closebtn')
|
|
expect(closeBtn.exists()).toBe(true)
|
|
|
|
await closeBtn.trigger('click')
|
|
expect(wrapper.emitted()).toBeDefined()
|
|
})
|
|
})
|