package forgeaccount import "testing" func TestForgeUserOfAMachineAccountIsTheNodesAgent(t *testing.T) { if got := ForgeUser("g14", "machine"); got != "agent-g14" { t.Fatalf("ForgeUser = %q", got) } if got := ForgeUser("g14", "other"); got != "" { t.Fatalf("a kind not built yet has no forge user, got %q", got) } } func TestRemoveKeysTitledTakesOnlyTheMeshKeysOfThatTitle(t *testing.T) { f := &keyForge{keys: map[string][]heldKey{"agent-g14": { {ID: 1, Title: "mesh:g14.nox", Key: keyA}, {ID: 2, Title: "mesh:g14.other", Key: keyB}, {ID: 3, Title: "by hand", Key: "ssh-ed25519 CCCC"}, }}, next: 3} a := keyAccounts(t, f) if err := a.RemoveKeysTitled(t.Context(), "agent-g14", "mesh:g14.nox"); err != nil { t.Fatal(err) } if got := f.keys["agent-g14"]; len(got) != 2 || got[0].ID != 2 || got[1].ID != 3 { t.Fatalf("held = %v", got) } if err := a.RemoveKeysTitled(t.Context(), "agent-g14", "by hand"); err != nil { t.Fatal(err) } if len(f.keys["agent-g14"]) != 2 { t.Fatal("a key that is not the mesh's was removed") } }