You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ghost/e2e/tests/admin/analytics/post-analytics/growth.test.ts

56 lines
2.7 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

import {test, expect} from '../../../../helpers/playwright';
import {
AnalyticsOverviewPage,
PostAnalyticsPage,
PostAnalyticsGrowthPage,
MembersPage
} from '../../../../helpers/pages/admin';
// 测试套件Ghost 管理后台 - 文章分析Post Analytics- Growth增长
test.describe('Ghost Admin - Post Analytics - Growth', () => {
// 每个测试开始前的准备工作:导航并打开目标文章的分析页面,再点击 Growth 选项
test.beforeEach(async ({page}) => {
const analyticsOverviewPage = new AnalyticsOverviewPage(page);
await analyticsOverviewPage.goto();
// 在概览页点击最新文章的 analytics 按钮,进入文章分析面板
await analyticsOverviewPage.latestPost.analyticsButton.click();
// TODO 注释保留:理想情况下不应需等待页面完全加载即可点击 growth 链接
const postAnalyticsPage = new PostAnalyticsPage(page);
// 等待文章分析页面加载完成(确保元素可交互)
await postAnalyticsPage.waitForPageLoad();
// 点击 Growth 按钮,进入增长视图
await postAnalyticsPage.growthButton.click();
});
// 测试:空成员卡片应显示 Free members 字样并且数量为 0
test('empty members card', async ({page}) => {
const postAnalyticsPageGrowthPage = new PostAnalyticsGrowthPage(page);
// 断言 members 卡片包含“Free members”标签
await expect(postAnalyticsPageGrowthPage.membersCard).toContainText('Free members');
// 断言成员数量显示为 0空数据场景
await expect(postAnalyticsPageGrowthPage.membersCard).toContainText('0');
});
// 测试:在空成员场景点击“查看成员”应跳转到 Members 页面并显示无匹配结果
test('empty members card - view member', async ({page}) => {
const postAnalyticsPageGrowthPage = new PostAnalyticsGrowthPage(page);
// 点击“查看成员”按钮(应导航到 Members 列表)
await postAnalyticsPageGrowthPage.viewMemberButton.click();
const membersPage = new MembersPage(page);
// 断言 Members 页面显示“无成员匹配”的提示文本
await expect(membersPage.body).toContainText('No members match');
});
// 测试Top sources 卡片在无数据时显示“无来源数据”提示
test('empty top sources card', async ({page}) => {
const postAnalyticsPageGrowthPage = new PostAnalyticsGrowthPage(page);
// 断言 top sources 卡片包含“No sources data available”
await expect(postAnalyticsPageGrowthPage.topSourcesCard).toContainText('No sources data available');
});
});