31 lines
2.3 KiB
JavaScript
31 lines
2.3 KiB
JavaScript
import assert from "node:assert/strict";
|
|
import { readFileSync } from "node:fs";
|
|
import { fileURLToPath } from "node:url";
|
|
|
|
const pagePath = fileURLToPath(new URL("../src/features/addressbook/AddressBookPage.tsx", import.meta.url));
|
|
const stylesPath = fileURLToPath(new URL("../src/styles/addresses.css", import.meta.url));
|
|
const page = readFileSync(pagePath, "utf8");
|
|
const styles = readFileSync(stylesPath, "utf8");
|
|
|
|
assert.match(page, /SegmentedControl,[\s\S]*SelectionList,[\s\S]*SelectionListItem,[\s\S]*from "@govoplan\/core-webui"/);
|
|
assert.match(page, /<SelectionList label="Contacts" className="address-contact-selection-list">/);
|
|
assert.match(page, /<SelectionListItem[\s\S]*selected=\{selected\}[\s\S]*className=\{`address-contact-row/);
|
|
assert.match(page, /draggable=\{!contact\.deleted_at && !saving\}/);
|
|
assert.match(page, /<SelectionList label="Discovered CardDAV address books" className="address-sync-result-list">/);
|
|
assert.match(page, /selected=\{cardDavForm\.collection_url === item\.collection_url\}/);
|
|
assert.match(page, /<SegmentedControl<ConflictMergeChoice>[\s\S]*role="group"[\s\S]*value=\{conflictMergeChoices\[row\.field\] \?\? "local"\}/);
|
|
assert.doesNotMatch(page, /<button[\s\S]{0,160}(?:address-contact-row|address-sync-result-row)/);
|
|
assert.doesNotMatch(styles, /\.address-conflict-choice button/);
|
|
assert.doesNotMatch(styles, /\.address-contact-row:(?:hover|focus-visible)/);
|
|
assert.match(page, /<PageActionBar[\s\S]*variant="collection"[\s\S]*reloadAction=[\s\S]*createAction=/);
|
|
assert.doesNotMatch(page, /renderSelectedBookActions|address-icon-actions/);
|
|
assert.match(page, /renderAddressActions\(\)/);
|
|
assert.match(page, /<FormSection variant="separated" title="i18n:govoplan-addresses\.explorer\.archive_section"/);
|
|
const openTreeNode = page.slice(page.indexOf(" function openTreeNode("), page.indexOf(" function toggleTreeNode("));
|
|
assert.doesNotMatch(openTreeNode, /toggleTreeNode\(/, "Labels only select, never expand or collapse.");
|
|
assert.match(openTreeNode, /setSelectedTreeGroup\(\{ id: node\.id, label: node\.label \}\)/);
|
|
assert.match(page, /selectedTreeGroup\?\.id \?\?/);
|
|
assert.match(page, /if \(!previousBranchIds\.has\(id\)\) next\.add\(id\)/, "Reload preserves collapsed branches.");
|
|
|
|
console.log("Address-book flat selections use central components.");
|