Skip to content

Commit

Permalink
test: add message sending test for viem wallets
Browse files Browse the repository at this point in the history
  • Loading branch information
rygine committed Sep 26, 2023
1 parent 2decefa commit fb90b7d
Showing 1 changed file with 44 additions and 0 deletions.
44 changes: 44 additions & 0 deletions test/Message.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,9 @@ import { InMemoryKeystore, KeystoreError } from '../src/keystore'
import { Client, ContentTypeText, InMemoryPersistence } from '../src'
import { Wallet } from 'ethers'
import { ContentTypeTestKey, TestKeyCodec } from './ContentTypeTestKey'
import {generatePrivateKey, privateKeyToAccount} from "viem/accounts"
import { createWalletClient, http } from 'viem'
import { mainnet } from 'viem/chains'

describe('Message', function () {
let aliceWallet: Wallet
Expand Down Expand Up @@ -218,6 +221,47 @@ describe('Message', function () {
expect(restoredDecodedMessage).toEqual(sentMessage)
})

it('round trips V2 text messages with viem', async () => {
const aliceWalletClient = createWalletClient({
account: privateKeyToAccount(generatePrivateKey()),
chain: mainnet,
transport: http(),
})

const aliceClient = await Client.create(aliceWalletClient, {
env: 'local',
privateKeyOverride: alice.encode(),
})

const bobWalletClient = createWalletClient({
account: privateKeyToAccount(generatePrivateKey()),
chain: mainnet,
transport: http(),
})

const bobClient = await Client.create(bobWalletClient, {
env: 'local',
privateKeyOverride: bob.encode(),
})

const convo = await aliceClient.conversations.newConversation(
bobClient.address
)
const text = 'hi bob'
const sentMessage = await convo.send(text)

const sentMessageBytes = sentMessage.toBytes()
expect(sentMessageBytes).toBeDefined()

const restoredDecodedMessage = await DecodedMessage.fromBytes(
sentMessageBytes,
aliceClient
)
expect(restoredDecodedMessage.toBytes()).toEqual(sentMessageBytes)
expect(restoredDecodedMessage.content).toEqual(text)
expect(restoredDecodedMessage).toEqual(sentMessage)
})

it('round trips messages with custom content types', async () => {
// Alice has the custom codec and bob does not
const aliceClient = await Client.create(aliceWallet, {
Expand Down

0 comments on commit fb90b7d

Please sign in to comment.