From f122df59fb5482162e72a131d40403fbf57a5bf3 Mon Sep 17 00:00:00 2001 From: "kacaii.dev" Date: Wed, 6 May 2026 21:03:31 -0300 Subject: [PATCH] =?UTF-8?q?=E2=9C=85=20query=20submit=20button?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/client/page/login.gleam | 1 + test/client_test/page_test/login_test.gleam | 12 ++++++++++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/client/page/login.gleam b/src/client/page/login.gleam index f1ed2b9..235fd2d 100644 --- a/src/client/page/login.gleam +++ b/src/client/page/login.gleam @@ -197,6 +197,7 @@ pub fn view(model: Model, lang: lang.Language) -> element.Element(Msg) { html.button( [ event.on_click(UserClickedSubmit), + attr.id("submit"), attr.disabled(disabled), attr.aria_busy(model.loading), class("w-full"), diff --git a/test/client_test/page_test/login_test.gleam b/test/client_test/page_test/login_test.gleam index a92b62e..569485c 100644 --- a/test/client_test/page_test/login_test.gleam +++ b/test/client_test/page_test/login_test.gleam @@ -1,12 +1,15 @@ +import client/language import client/page/login import client/session import client/user/role import client_test/dummy import gleam/list +import lustre/dev/query import lustre/effect import rsvp pub fn submit_test() -> Nil { + let model = login.init let email = "bfd@email.dev" let password = "root" @@ -17,7 +20,7 @@ pub fn submit_test() -> Nil { ] let #(model, _) = { - use acc, msg <- list.fold(over: sequence, from: #(login.init, effect.none())) + use acc, msg <- list.fold(over: sequence, from: #(model, effect.none())) let assert login.Continue(model, _) = login.update(acc.0, msg) #(model, effect.none()) @@ -25,7 +28,12 @@ pub fn submit_test() -> Nil { assert model.email == email assert model.password == password - assert model.loading == True as "wait for server response" + assert model.loading == True + + let html = login.view(model, language.English) + let button = query.id("submit") + let busy = query.aria("busy", "true") + assert query.has(in: html, matching: query.and(button, busy)) Nil } -- 2.51.2