this repo has no description
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

test(toolbox): cover config validation and generator defaults

+87
+48
toolbox/internal/secrets/config_test.go
··· 1 + package secrets 2 + 3 + import ( 4 + "strings" 5 + "testing" 6 + ) 7 + 8 + func TestParseAndValidateRejectsNegativeRandomLength(t *testing.T) { 9 + config := &Config{ 10 + Secrets: map[string]map[string]SecretSettings{ 11 + "secret/path": { 12 + "PASSWORD": { 13 + Type: "random", 14 + Length: -1, 15 + }, 16 + }, 17 + }, 18 + } 19 + 20 + _, err := ParseAndValidate(config) 21 + if err == nil { 22 + t.Fatal("expected validation error for negative length, got nil") 23 + } 24 + if !strings.Contains(err.Error(), "length must be >= 0") { 25 + t.Fatalf("expected length validation error, got %v", err) 26 + } 27 + } 28 + 29 + func TestParseAndValidateAllowsZeroRandomLength(t *testing.T) { 30 + config := &Config{ 31 + Secrets: map[string]map[string]SecretSettings{ 32 + "secret/path": { 33 + "PASSWORD": { 34 + Type: "random", 35 + Length: 0, 36 + }, 37 + }, 38 + }, 39 + } 40 + 41 + entries, err := ParseAndValidate(config) 42 + if err != nil { 43 + t.Fatalf("expected zero length to be accepted as default, got %v", err) 44 + } 45 + if len(entries) != 1 { 46 + t.Fatalf("expected 1 entry, got %d", len(entries)) 47 + } 48 + }
+39
toolbox/internal/secrets/generator_test.go
··· 1 + package secrets 2 + 3 + import "testing" 4 + 5 + func TestGenerateRandomStringRejectsNonPositiveLength(t *testing.T) { 6 + if _, err := generateRandomString(0); err == nil { 7 + t.Fatal("expected error for zero length, got nil") 8 + } 9 + 10 + if _, err := generateRandomString(-1); err == nil { 11 + t.Fatal("expected error for negative length, got nil") 12 + } 13 + } 14 + 15 + func TestGeneratorUsesDefaultLengthWhenRandomLengthIsZero(t *testing.T) { 16 + generator := NewGenerator(nil) 17 + entry := Entry{ 18 + Path: "secret/path", 19 + DataKey: "PASSWORD", 20 + Settings: SecretSettings{ 21 + Type: "random", 22 + Length: 0, 23 + }, 24 + } 25 + 26 + data, err := generator.Generate(entry) 27 + if err != nil { 28 + t.Fatalf("expected generation to succeed, got %v", err) 29 + } 30 + 31 + value, ok := data["PASSWORD"].(string) 32 + if !ok { 33 + t.Fatalf("expected generated value to be string, got %T", data["PASSWORD"]) 34 + } 35 + 36 + if len(value) != defaultKeyLength { 37 + t.Fatalf("expected generated value length %d, got %d", defaultKeyLength, len(value)) 38 + } 39 + }