mirror of https://github.com/msgbyte/tailchat
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
125 lines
4.4 KiB
TypeScript
125 lines
4.4 KiB
TypeScript
import { loginToDemoUser } from './utils/user';
|
|
import { test, expect, Page } from '@playwright/test';
|
|
|
|
test.beforeEach(async ({ page, context }) => {
|
|
await loginToDemoUser(page, context);
|
|
});
|
|
|
|
test.describe('Main Process', () => {
|
|
test('Check All Route', async ({ page }) => {
|
|
// Click text=已发送
|
|
await page.locator('text=已发送').click();
|
|
// Click text=待处理
|
|
await page.locator('text=待处理').click();
|
|
// Click text=添加好友
|
|
await page.locator('text=添加好友').click();
|
|
// Click [aria-label="Copy"]
|
|
await page.locator('[aria-label="Copy"]').click();
|
|
// Click text=插件中心
|
|
await page.locator('text=插件中心').click();
|
|
await expect(page).toHaveURL(
|
|
'http://localhost:11011/main/personal/plugins'
|
|
);
|
|
// Click text=已安装
|
|
await page.locator('text=已安装').click();
|
|
// Click text=手动安装
|
|
await page.locator('text=手动安装').click();
|
|
// Click svg[role="img"] >> nth=1
|
|
await page.locator('svg[role="img"]').nth(1).click();
|
|
// Click text=系统设置
|
|
await page.locator('text=系统设置').click();
|
|
// Click text=服务状态
|
|
await page.locator('text=服务状态').click();
|
|
// Click text=性能统计
|
|
await page.locator('text=性能统计').click();
|
|
// Click text=关于
|
|
await page.locator('text=关于').click();
|
|
|
|
// Click 关闭
|
|
await page.locator('.text-2xl.border-2').click();
|
|
});
|
|
|
|
test.describe('Group', () => {
|
|
/**
|
|
* 创建群组
|
|
*/
|
|
async function createGroup(page: Page) {
|
|
// Click [data-testid="create-group"]
|
|
await page.locator('[data-testid="create-group"]').click();
|
|
// Click text=默认群组
|
|
await page.locator('text=默认群组').click();
|
|
// Click input[type="text"]
|
|
await page.locator('input[type="text"]').click();
|
|
// Fill input[type="text"]
|
|
await page.locator('input[type="text"]').fill('Test');
|
|
// Press Enter
|
|
await page.locator('input[type="text"]').press('Enter');
|
|
// Click button:has-text("确认创建")
|
|
await page.locator('button:has-text("确认创建")').click();
|
|
await expect(page).toHaveURL(/\/main\/group\/\S{24}\/\S{24}/);
|
|
}
|
|
|
|
/**
|
|
* 删除测试群组
|
|
*/
|
|
async function deleteGroup(page: Page) {
|
|
// Click text=Test
|
|
await page.locator('[data-testid="group-header"]').click();
|
|
// Click text=退出群组
|
|
await page.locator('text=退出群组').click();
|
|
// Click button:has-text("OK")
|
|
await Promise.all([
|
|
page.waitForNavigation(/*{ url: 'http://localhost:11011/main/personal/friends' }*/),
|
|
page.locator('button:has-text("OK")').click(),
|
|
]);
|
|
}
|
|
|
|
test('Create Group', async ({ page }) => {
|
|
await createGroup(page);
|
|
await deleteGroup(page);
|
|
});
|
|
|
|
test('Group Profile', async ({ page }) => {
|
|
await createGroup(page);
|
|
|
|
await page.locator('[data-testid="group-header"]').click();
|
|
// Click text=查看详情
|
|
await page.locator('text=查看详情').click();
|
|
// Click text=群组名称Test >> button
|
|
await page.locator('text=群组名称Test >> button').click();
|
|
// Click text=T群组名称 >> input[type="text"]
|
|
await page.locator('text=T群组名称 >> input[type="text"]').click();
|
|
// Fill text=T群组名称 >> input[type="text"]
|
|
await page
|
|
.locator('text=T群组名称 >> input[type="text"]')
|
|
.fill('Test123');
|
|
// Click button >> nth=4
|
|
await page.locator('button').nth(4).click();
|
|
await expect(page.locator('[data-testid="toast"]')).toHaveText(
|
|
'修改群组名成功'
|
|
);
|
|
|
|
// Click text=面板
|
|
await page.locator('text=面板').click();
|
|
// Click button:has-text("创建面板")
|
|
await page.locator('button:has-text("创建面板")').click();
|
|
// Click input[name="name"]
|
|
await page.locator('input[name="name"]').click();
|
|
// Fill input[name="name"]
|
|
await page.locator('input[name="name"]').fill('Test');
|
|
// Click button:has-text("提 交")
|
|
await page.locator('button:has-text("提 交")').click();
|
|
// Click .ant-tree-treenode.ant-tree-treenode-switcher-open
|
|
await page
|
|
.locator('.ant-tree-treenode.ant-tree-treenode-switcher-open')
|
|
.click();
|
|
// Click [data-testid="full-modal-close"] svg[role="img"]
|
|
await page
|
|
.locator('[data-testid="full-modal-close"] svg[role="img"]')
|
|
.click();
|
|
|
|
await deleteGroup(page);
|
|
});
|
|
});
|
|
});
|