6
1
mirror of https://git.mills.io/saltyim/saltyim.git synced 2024-06-25 00:08:26 +00:00
prologic-saltyim/format_test.go
2023-02-28 08:37:50 +10:00

49 lines
1.1 KiB
Go

package saltyim_test
import (
"testing"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"go.salty.im/saltyim"
"go.yarn.social/lextwt"
)
func TestFormatMessage(t *testing.T) {
assert := assert.New(t)
require := require.New(t)
me, err := saltyim.ParseAddr(userAlice)
require.NoError(err)
message := "Hello World!"
packed := saltyim.PackMessage(me, message)
unpacked := saltyim.FormatMessage(string(packed))
assert.Contains(unpacked, userAlice)
assert.Contains(unpacked, message)
}
func TestPackMessage(t *testing.T) {
assert := assert.New(t)
require := require.New(t)
addr, err := saltyim.ParseAddr("alice@example.com")
require.NoError(err)
assert.Equal("alice", addr.User())
assert.Equal("example.com", addr.Domain())
msg := "Hello World!"
packed := saltyim.PackMessage(addr, msg)
require.NotNil(packed)
s, err := lextwt.ParseSalty(string(packed))
require.NoError(err)
st, ok := s.(*lextwt.SaltyText)
require.Equal(true, ok)
assert.Equal("alice@example.com", st.User.String())
assert.Equal("Hello World!", st.LiteralText())
}