import { test, expect } from '@playwright/experimental-ct-vue2'
import App from './App.vue';
import Button from './components/Button.vue';
import Counter from './components/Counter.vue';
import DefaultSlot from './components/DefaultSlot.vue';
import NamedSlots from './components/NamedSlots.vue';
import EmptyTemplate from './components/EmptyTemplate.vue';
import type { HooksConfig } from '../playwright';
test.use({ viewport: { width: 500, height: 500 } })
test('render props', async ({ mount }) => {
const component = await mount()
await expect(component).toContainText('Submit')
})
test('render attributes', async ({ mount }) => {
const component = await mount()
await expect(component).toHaveClass('primary');
});
test('update props without remounting', async ({ mount }) => {
const component = await mount()
await expect(component.locator('#props')).toContainText('9001')
await component.update()
await expect(component).not.toContainText('9001')
await expect(component.locator('#props')).toContainText('1337')
await expect(component.locator('#remount-count')).toContainText('1')
})
test('update event listeners without remounting', async ({ mount }) => {
const messages: string[] = []
const component = await mount()
await component.update( {
messages.push(count)
}}
/>)
await component.click();
expect(messages).toEqual(['hello'])
await expect(component.locator('#remount-count')).toContainText('1')
})
test('update slots without remounting', async ({ mount }) => {
const component = await mount(Default Slot)
await expect(component).toContainText('Default Slot')
await component.update(
Test Slot
)
await expect(component).not.toContainText('Default Slot')
await expect(component).toContainText('Test Slot')
await expect(component.locator('#remount-count')).toContainText('1')
})
test('emit an submit event when the button is clicked', async ({ mount }) => {
const messages: string[] = []
const component = await mount(