Files
RustProxy/tests/acl_picker_corner_styles.cjs
T
2026-10-20 22:47:13 +02:00

25 lines
1.4 KiB
JavaScript

// Run with: node tests/acl_picker_corner_styles.cjs
// The shared ACL picker must respect all dashboard corner-style presets without
// relying on a separate radius setting or changing its selection behaviour.
"use strict";
const assert = require("node:assert/strict");
const fs = require("node:fs");
const path = require("node:path");
const css = fs.readFileSync(path.resolve(__dirname, "../src/admin/web/style.css"), "utf8");
const parts = [
".acl-picker-details", ".acl-picker-counter", ".acl-picker-option",
".acl-picker-policy", ".acl-picker-tag", ".acl-picker-tag .acl-picker-remove"
];
for (const selector of parts) {
const escaped = selector.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
const block = css.match(new RegExp(`${escaped}\\s*\\{([^}]+)\\}`));
assert.ok(block, `Missing shared picker style: ${selector}`);
assert.match(block[1], /border-radius:\s*var\(--rp-radius-control,\s*[^)]+\);/, `${selector} must use the dashboard control radius`);
}
for (const [preset, radius] of Object.entries({ square: 0, subtle: 4, rounded: 8, extra: 12 })) {
const rule = css.match(new RegExp(`html\\[data-corner-style=${preset}\\]\\s*\\{([^}]+)\\}`));
assert.ok(rule, `Missing corner-style preset: ${preset}`);
assert.match(rule[1], new RegExp(`--rp-radius-control:\\s*${radius}px;`), `Unexpected radius for ${preset}`);
}
console.log("ACL picker corner styles: PASS (six surfaces, four presets, Original fallbacks)");