mirror of
https://github.com/rcourtman/Pulse.git
synced 2026-10-19 02:28:59 +00:00
Cover setup token access for SSH endpoints
This commit is contained in:
parent
f9489db9e0
commit
e0e4d24428
1 changed files with 45 additions and 0 deletions
|
|
@ -2742,3 +2742,48 @@ func TestStateRequiresMonitoringReadScope(t *testing.T) {
|
|||
t.Fatalf("expected missing scope response to mention %q, got %q", config.ScopeMonitoringRead, rec.Body.String())
|
||||
}
|
||||
}
|
||||
|
||||
func TestVerifyTemperatureSSHAllowsSetupToken(t *testing.T) {
|
||||
cfg := newTestConfigWithTokens(t)
|
||||
router := NewRouter(cfg, nil, nil, nil, nil, "1.0.0")
|
||||
|
||||
token := "0123456789abcdef0123456789abcdef"
|
||||
tokenHash := auth.HashAPIToken(token)
|
||||
router.configHandlers.codeMutex.Lock()
|
||||
router.configHandlers.setupCodes[tokenHash] = &SetupCode{ExpiresAt: time.Now().Add(time.Minute)}
|
||||
router.configHandlers.codeMutex.Unlock()
|
||||
|
||||
req := httptest.NewRequest(http.MethodPost, "/api/system/verify-temperature-ssh", strings.NewReader(`{"nodes":""}`))
|
||||
req.Header.Set("X-Setup-Token", token)
|
||||
rec := httptest.NewRecorder()
|
||||
router.Handler().ServeHTTP(rec, req)
|
||||
if rec.Code != http.StatusOK {
|
||||
t.Fatalf("expected 200 with setup token, got %d", rec.Code)
|
||||
}
|
||||
if !strings.Contains(rec.Body.String(), "No nodes to verify") {
|
||||
t.Fatalf("expected verify response, got %q", rec.Body.String())
|
||||
}
|
||||
}
|
||||
|
||||
func TestSSHConfigAllowsSetupToken(t *testing.T) {
|
||||
cfg := newTestConfigWithTokens(t)
|
||||
router := NewRouter(cfg, nil, nil, nil, nil, "1.0.0")
|
||||
t.Setenv("HOME", t.TempDir())
|
||||
|
||||
token := "abcdef0123456789abcdef0123456789"
|
||||
tokenHash := auth.HashAPIToken(token)
|
||||
router.configHandlers.codeMutex.Lock()
|
||||
router.configHandlers.setupCodes[tokenHash] = &SetupCode{ExpiresAt: time.Now().Add(time.Minute)}
|
||||
router.configHandlers.codeMutex.Unlock()
|
||||
|
||||
req := httptest.NewRequest(http.MethodPost, "/api/system/ssh-config", strings.NewReader("Host example\nHostname example\n"))
|
||||
req.Header.Set("X-Setup-Token", token)
|
||||
rec := httptest.NewRecorder()
|
||||
router.Handler().ServeHTTP(rec, req)
|
||||
if rec.Code != http.StatusOK {
|
||||
t.Fatalf("expected 200 with setup token, got %d", rec.Code)
|
||||
}
|
||||
if !strings.Contains(rec.Body.String(), `"success":true`) {
|
||||
t.Fatalf("expected success response, got %q", rec.Body.String())
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue