tiny-vue/examples/sites/demos/pc/app/dropdown/events.spec.ts

53 lines
2.2 KiB
TypeScript

import { test, expect } from '@playwright/test'
test('按钮类型内置事件', async ({ page }) => {
page.on('pageerror', (exception) => expect(exception).toBeNull())
await page.goto('dropdown#events')
const wrap = page.locator('#events')
const dropDown = wrap.locator('.tiny-dropdown').nth(0)
const notify = page.locator('.tiny-notify')
const dropDownMenuItem = page.locator('body > .tiny-dropdown-menu > .tiny-dropdown-item')
// 验证 button-click
await dropDown.locator('button').nth(0).click()
await expect(notify.filter({ hasText: '下拉菜单内置按钮点击事件' })).toBeVisible()
// 验证 visible-change
await page.waitForTimeout(500)
await dropDown.locator('button').nth(1).hover()
await expect(notify.filter({ hasText: '下拉菜单显隐事件,当前为显示' })).toBeVisible()
await page.waitForTimeout(500)
await dropDown.locator('button').nth(0).hover()
await expect(notify.filter({ hasText: '下拉菜单显隐事件,当前为隐藏' })).toBeVisible()
// 验证 item-click
await page.waitForTimeout(500)
await dropDown.locator('button').nth(1).hover()
await dropDownMenuItem.filter({ hasText: '黄金糕' }).click()
await expect(notify.filter({ hasText: 'itemClick 回调事件' })).toBeVisible()
})
test('配置式内置事件', async ({ page }) => {
page.on('pageerror', (exception) => expect(exception).toBeNull())
await page.goto('dropdown#events')
const wrap = page.locator('#events')
const notify = page.locator('.tiny-notify')
const dropDown = wrap.locator('.tiny-dropdown').nth(1)
await expect(dropDown).toHaveClass(/options-event/)
const dropDownMenuItem = page.locator('body > .tiny-dropdown-menu > .tiny-dropdown-item')
// 验证 visible-change
await page.waitForTimeout(500)
await dropDown.hover()
await expect(notify.filter({ hasText: '下拉菜单显隐事件,当前为显示' })).toBeVisible()
// 验证 item-click
await dropDownMenuItem.filter({ hasText: '黄金糕' }).click()
await expect(notify.filter({ hasText: 'itemClick 回调事件' })).toBeVisible()
// 验证 visible-change
await expect(notify.filter({ hasText: '下拉菜单显隐事件,当前为隐藏' })).toBeVisible()
})