orama/pkg/cli/sandbox/setup_test.go
anonpenguin23 0764ac287e refactor(remotessh): use rwagent directly instead of rw CLI subprocesses
- replace `rw vault ssh` calls with `rwagent.Client` in PrepareNodeKeys,
  LoadAgentKeys, EnsureVaultEntry, ResolveVaultPublicKey
- add vaultClient interface, newClient func, and wrapAgentError for
  testability and improved error messages
- prefer pre-built systemd dir in installNamespaceTemplates
2026-03-20 07:23:10 +02:00

83 lines
2.1 KiB
Go

package sandbox
import "testing"
func TestSSHKeyDataEqual(t *testing.T) {
tests := []struct {
name string
a string
b string
expected bool
}{
{
name: "identical keys",
a: "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBtest comment1",
b: "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBtest comment1",
expected: true,
},
{
name: "same key different comments",
a: "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBtest vault",
b: "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBtest user@host",
expected: true,
},
{
name: "same key one without comment",
a: "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBtest",
b: "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBtest vault",
expected: true,
},
{
name: "different key data",
a: "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBoldkey vault",
b: "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBnewkey vault",
expected: false,
},
{
name: "different key types",
a: "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAB vault",
b: "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBtest vault",
expected: false,
},
{
name: "empty string a",
a: "",
b: "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBtest vault",
expected: false,
},
{
name: "empty string b",
a: "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBtest vault",
b: "",
expected: false,
},
{
name: "both empty",
a: "",
b: "",
expected: false,
},
{
name: "single field only",
a: "ssh-ed25519",
b: "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBtest",
expected: false,
},
{
name: "whitespace trimming",
a: " ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBtest vault ",
b: "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBtest",
expected: true,
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
got := sshKeyDataEqual(tt.a, tt.b)
if got != tt.expected {
t.Errorf("sshKeyDataEqual(%q, %q) = %v, want %v", tt.a, tt.b, got, tt.expected)
}
})
}
}