Scope the entrypoint edit check's buttons; fit the type row at 360px
check / check (push) Waiting to run

The browser test's entrypoint edit check clicked any Cancel and Save
on the page, which now also match the add target form's hidden
buttons, so the clicks timed out. It finds them inside the edit form.

The type choice takes p-2 and flex-1 in place of w-32, so it, Next
and Cancel share one row on a 360px-wide phone with "Database" shown
in full.

Model: opus-5-5
This commit is contained in:
2026-10-02 20:01:04 +00:00
parent 68122e1f95
commit f2dfa9bfac
2 changed files with 10 additions and 4 deletions
+6 -2
View File
@@ -484,9 +484,13 @@ func checkEntrypointEdit(
) { ) {
t.Helper() t.Helper()
// Cancel and Save are found inside the edit form, since the add
// target form has buttons of the same names.
const ( const (
editForm = `form[action$="/edit"]` editForm = `form[action$="/edit"]`
input = editForm + ` input[name="description"]` input = editForm + ` input[name="description"]`
cancelEdit = `//form[contains(@action, "/edit")]/button[text()="Cancel"]`
saveEdit = `//form[contains(@action, "/edit")]/button[text()="Save"]`
description = `//span[text()="Entrypoint"]` description = `//span[text()="Entrypoint"]`
edit = `//button[text()="Edit"]` edit = `//button[text()="Edit"]`
) )
@@ -507,7 +511,7 @@ func checkEntrypointEdit(
require.NoError(t, chromedp.Run( require.NoError(t, chromedp.Run(
ctx, chromedp.SendKeys(input, "draft", chromedp.ByQuery), ctx, chromedp.SendKeys(input, "draft", chromedp.ByQuery),
)) ))
click(ctx, t, `//button[text()="Cancel"]`) click(ctx, t, cancelEdit)
assert.True(t, hidden(ctx, editForm), assert.True(t, hidden(ctx, editForm),
"clicking Cancel does not hide the edit form") "clicking Cancel does not hide the edit form")
assert.True(t, shown(ctx, description), assert.True(t, shown(ctx, description),
@@ -549,7 +553,7 @@ func checkEntrypointEdit(
require.NoError(t, chromedp.Run( require.NoError(t, chromedp.Run(
ctx, chromedp.SendKeys(input, "Billing sender", chromedp.ByQuery), ctx, chromedp.SendKeys(input, "Billing sender", chromedp.ByQuery),
)) ))
click(ctx, t, `//button[text()="Save"]`) click(ctx, t, saveEdit)
assert.True(t, shown(ctx, `//span[text()="Billing sender"]`), assert.True(t, shown(ctx, `//span[text()="Billing sender"]`),
"saving the edit form does not change the description") "saving the edit form does not change the description")
+4 -2
View File
@@ -133,11 +133,13 @@
and the hidden type field submitted with them, exist and the hidden type field submitted with them, exist
only while that type is chosen. A refused submission only while that type is chosen. A refused submission
comes back open on its type, with the values entered; comes back open on its type, with the values entered;
Cancel empties the form. --> Cancel empties the form. The type choice's p-2, narrower
than an input's own padding, keeps it, Next and Cancel on
one row on a 360px-wide phone. -->
<form method="POST" action="/hook/{{.Webhook.ID}}/targets" x-ref="form"> <form method="POST" action="/hook/{{.Webhook.ID}}/targets" x-ref="form">
<input type="hidden" name="csrf_token" value="{{.CSRFToken}}"> <input type="hidden" name="csrf_token" value="{{.CSRFToken}}">
<div x-show="choosing" x-cloak class="p-4 bg-gray-50 border-b border-gray-200 flex flex-wrap gap-2"> <div x-show="choosing" x-cloak class="p-4 bg-gray-50 border-b border-gray-200 flex flex-wrap gap-2">
<select x-ref="type" aria-label="Target type" class="input text-sm w-32"> <select x-ref="type" aria-label="Target type" class="input text-sm p-2 flex-1">
<option value="http">HTTP</option> <option value="http">HTTP</option>
<option value="slack">Slack</option> <option value="slack">Slack</option>
<option value="database">Database</option> <option value="database">Database</option>