Show alias errors when creating an identity

The errors weren't reactive state, so the hints never rendered.
This commit is contained in:
Rūdolfs Ošiņš
2026-10-01 18:20:24 +02:00
parent a178aaade2
commit 5d8bc00f13
2 changed files with 35 additions and 2 deletions
+2 -2
View File
@@ -16,10 +16,10 @@
let notMatchingPassphrases = $state<boolean>();
let passphraseRepeat = $state("");
let alias = $state("");
const errors: { alias: ErrorWrapper[]; passphrase: ErrorWrapper[] } = {
const errors = $state<{ alias: ErrorWrapper[]; passphrase: ErrorWrapper[] }>({
alias: [],
passphrase: [],
};
});
const validatePassphraseRepeat = debounce(() => {
if (passphrase !== passphraseRepeat && passphraseRepeat.length !== 0) {
+33
View File
@@ -0,0 +1,33 @@
import { expect, test } from "@tests/support/fixtures.js";
test("explains why an alias is invalid", async ({ page }) => {
await page.route(
url => url.pathname === "/startup",
route =>
route.fulfill({
status: 500,
json: {
code: "IdentityError.MissingProfile",
message: "No profile found",
},
}),
);
await page.goto("/");
const alias = page.getByPlaceholder("Enter desired alias");
await alias.fill("has space");
await expect(
page.getByText("Alias cannot contain whitespace."),
).toBeVisible();
await alias.fill("a".repeat(33));
await expect(
page.getByText("Alias is too long, max 32 characters."),
).toBeVisible();
await expect(page.getByText("Alias cannot contain whitespace.")).toBeHidden();
await alias.fill("alice");
await expect(
page.getByText("Max 32 characters, no whitespace."),
).toBeVisible();
});