- Implemented SharePanel component in `SharePanel.astro` for sharing content on social media platforms. - Integrated QR code generation for WeChat sharing using the `qrcode` library. - Added localization support for English and Chinese languages. - Created utility functions in `seo.ts` for building article summaries and FAQs. - Introduced API routes for serving IndexNow key and generating full LLM catalog and summaries. - Enhanced SEO capabilities with structured data for articles and pages.
44 lines
1.3 KiB
TypeScript
44 lines
1.3 KiB
TypeScript
import { expect, type APIRequestContext, type Page } from '@playwright/test'
|
||
|
||
export const MOCK_BASE_URL = 'http://127.0.0.1:5159'
|
||
export const ADMIN_COOKIE = {
|
||
name: 'termi_admin_session',
|
||
value: 'mock-admin-session',
|
||
domain: '127.0.0.1',
|
||
path: '/',
|
||
}
|
||
|
||
export async function resetMockState(request: APIRequestContext) {
|
||
const response = await request.post(`${MOCK_BASE_URL}/__playwright/reset`)
|
||
expect(response.ok()).toBeTruthy()
|
||
}
|
||
|
||
export async function getDebugState(request: APIRequestContext) {
|
||
const response = await request.get(`${MOCK_BASE_URL}/__playwright/state`)
|
||
expect(response.ok()).toBeTruthy()
|
||
return response.json()
|
||
}
|
||
|
||
export async function patchAdminSiteSettings(
|
||
request: APIRequestContext,
|
||
payload: Record<string, unknown>,
|
||
) {
|
||
const response = await request.patch(`${MOCK_BASE_URL}/api/admin/site-settings`, {
|
||
headers: {
|
||
cookie: `${ADMIN_COOKIE.name}=${ADMIN_COOKIE.value}`,
|
||
},
|
||
data: payload,
|
||
})
|
||
expect(response.ok()).toBeTruthy()
|
||
return response.json()
|
||
}
|
||
|
||
export async function loginAdmin(page: Page) {
|
||
await page.goto('/login')
|
||
await page.getByLabel('用户名').fill('admin')
|
||
await page.getByLabel('密码').fill('admin123')
|
||
await page.getByRole('button', { name: '进入后台' }).click()
|
||
await expect(page).toHaveURL(/\/$/)
|
||
await expect(page.getByText('当前登录:admin')).toBeVisible()
|
||
}
|