test: Add edge case for ensureSettingsWriteScope valid scope
Tests the code path when an API token has the settings:write scope, which allows the operation to proceed.
This commit is contained in:
parent
8597eca010
commit
b5d42f6e2e
1 changed files with 31 additions and 0 deletions
|
|
@ -418,6 +418,37 @@ func TestResetLockoutRequiresSettingsScope(t *testing.T) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestEnsureSettingsWriteScopeWithValidScope(t *testing.T) {
|
||||||
|
dataDir := t.TempDir()
|
||||||
|
|
||||||
|
rawToken := strings.Repeat("ab", 32)
|
||||||
|
record, err := config.NewAPITokenRecord(rawToken, "admin-token", []string{config.ScopeSettingsWrite})
|
||||||
|
if err != nil {
|
||||||
|
t.Fatalf("new token record: %v", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
cfg := &config.Config{
|
||||||
|
DataPath: dataDir,
|
||||||
|
ConfigPath: dataDir,
|
||||||
|
APITokens: []config.APITokenRecord{*record},
|
||||||
|
APITokenEnabled: true,
|
||||||
|
}
|
||||||
|
cfg.SortAPITokens()
|
||||||
|
|
||||||
|
req := httptest.NewRequest(http.MethodPost, "/api/security/test", nil)
|
||||||
|
attachAPITokenRecord(req, record)
|
||||||
|
|
||||||
|
rr := httptest.NewRecorder()
|
||||||
|
result := ensureSettingsWriteScope(rr, req)
|
||||||
|
|
||||||
|
if !result {
|
||||||
|
t.Error("ensureSettingsWriteScope should return true when token has settings:write scope")
|
||||||
|
}
|
||||||
|
if rr.Code != http.StatusOK {
|
||||||
|
t.Errorf("expected no error response, got status %d", rr.Code)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func TestValidateBcryptHash(t *testing.T) {
|
func TestValidateBcryptHash(t *testing.T) {
|
||||||
tests := []struct {
|
tests := []struct {
|
||||||
name string
|
name string
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue