package lagoon import ( "bytes" "context" "encoding/base64" "strings" "testing" "git.golem15.com/golem15/summercms/bonfire" ) func TestEncryptedKeyGeneratePrints32ByteBase64(t *testing.T) { cmd := KeyGenerateCommand() if cmd.Name != "key:generate" { t.Fatalf("Name = %q", cmd.Name) } if cmd.Run == nil { t.Fatal("Run is nil") } var buf bytes.Buffer out := bonfire.NewOutput(strings.NewReader(""), &buf, &buf) if err := cmd.Run(context.Background(), nil, out); err != nil { t.Fatal(err) } line := strings.TrimSpace(buf.String()) fields := strings.Fields(line) if len(fields) == 0 { t.Fatal("key:generate produced no output") } encoded := fields[len(fields)-1] raw, err := base64.StdEncoding.DecodeString(encoded) if err != nil { t.Fatalf("output %q is not base64: %v", encoded, err) } if len(raw) != 32 { t.Fatalf("decoded key length = %d, want 32", len(raw)) } }