Files
2026-09-03 08:36:04 +05:30

68 lines
1.5 KiB
Go

package secrets
import "testing"
func TestEncryptDecryptRoundTrip(t *testing.T) {
box, err := New("test-secret-key")
if err != nil {
t.Fatalf("New: %v", err)
}
plaintext := "root@pam!ferrum-token-secret-value"
ciphertext, err := box.Encrypt(plaintext)
if err != nil {
t.Fatalf("Encrypt: %v", err)
}
if ciphertext == plaintext {
t.Fatal("ciphertext must not equal plaintext")
}
decrypted, err := box.Decrypt(ciphertext)
if err != nil {
t.Fatalf("Decrypt: %v", err)
}
if decrypted != plaintext {
t.Fatalf("decrypted = %q, want %q", decrypted, plaintext)
}
}
func TestEncryptEmptyStringRoundTrips(t *testing.T) {
box, err := New("test-secret-key")
if err != nil {
t.Fatalf("New: %v", err)
}
ciphertext, err := box.Encrypt("")
if err != nil {
t.Fatalf("Encrypt: %v", err)
}
if ciphertext != "" {
t.Fatalf("Encrypt(\"\") = %q, want empty string", ciphertext)
}
decrypted, err := box.Decrypt(ciphertext)
if err != nil {
t.Fatalf("Decrypt: %v", err)
}
if decrypted != "" {
t.Fatalf("Decrypt(\"\") = %q, want empty string", decrypted)
}
}
func TestDecryptWithWrongKeyFails(t *testing.T) {
boxA, _ := New("key-a")
boxB, _ := New("key-b")
ciphertext, err := boxA.Encrypt("sensitive value")
if err != nil {
t.Fatalf("Encrypt: %v", err)
}
if _, err := boxB.Decrypt(ciphertext); err == nil {
t.Fatal("expected Decrypt with wrong key to fail, got nil error")
}
}
func TestNewRejectsEmptySecret(t *testing.T) {
if _, err := New(""); err == nil {
t.Fatal("expected New(\"\") to return an error")
}
}