From 5f85938449745a7286979f1ffe35908d7d067c25 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julien=20Valverd=C3=A9?= Date: Mon, 10 Nov 2025 02:16:42 +0100 Subject: [PATCH] Tests --- packages/example/src/routes/form.tsx | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/packages/example/src/routes/form.tsx b/packages/example/src/routes/form.tsx index 409afdf..025c509 100644 --- a/packages/example/src/routes/form.tsx +++ b/packages/example/src/routes/form.tsx @@ -24,17 +24,18 @@ const RegisterFormSchema = Schema.Struct({ }) const RegisterFormSubmitSchema = Schema.Struct({ - ...RegisterFormSchema.fields, email: Schema.transformOrFail( - Schema.encodedSchema(RegisterFormSchema.fields.email), - Schema.typeSchema(RegisterFormSchema.fields.email), + Schema.String, + Schema.String, { decode: (input, _options, ast) => input !== "admin@admin.com" ? ParseResult.succeed(input) - : ParseResult.fail(new ParseResult.Refinement(ast, input, "Predicate", "This email is already in use.")), + : ParseResult.fail(new ParseResult.Type(ast, input, "This email is already in use.")), encode: ParseResult.succeed, }, ), + password: Schema.String, + birth: Schema.OptionFromSelf(Schema.DateTimeUtcFromSelf), }) class RegisterForm extends Effect.Service()("RegisterForm", { @@ -55,7 +56,7 @@ class RegisterForm extends Effect.Service()("RegisterForm", { initialEncodedValue: { email: "", password: "", birth: Option.none() }, onSubmit: Effect.fnUntraced(function*(v) { yield* Effect.sleep("500 millis") - return v + return yield* Schema.decode(RegisterFormSubmitSchema)(v) }), debounce: "500 millis", })