test: Add edge case for initializeBootstrapToken error path
Cover loadOrCreateBootstrapToken failure path. Coverage: initializeBootstrapToken 92% -> 100%
This commit is contained in:
parent
a5f0482d97
commit
c57c07f827
1 changed files with 30 additions and 0 deletions
|
|
@ -403,6 +403,36 @@ func TestInitializeBootstrapToken_NilConfig(t *testing.T) {
|
||||||
r.initializeBootstrapToken()
|
r.initializeBootstrapToken()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestInitializeBootstrapToken_LoadOrCreateFails(t *testing.T) {
|
||||||
|
if runtime.GOOS == "windows" {
|
||||||
|
t.Skip("permission tests not reliable on Windows")
|
||||||
|
}
|
||||||
|
if os.Getuid() == 0 {
|
||||||
|
t.Skip("cannot test permission errors as root")
|
||||||
|
}
|
||||||
|
|
||||||
|
// Create a temp directory with a file where the data path expects a directory
|
||||||
|
tmpDir := t.TempDir()
|
||||||
|
blockingFile := filepath.Join(tmpDir, "blocked")
|
||||||
|
if err := os.WriteFile(blockingFile, []byte("block"), 0o600); err != nil {
|
||||||
|
t.Fatalf("failed to create blocking file: %v", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
// DataPath points to a file, so MkdirAll will fail inside loadOrCreateBootstrapToken
|
||||||
|
cfg := &config.Config{DataPath: blockingFile}
|
||||||
|
r := &Router{config: cfg}
|
||||||
|
|
||||||
|
// Should not panic, but should fail and leave bootstrapTokenHash empty
|
||||||
|
r.initializeBootstrapToken()
|
||||||
|
|
||||||
|
if r.bootstrapTokenHash != "" {
|
||||||
|
t.Errorf("expected empty bootstrapTokenHash when loadOrCreateBootstrapToken fails, got %q", r.bootstrapTokenHash)
|
||||||
|
}
|
||||||
|
if r.bootstrapTokenPath != "" {
|
||||||
|
t.Errorf("expected empty bootstrapTokenPath when loadOrCreateBootstrapToken fails, got %q", r.bootstrapTokenPath)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func TestInitializeBootstrapToken_OIDCEnabled(t *testing.T) {
|
func TestInitializeBootstrapToken_OIDCEnabled(t *testing.T) {
|
||||||
tmpDir := t.TempDir()
|
tmpDir := t.TempDir()
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue