Remove the Settings cog and its Preferences menu from the sidebar footer
CI / full-gate (push) Successful in 2m37s

This commit is contained in:
2026-08-05 00:08:35 +02:00
parent 7948596105
commit 8f7ab55267
9 changed files with 7 additions and 14 deletions
-2
View File
@@ -151,9 +151,7 @@ const messages = {
"shell.guest": "Guest",
"shell.mainNav": "Main navigation",
"shell.openMenu": "Open menu",
"shell.preferences": "Preferences",
"shell.profile": "Profile",
"shell.settings": "Settings",
"shell.sidebar": "Primary",
"shell.signedInAs": "Signed in as {{name}}",
"shell.signIn": "Sign in",
-2
View File
@@ -137,9 +137,7 @@ const messages: CoreMessages = {
"shell.guest": "Gäst",
"shell.mainNav": "Huvudmeny",
"shell.openMenu": "Öppna menyn",
"shell.preferences": "Inställningar",
"shell.profile": "Profil",
"shell.settings": "Inställningar",
"shell.sidebar": "Primär",
"shell.signedInAs": "Inloggad som {{name}}",
"shell.signIn": "Logga in",
-1
View File
@@ -16,7 +16,6 @@ export const ICON_NAMES: Record<string, string> = {
"i-copy": "copy",
"i-download": "download",
"i-edit": "pencil",
"i-gear": "settings",
"i-globe": "globe",
"i-grid": "layout-grid",
"i-kebab": "ellipsis-vertical",
+4
View File
@@ -40,6 +40,9 @@ test("app shell renders sidebar, topbar and the content slot", async () => {
assert.match(html, /<form class="menu-item-form" method="post" action="\/logout">/);
assert.match(html, /<input type="hidden" name="_csrf" value="tok\.sig" \/>/);
// The footer carries the profile and the language picker only — no settings/preferences menu.
assert.doesNotMatch(html, /i-gear|Preferences/);
// Branding, document title, and the inlined icon sprite (so <use> resolves).
assert.match(html, /Acme Console/);
assert.match(html, /<title>People<\/title>/);
@@ -51,6 +54,7 @@ test("app shell offers Sign in (not Sign out) to an anonymous visitor — so a p
const html = await render({ title: "Overview", brand: { name: "Acme" }, nav: "", body: "x" }); // no user, no signInHref → default
assert.match(html, /href="\/login"[^>]*>[\s\S]*?Sign in/); // a path to sign in (default target)
assert.doesNotMatch(html, /action="\/logout"/); // a guest has no session to end
assert.doesNotMatch(html, /i-gear|Preferences/); // nor any settings menu to open
// When chrome supplies signInHref (the current page as return_to), the link carries it.
const withReturn = await render({ title: "Overview", brand: { name: "Acme" }, nav: "", body: "x", signInHref: "/login?return_to=%2Fscheduling" });