MCPcopy Create free account
hub / github.com/basecamp/hey-cli / TestTokenRefreshOnExpiry

Function TestTokenRefreshOnExpiry

internal/auth/auth_test.go:88–131  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

86}
87
88func TestTokenRefreshOnExpiry(t *testing.T) {
89 refreshCalls := 0
90 server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
91 if r.URL.Path != "/oauth/tokens" {
92 t.Fatalf("unexpected path: %s", r.URL.Path)
93 }
94 refreshCalls++
95 resp := OAuthToken{
96 AccessToken: "refreshed-token",
97 RefreshToken: "new-refresh",
98 ExpiresIn: 3600,
99 }
100 w.Header().Set("Content-Type", "application/json")
101 json.NewEncoder(w).Encode(resp)
102 }))
103 defer server.Close()
104
105 t.Setenv("HEY_TOKEN", "")
106 mgr := testManager(t, server)
107
108 // Save credentials that are expired (ExpiresAt in the past)
109 expired := &Credentials{
110 AccessToken: "old-token",
111 RefreshToken: "refresh-tok",
112 ExpiresAt: time.Now().Unix() - 600,
113 OAuthType: "oauth",
114 TokenEndpoint: fmt.Sprintf("%s/oauth/tokens", server.URL),
115 }
116 if err := mgr.GetStore().Save(mgr.CredentialKey(), expired); err != nil {
117 t.Fatalf("Save: %v", err)
118 }
119
120 token, err := mgr.AccessToken(context.Background())
121 if err != nil {
122 t.Fatalf("AccessToken: %v", err)
123 }
124
125 if token != "refreshed-token" {
126 t.Errorf("token = %q, want %q", token, "refreshed-token")
127 }
128 if refreshCalls != 1 {
129 t.Errorf("refresh calls = %d, want 1", refreshCalls)
130 }
131}

Callers

nothing calls this directly

Calls 5

testManagerFunction · 0.85
GetStoreMethod · 0.80
CredentialKeyMethod · 0.80
AccessTokenMethod · 0.80
SaveMethod · 0.45

Tested by

no test coverage detected