2022-05-05 13:26:56 -08:00
|
|
|
import { test, expect } from '@playwright/test'
|
2022-03-11 15:46:11 -08:00
|
|
|
|
|
|
|
import Button from './components/Button.vue'
|
|
|
|
import DefaultSlot from './components/DefaultSlot.vue'
|
|
|
|
import NamedSlots from './components/NamedSlots.vue'
|
|
|
|
|
|
|
|
test.use({ viewport: { width: 500, height: 500 } })
|
|
|
|
|
|
|
|
test('props should work', async ({ mount }) => {
|
|
|
|
const component = await mount(Button, {
|
|
|
|
props: {
|
|
|
|
title: 'Submit'
|
|
|
|
}
|
|
|
|
})
|
|
|
|
await expect(component).toContainText('Submit')
|
|
|
|
})
|
|
|
|
|
|
|
|
test('event should work', async ({ mount }) => {
|
|
|
|
const messages = []
|
|
|
|
const component = await mount(Button, {
|
|
|
|
props: {
|
|
|
|
title: 'Submit'
|
|
|
|
},
|
|
|
|
on: {
|
|
|
|
submit: data => messages.push(data)
|
|
|
|
}
|
|
|
|
})
|
2022-03-13 20:26:13 -08:00
|
|
|
await component.click()
|
2022-03-11 15:46:11 -08:00
|
|
|
expect(messages).toEqual(['hello'])
|
|
|
|
})
|
|
|
|
|
|
|
|
test('default slot should work', async ({ mount }) => {
|
|
|
|
const component = await mount(DefaultSlot, {
|
|
|
|
slots: {
|
|
|
|
default: 'Main Content'
|
|
|
|
}
|
|
|
|
})
|
|
|
|
await expect(component).toContainText('Main Content')
|
|
|
|
})
|
|
|
|
|
|
|
|
test('multiple slots should work', async ({ mount }) => {
|
|
|
|
const component = await mount(DefaultSlot, {
|
|
|
|
slots: {
|
|
|
|
default: ['one', 'two']
|
|
|
|
}
|
|
|
|
})
|
|
|
|
await expect(component).toContainText('one')
|
|
|
|
await expect(component).toContainText('two')
|
|
|
|
})
|
|
|
|
|
|
|
|
test('named slots should work', async ({ mount }) => {
|
|
|
|
const component = await mount(NamedSlots, {
|
|
|
|
slots: {
|
|
|
|
header: 'Header',
|
|
|
|
main: 'Main Content',
|
|
|
|
footer: 'Footer'
|
|
|
|
}
|
|
|
|
})
|
|
|
|
await expect(component).toContainText('Header')
|
|
|
|
await expect(component).toContainText('Main Content')
|
|
|
|
await expect(component).toContainText('Footer')
|
|
|
|
})
|