Compare commits

..

No commits in common. "5f3ea044693a9b4a3635dbd9756105a39a9b8487" and "04c1b0ae79ab2bb46f507fb2c96e304628414a7f" have entirely different histories.

2 changed files with 7 additions and 35 deletions

View File

@ -91,7 +91,6 @@ type dashModel struct {
self string // path to this binary, for re-invoking subcommands
auth checks.AuthStatus
authChecked bool // true once the first auth result has arrived
docker dockerMsg
drift driftMsg
repos repoMsg
@ -326,7 +325,6 @@ func (m dashModel) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
}
case authMsg:
m.auth = checks.AuthStatus(msg)
m.authChecked = true
m.lastRefresh = time.Now()
case dockerMsg:
m.docker = msg
@ -584,23 +582,17 @@ func (m dashModel) footer() string {
func (m dashModel) authPanel() string {
var s strings.Builder
s.WriteString(headerStyle.Render("AWS AUTH") + "\n")
switch {
case !m.authChecked:
s.WriteString(dimStyle.Render("checking…"))
case m.auth.Authed:
if m.auth.Authed {
mark := okStyle.Render("✓ authed")
// Warn when the session expires within 30 min.
if !m.auth.Expires.IsZero() && time.Until(m.auth.Expires) < 30*time.Minute {
mark = badStyle.Render("⚠ expiring")
}
s.WriteString(mark + dimStyle.Render(" "+m.auth.Detail))
default:
// Not authed: awsmfa errored, or the session is gone/expired.
detail := m.auth.Err
if detail == "" {
detail = m.auth.Detail
}
s.WriteString(badStyle.Render("✗ re-auth needed") + "\n" + dimStyle.Render(truncate(detail, 70)))
} else if m.auth.Err != "" {
s.WriteString(badStyle.Render("✗ re-auth needed") + "\n" + dimStyle.Render(truncate(m.auth.Err, 70)))
} else {
s.WriteString(dimStyle.Render("checking…"))
}
return s.String()
}

View File

@ -38,26 +38,6 @@ func TestDashViewRenders(t *testing.T) {
}
}
func TestAuthPanelExpiredShowsReauth(t *testing.T) {
m := newDash([]string{"/tmp"}, "/x/awsmfa", "", 10*time.Second)
// Before any check result has arrived, the panel shows the spinner.
if !strings.Contains(m.View(), "checking…") {
t.Errorf("initial panel should show checking…\n---\n%s", m.authPanel())
}
// Expired session: awsmfa printed "Not authenticated." → Authed false, Err empty.
um, _ := m.Update(authMsg(checks.AuthStatus{Authed: false, Detail: "Not authenticated."}))
m = um.(dashModel)
got := m.authPanel()
if strings.Contains(got, "checking…") {
t.Errorf("expired session still shows checking…\n---\n%s", got)
}
if !strings.Contains(got, "re-auth needed") {
t.Errorf("expired session should show re-auth needed\n---\n%s", got)
}
}
func names(items []suggestion) string {
var b strings.Builder
for _, it := range items {