ollie/toolsrv/server9p_test.go

98 lines
2.3 KiB
Go

package toolsrv
import (
"testing"
)
func TestServer9P_RegisterAgent(t *testing.T) {
secret := []byte("test-secret-key-1234567890123456")
srv := NewServer9P(secret)
agentID := "agent-uuid-123"
cwd := "/home/user/project"
sig := ComputeRegistrationSig(secret, agentID, cwd)
// Register should succeed with valid signature
token, err := srv.RegisterAgent(agentID, cwd, sig)
if err != nil {
t.Fatalf("RegisterAgent failed: %v", err)
}
if token == "" {
t.Fatal("RegisterAgent returned empty token")
}
// Should be able to look up the agent
agent, ok := srv.GetAgent(token)
if !ok {
t.Fatal("GetAgent returned false")
}
if agent.ID != agentID {
t.Errorf("agent.ID = %q, want %q", agent.ID, agentID)
}
if agent.CWD != cwd {
t.Errorf("agent.CWD = %q, want %q", agent.CWD, cwd)
}
}
func TestServer9P_RegisterAgentBadSig(t *testing.T) {
secret := []byte("test-secret-key-1234567890123456")
srv := NewServer9P(secret)
agentID := "agent-uuid-123"
cwd := "/home/user/project"
badSig := "invalid-signature"
// Register should fail with invalid signature
_, err := srv.RegisterAgent(agentID, cwd, badSig)
if err == nil {
t.Fatal("RegisterAgent should fail with bad signature")
}
}
func TestServer9P_RegisterAgentWrongSecret(t *testing.T) {
secret := []byte("test-secret-key-1234567890123456")
wrongSecret := []byte("wrong-secret-key-abcdefghijklmnop")
srv := NewServer9P(secret)
agentID := "agent-uuid-123"
cwd := "/home/user/project"
// Sign with wrong secret
sig := ComputeRegistrationSig(wrongSecret, agentID, cwd)
// Register should fail
_, err := srv.RegisterAgent(agentID, cwd, sig)
if err == nil {
t.Fatal("RegisterAgent should fail with wrong secret")
}
}
func TestServer9P_GetAgentNotFound(t *testing.T) {
secret := []byte("test-secret-key-1234567890123456")
srv := NewServer9P(secret)
_, ok := srv.GetAgent("nonexistent-token")
if ok {
t.Fatal("GetAgent should return false for nonexistent token")
}
}
func TestServer9P_BuildTree(t *testing.T) {
secret := []byte("test-secret-key-1234567890123456")
srv := NewServer9P(secret)
tree := srv.BuildTree()
if tree == nil {
t.Fatal("BuildTree returned nil")
}
}
func TestServer9P_HostInfo(t *testing.T) {
secret := []byte("test-secret-key-1234567890123456")
srv := NewServer9P(secret)
info := srv.HostInfo()
if info == "" {
t.Fatal("HostInfo returned empty string")
}
}