mirror of
https://github.com/MeshTender/MeshTender.git
synced 2026-09-02 01:38:17 +00:00
40 lines
1.4 KiB
Go
40 lines
1.4 KiB
Go
//go:build browser
|
|
|
|
package e2e
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/chromedp/chromedp"
|
|
)
|
|
|
|
// TestAdminUsersActionsModal drives the reworked admin users page in a real
|
|
// browser: open a row's Actions dropdown, pick Permissions, and confirm the
|
|
// modal loads the form via htmx — exercising the Bootstrap dropdown + modal +
|
|
// htmx-fragment interaction and asserting the strict CSP isn't tripped (the one
|
|
// thing Go handler tests can't see).
|
|
func TestAdminUsersActionsModal(t *testing.T) {
|
|
srv := newE2EServer(t)
|
|
// login()'s first account bootstraps the manage-users capability, so it can
|
|
// reach /admin/users.
|
|
_, cookie := srv.login(t, "e2eadmin")
|
|
|
|
ctx, cancel, watch := startBrowser(t)
|
|
defer cancel()
|
|
|
|
if err := chromedp.Run(ctx,
|
|
setSessionCookie(cookie),
|
|
chromedp.Navigate(srv.appURL+"/admin/users"),
|
|
chromedp.WaitVisible(`[data-testid="user-row"]`, chromedp.ByQuery),
|
|
chromedp.Click(`[data-testid="user-actions"]`, chromedp.ByQuery), // open the dropdown
|
|
chromedp.WaitVisible(`[data-testid="user-permissions"]`, chromedp.ByQuery),
|
|
chromedp.Click(`[data-testid="user-permissions"]`, chromedp.ByQuery), // open the modal + htmx load
|
|
// The permissions form arrives in the modal via htmx.
|
|
chromedp.WaitVisible(`#user-modal-content input[name="manage_users"]`, chromedp.ByQuery),
|
|
); err != nil {
|
|
t.Fatalf("drive admin users modal: %v", err)
|
|
}
|
|
|
|
watch.assertClean(t)
|
|
}
|