Files
summercms/lagoon/keygen_test.go
Jakub Zych 06bad37c24 test(05-03): add failing tests for Encrypted, key:generate, Laravel decrypt
- Round-trip, fresh nonce, redaction, previous_keys fallback
- LoadAppKey rejects empty/short/undecodable keys
- key:generate prints 32-byte base64; DecryptLaravelPayload fixture
2026-09-18 19:32:30 +02:00

41 lines
904 B
Go

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))
}
}