feat: add market row selection column

This commit is contained in:
2026-04-23 18:20:52 +08:00
parent 45e5bb781b
commit 91d8347b76
2 changed files with 126 additions and 7 deletions
+22 -1
View File
@@ -39,6 +39,9 @@ describe("market-dom-sync", () => {
const table = syncMarketTable(document);
expect(table).not.toBeNull();
expect(
document.querySelector('[data-market-header-cell="selection"]')
).not.toBeNull();
expect(
document.querySelector('[data-market-header-cell="singleVideoAfterSearchRate"]')
).not.toBeNull();
@@ -63,7 +66,9 @@ describe("market-dom-sync", () => {
expect(
document.querySelector('[data-market-header-cell="cpSearch"]')
).not.toBeNull();
expect(document.querySelectorAll("[data-market-row-cell]").length).toBe(16);
expect(document.querySelectorAll("[data-market-row-cell]").length).toBe(18);
expect(table?.headerSelectionCheckbox).not.toBeNull();
expect(table?.rows[0]?.selectionCheckbox).not.toBeNull();
});
test("renders loading, success, missing, and failed states", () => {
@@ -170,7 +175,11 @@ describe("market-dom-sync", () => {
throw new Error("Expected market table");
}
expect(table.headerSelectionCheckbox).not.toBeNull();
expect(table.rows[0]?.selectionCheckbox).not.toBeNull();
expect(readRightHeaderTexts()).toEqual(["21-60s报价", "操作"]);
expect(readSelectionHeaderText()).toBe("全选");
expect(readSelectionRowCheckboxCount()).toBe(2);
expect(readPluginHeaderTexts()).toEqual([
"单视频看后搜率",
"个人视频看后搜率",
@@ -926,6 +935,18 @@ function readScrollHintText() {
);
}
function readSelectionHeaderText() {
return (
document
.querySelector('[data-market-header-cell="selection"]')
?.textContent?.trim() ?? ""
);
}
function readSelectionRowCheckboxCount() {
return document.querySelectorAll('[data-market-selection-checkbox="row"]').length;
}
function readAuthorNames() {
const authorColumn = document.querySelector(
'[data-testid="author-section"] .content-column'