package saltyim import ( "crypto/sha256" "fmt" "net/url" "testing" "github.com/keys-pub/keys" "github.com/stretchr/testify/require" ) func TestClient_Outbox(t *testing.T) { test := require.New(t) endpoint := &url.URL{Host: "example.com", Path: "/path", Scheme: "https"} key := keys.GenerateEdX25519Key() client := &Client{me: &Addr{endpoint: endpoint}, id: &Identity{key: key}} outbox := client.Outbox() test.True(endpoint.Path == "/path", "endpoint.Path should not be modified after call to client.Outbox()") test.False(*endpoint == *outbox, "endpoint and outbox should not point to the same *url.URL") expected := fmt.Sprintf("/%x", sha256.Sum256(key.Private())) test.True(outbox.Path == expected, "expected %s but got %s", expected, outbox.Path) }