mirror of
https://seed.radicle.dev/rad:z4D5UCArafTzTQpDZNQRuqswh3ury.git
synced 2026-10-18 19:10:45 +08:00
Show alias errors when creating an identity
The errors weren't reactive state, so the hints never rendered.
This commit is contained in:
@@ -16,10 +16,10 @@
|
|||||||
let notMatchingPassphrases = $state<boolean>();
|
let notMatchingPassphrases = $state<boolean>();
|
||||||
let passphraseRepeat = $state("");
|
let passphraseRepeat = $state("");
|
||||||
let alias = $state("");
|
let alias = $state("");
|
||||||
const errors: { alias: ErrorWrapper[]; passphrase: ErrorWrapper[] } = {
|
const errors = $state<{ alias: ErrorWrapper[]; passphrase: ErrorWrapper[] }>({
|
||||||
alias: [],
|
alias: [],
|
||||||
passphrase: [],
|
passphrase: [],
|
||||||
};
|
});
|
||||||
|
|
||||||
const validatePassphraseRepeat = debounce(() => {
|
const validatePassphraseRepeat = debounce(() => {
|
||||||
if (passphrase !== passphraseRepeat && passphraseRepeat.length !== 0) {
|
if (passphrase !== passphraseRepeat && passphraseRepeat.length !== 0) {
|
||||||
|
|||||||
@@ -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();
|
||||||
|
});
|
||||||
Reference in New Issue
Block a user