import { expect, test } from './authenticated-test.js';

const referencePages = [
  { path: '#/reference/phone', title: '手机号卡旧界面参考' }
];

for (const referencePage of referencePages) {
  /**
   * 代码作用（白话）：规定旧业务移除后仍可查看的静态参考页面，并确保浏览器不会偷偷访问已经删除的旧接口。
   * 关联文件：frontend/src/reference/LegacyReferenceView.js、frontend/src/router/index.js、frontend/tests/legacy-reference.spec.js。
   * 关联逻辑（调用链/数据流）：访问 Hash 路由 -> 静态参考视图渲染 -> Playwright 记录网络请求 -> 断言标题、提示与禁用按钮。
   */
  test(`${referencePage.path} shows a non-interactive reference without legacy API requests`, async ({ page }) => {
    const legacyRequests = [];
    /**
     * 代码作用（白话）：监听被移除的旧接口，测试结束前用空数组断言它们没有被新的静态参考页调用。
     * 关联文件：frontend/src/reference/LegacyReferenceView.js、frontend/tests/legacy-reference.spec.js。
     * 关联逻辑（调用链/数据流）：浏览器请求 -> page.on('request') -> legacyRequests -> 最终断言。
     */
    page.on('request', (request) => {
      if (['/api/wx-phones', '/api/wechat-records'].some((path) => request.url().includes(path))) {
        legacyRequests.push(request.url());
      }
    });

    await page.goto(`/${referencePage.path}`);
    await expect(page.getByRole('heading', { name: referencePage.title })).toBeVisible();
    await expect(page.getByText('旧界面参考，不可操作')).toBeVisible();
    await expect(page.getByRole('button', { name: '新增（参考）' })).toBeDisabled();
    expect(legacyRequests).toEqual([]);
  });
}
