tauri-app: settings view + profile polish

- App.svelte: new 'settings' view with account/actions/about sections,
  sign-out button, pdsBase()/appviewBase() helpers, showError wired
  into logout, profile gains open-in-browser + sign-out + recent-posts
  heading
- NavRail: add settings item + gear icon, View union extended to 5
- tests: NavRail.test.ts now expects 5 buttons + covers settings click,
  NavRailHarness View type extended
This commit is contained in:
tomdebone
2026-07-07 18:52:10 +02:00
parent 550b89673d
commit 43fc889d47
4 changed files with 209 additions and 8 deletions
@@ -29,10 +29,10 @@ async function mountHarness() {
}
describe("NavRail (callback-prop pattern)", () => {
it("renders 4 buttons with home active", async () => {
it("renders 5 buttons with home active", async () => {
await mountHarness();
const btns = target.querySelectorAll("button.rail__btn");
expect(btns.length).toBe(4);
expect(btns.length).toBe(5);
expect(btns[0].classList.contains("active")).toBe(true);
expect(target.querySelector('[data-testid="view-value"]')?.textContent).toBe("home");
});
@@ -56,5 +56,10 @@ describe("NavRail (callback-prop pattern)", () => {
await tick();
expect(target.querySelector('[data-testid="view-value"]')?.textContent).toBe("profile");
expect(btns[2].classList.contains("active")).toBe(true);
btns[4].dispatchEvent(new MouseEvent("click", { bubbles: true }));
await tick();
expect(target.querySelector('[data-testid="view-value"]')?.textContent).toBe("settings");
expect(btns[4].classList.contains("active")).toBe(true);
});
});