mirror of
https://github.com/microsoft/playwright.git
synced 2025-06-26 21:40:17 +00:00
82 lines
2.1 KiB
JavaScript
82 lines
2.1 KiB
JavaScript
![]() |
import { test, expect } from '@playwright/experimental-ct-vue'
|
||
|
|
||
|
import has from 'has'
|
||
|
import Button from './components/Button.vue'
|
||
|
import DefaultSlot from './components/DefaultSlot.vue'
|
||
|
import NamedSlots from './components/NamedSlots.vue'
|
||
|
import Component from './components/Component.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)
|
||
|
}
|
||
|
})
|
||
|
await component.click()
|
||
|
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')
|
||
|
})
|
||
|
|
||
|
test('optionless should work', async ({ mount }) => {
|
||
|
const component = await mount(Component)
|
||
|
await expect(component).toContainText('test')
|
||
|
})
|
||
|
|
||
|
test('should run hooks', async ({ page, mount }) => {
|
||
|
const messages = []
|
||
|
page.on('console', m => messages.push(m.text()))
|
||
|
await mount(Button, {
|
||
|
props: {
|
||
|
title: 'Submit'
|
||
|
},
|
||
|
hooksConfig: { route: 'A' }
|
||
|
})
|
||
|
expect(messages).toEqual(['Before mount: {\"route\":\"A\"}, app: true', 'After mount el: HTMLButtonElement'])
|
||
|
})
|