opencode 8f44e157f1 feat: add market page div-grid support with after-search-rate columns
- Support both HTML table and div-based grid layouts on creator/market
- Harden DOM insertion by using actual parent nodes (prevents NotFoundError
  when page nesting differs from test fixtures)
- Skip malformed/empty table rows instead of throwing on missing action cell
- Add rowKey to BatchLoaderRow to align LoadRowsOptions typing
- Add tests for div-grid sync and controller lifecycle at document_start
2026-04-15 18:04:10 +08:00
..
2026-04-15 15:17:42 +08:00
2026-04-15 15:17:42 +08:00
2026-04-15 15:17:42 +08:00
2026-04-15 15:17:42 +08:00

import { readFile } from "node:fs/promises";
import path from "node:path";
import { fileURLToPath } from "node:url";
import { describe, expect, test } from "vitest";

const __dirname = path.dirname(fileURLToPath(import.meta.url));
const readmePath = path.resolve(__dirname, "..", "README.md");

describe("README", () => {
  test("documents setup, build, detail verification, and market-page verification", async () => {
    const readme = await readFile(readmePath, "utf8");

    expect(readme).toContain("npm install");
    expect(readme).toContain("npm test");
    expect(readme).toContain("npm run build");
    expect(readme).toContain("chrome://extensions");
    expect(readme).toContain("dist/");
    expect(readme).toContain("DevTools Console");
    expect(readme).toContain("达人详情页");
    expect(readme).toContain("creator/market");
    expect(readme).toContain("单视频看后搜率");
    expect(readme).toContain("个人视频看后搜率");
    expect(readme).toContain("加载中...");
    expect(readme).toContain("加载失败");
    expect(readme).toContain("点击任一失败单元格");
    expect(readme).toContain("详情页控制台实验");
  });
});