Fix API token detail panel panic

This commit is contained in:
Joe Julian
2026-03-30 14:46:07 -07:00
parent 27fdd77aa1
commit 182b469b0b
2 changed files with 61 additions and 8 deletions
+40
View File
@@ -3,6 +3,7 @@ package main
import (
"bytes"
"errors"
"image"
"io"
"net/http"
"net/http/httptest"
@@ -15,6 +16,7 @@ import (
"gioui.org/io/key"
"gioui.org/layout"
"gioui.org/op"
"gioui.org/unit"
"gioui.org/widget"
@@ -237,6 +239,44 @@ func TestUIAPITokenPolicyRulesCanBeAddedAndRemoved(t *testing.T) {
}
}
func TestUIAPITokenDetailPanelHandlesMissingRemoveClickables(t *testing.T) {
t.Parallel()
u := newUIWithSession("desktop", &session.Manager{})
u.masterPassword.SetText("correct horse battery staple")
if err := u.createVaultAction(); err != nil {
t.Fatalf("createVaultAction() error = %v", err)
}
u.showAPITokensSection()
u.apiTokenName.SetText("CLI")
u.apiTokenClientName.SetText("grpc-cli")
if err := u.issueAPITokenAction(); err != nil {
t.Fatalf("issueAPITokenAction() error = %v", err)
}
u.apiPolicyOperation.SetText(string(apitokens.OperationListEntries))
u.apiPolicyPath.SetText("Crew / codex")
u.apiPolicyAllow.Value = true
u.apiPolicyGroupScopeW.Value = true
if err := u.addAPIPolicyRuleAction(); err != nil {
t.Fatalf("addAPIPolicyRuleAction() error = %v", err)
}
u.apiPolicyRemoves = nil
ops := new(op.Ops)
gtx := layout.Context{
Ops: ops,
Constraints: layout.Exact(image.Pt(800, 600)),
}
defer func() {
if r := recover(); r != nil {
t.Fatalf("apiTokenDetailPanel() panicked: %v", r)
}
}()
_ = u.apiTokenDetailPanel(gtx)
}
func TestUIAPIAuditSectionShowsRecordedEvents(t *testing.T) {
t.Parallel()