@towns-labs/sdk 2.0.5 → 2.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/createApp.d.ts.map +1 -1
- package/dist/createApp.js +7 -1
- package/dist/createApp.js.map +1 -1
- package/dist/id.d.ts +1 -0
- package/dist/id.d.ts.map +1 -1
- package/dist/id.js +3 -0
- package/dist/id.js.map +1 -1
- package/dist/streamStateView_Members.d.ts +7 -0
- package/dist/streamStateView_Members.d.ts.map +1 -1
- package/dist/streamStateView_Members.js +19 -0
- package/dist/streamStateView_Members.js.map +1 -1
- package/dist/sync-agent/dms/models/dm.d.ts +2 -4
- package/dist/sync-agent/dms/models/dm.d.ts.map +1 -1
- package/dist/sync-agent/dms/models/dm.js +2 -30
- package/dist/sync-agent/dms/models/dm.js.map +1 -1
- package/dist/sync-agent/gdms/models/gdm.d.ts +2 -4
- package/dist/sync-agent/gdms/models/gdm.d.ts.map +1 -1
- package/dist/sync-agent/gdms/models/gdm.js +2 -30
- package/dist/sync-agent/gdms/models/gdm.js.map +1 -1
- package/dist/sync-agent/river-connection/riverConnection.d.ts +1 -3
- package/dist/sync-agent/river-connection/riverConnection.d.ts.map +1 -1
- package/dist/sync-agent/river-connection/riverConnection.js +5 -3
- package/dist/sync-agent/river-connection/riverConnection.js.map +1 -1
- package/dist/sync-agent/spaces/models/channel.d.ts +3 -6
- package/dist/sync-agent/spaces/models/channel.d.ts.map +1 -1
- package/dist/sync-agent/spaces/models/channel.js +4 -76
- package/dist/sync-agent/spaces/models/channel.js.map +1 -1
- package/dist/sync-agent/spaces/models/space.d.ts +6 -6
- package/dist/sync-agent/spaces/models/space.d.ts.map +1 -1
- package/dist/sync-agent/spaces/models/space.js +8 -30
- package/dist/sync-agent/spaces/models/space.js.map +1 -1
- package/dist/sync-agent/spaces/spaces.d.ts +3 -4
- package/dist/sync-agent/spaces/spaces.d.ts.map +1 -1
- package/dist/sync-agent/spaces/spaces.js +6 -25
- package/dist/sync-agent/spaces/spaces.js.map +1 -1
- package/dist/sync-agent/syncAgent.d.ts.map +1 -1
- package/dist/sync-agent/syncAgent.js +2 -7
- package/dist/sync-agent/syncAgent.js.map +1 -1
- package/dist/tests/multi_ne/gdms.test.js +50 -3
- package/dist/tests/multi_ne/gdms.test.js.map +1 -1
- package/dist/tests/multi_ne/userInboxMessage.test.js +3 -3
- package/dist/tests/multi_ne/userInboxMessage.test.js.map +1 -1
- package/dist/townsEnv.js +5 -5
- package/dist/townsEnv.js.map +1 -1
- package/package.json +10 -10
- package/dist/createBot.d.ts +0 -159
- package/dist/createBot.d.ts.map +0 -1
- package/dist/createBot.js +0 -206
- package/dist/createBot.js.map +0 -1
- package/dist/makeRiverRpcClient.d.ts +0 -6
- package/dist/makeRiverRpcClient.d.ts.map +0 -1
- package/dist/makeRiverRpcClient.js +0 -9
- package/dist/makeRiverRpcClient.js.map +0 -1
- package/dist/streamStateView_ChannelMetadata.d.ts +0 -22
- package/dist/streamStateView_ChannelMetadata.d.ts.map +0 -1
- package/dist/streamStateView_ChannelMetadata.js +0 -77
- package/dist/streamStateView_ChannelMetadata.js.map +0 -1
- package/dist/sync-agent/entitlements/entitlements.d.ts +0 -10
- package/dist/sync-agent/entitlements/entitlements.d.ts.map +0 -1
- package/dist/sync-agent/entitlements/entitlements.js +0 -20
- package/dist/sync-agent/entitlements/entitlements.js.map +0 -1
- package/dist/sync-agent/river-connection/models/riverChain.d.ts +0 -24
- package/dist/sync-agent/river-connection/models/riverChain.d.ts.map +0 -1
- package/dist/sync-agent/river-connection/models/riverChain.js +0 -66
- package/dist/sync-agent/river-connection/models/riverChain.js.map +0 -1
- package/dist/tests/multi/appRegistryService.test.d.ts +0 -2
- package/dist/tests/multi/appRegistryService.test.d.ts.map +0 -1
- package/dist/tests/multi/appRegistryService.test.js +0 -41
- package/dist/tests/multi/appRegistryService.test.js.map +0 -1
- package/dist/tests/multi/botEntitlements.test.d.ts +0 -5
- package/dist/tests/multi/botEntitlements.test.d.ts.map +0 -1
- package/dist/tests/multi/botEntitlements.test.js +0 -178
- package/dist/tests/multi/botEntitlements.test.js.map +0 -1
- package/dist/tests/multi/botMembership.test.d.ts +0 -5
- package/dist/tests/multi/botMembership.test.d.ts.map +0 -1
- package/dist/tests/multi/botMembership.test.js +0 -295
- package/dist/tests/multi/botMembership.test.js.map +0 -1
- package/dist/tests/multi/botStreamCreation.test.d.ts +0 -5
- package/dist/tests/multi/botStreamCreation.test.d.ts.map +0 -1
- package/dist/tests/multi/botStreamCreation.test.js +0 -60
- package/dist/tests/multi/botStreamCreation.test.js.map +0 -1
- package/dist/tests/multi/channelScrubbing.test.d.ts +0 -5
- package/dist/tests/multi/channelScrubbing.test.d.ts.map +0 -1
- package/dist/tests/multi/channelScrubbing.test.js +0 -102
- package/dist/tests/multi/channelScrubbing.test.js.map +0 -1
- package/dist/tests/multi/notificationService.test.d.ts +0 -2
- package/dist/tests/multi/notificationService.test.d.ts.map +0 -1
- package/dist/tests/multi/notificationService.test.js +0 -51
- package/dist/tests/multi/notificationService.test.js.map +0 -1
- package/dist/tests/multi/sync-agent/member-queue.test.d.ts +0 -2
- package/dist/tests/multi/sync-agent/member-queue.test.d.ts.map +0 -1
- package/dist/tests/multi/sync-agent/member-queue.test.js +0 -54
- package/dist/tests/multi/sync-agent/member-queue.test.js.map +0 -1
- package/dist/tests/multi/sync-agent/member.test.d.ts +0 -2
- package/dist/tests/multi/sync-agent/member.test.d.ts.map +0 -1
- package/dist/tests/multi/sync-agent/member.test.js +0 -45
- package/dist/tests/multi/sync-agent/member.test.js.map +0 -1
- package/dist/tests/multi/sync-agent/members.test.d.ts +0 -2
- package/dist/tests/multi/sync-agent/members.test.d.ts.map +0 -1
- package/dist/tests/multi/sync-agent/members.test.js +0 -35
- package/dist/tests/multi/sync-agent/members.test.js.map +0 -1
- package/dist/tests/multi/sync-agent/riverConnection.test.d.ts +0 -5
- package/dist/tests/multi/sync-agent/riverConnection.test.d.ts.map +0 -1
- package/dist/tests/multi/sync-agent/riverConnection.test.js +0 -39
- package/dist/tests/multi/sync-agent/riverConnection.test.js.map +0 -1
- package/dist/tests/multi/sync-agent/spaces.test.d.ts +0 -2
- package/dist/tests/multi/sync-agent/spaces.test.d.ts.map +0 -1
- package/dist/tests/multi/sync-agent/spaces.test.js +0 -33
- package/dist/tests/multi/sync-agent/spaces.test.js.map +0 -1
- package/dist/tests/multi/sync-agent/streams.test.d.ts +0 -2
- package/dist/tests/multi/sync-agent/streams.test.d.ts.map +0 -1
- package/dist/tests/multi/sync-agent/streams.test.js +0 -27
- package/dist/tests/multi/sync-agent/streams.test.js.map +0 -1
- package/dist/tests/multi/sync-agent/syncAgent.test.d.ts +0 -2
- package/dist/tests/multi/sync-agent/syncAgent.test.d.ts.map +0 -1
- package/dist/tests/multi/sync-agent/syncAgent.test.js +0 -68
- package/dist/tests/multi/sync-agent/syncAgent.test.js.map +0 -1
- package/dist/tests/multi/sync-agent/syncAgents.test.d.ts +0 -2
- package/dist/tests/multi/sync-agent/syncAgents.test.d.ts.map +0 -1
- package/dist/tests/multi/sync-agent/syncAgents.test.js +0 -163
- package/dist/tests/multi/sync-agent/syncAgents.test.js.map +0 -1
- package/dist/tests/multi/sync-agent/timeline.test.d.ts +0 -2
- package/dist/tests/multi/sync-agent/timeline.test.d.ts.map +0 -1
- package/dist/tests/multi/sync-agent/timeline.test.js +0 -232
- package/dist/tests/multi/sync-agent/timeline.test.js.map +0 -1
- package/dist/tests/multi/sync-agent/user.test.d.ts +0 -5
- package/dist/tests/multi/sync-agent/user.test.d.ts.map +0 -1
- package/dist/tests/multi/sync-agent/user.test.js +0 -55
- package/dist/tests/multi/sync-agent/user.test.js.map +0 -1
- package/dist/tests/multi/transactions.test.d.ts +0 -5
- package/dist/tests/multi/transactions.test.d.ts.map +0 -1
- package/dist/tests/multi/transactions.test.js +0 -153
- package/dist/tests/multi/transactions.test.js.map +0 -1
- package/dist/tests/multi/transactions_SpaceReview.test.d.ts +0 -2
- package/dist/tests/multi/transactions_SpaceReview.test.d.ts.map +0 -1
- package/dist/tests/multi/transactions_SpaceReview.test.js +0 -278
- package/dist/tests/multi/transactions_SpaceReview.test.js.map +0 -1
- package/dist/tests/multi/transactions_Tip.test.d.ts +0 -5
- package/dist/tests/multi/transactions_Tip.test.d.ts.map +0 -1
- package/dist/tests/multi/transactions_Tip.test.js +0 -379
- package/dist/tests/multi/transactions_Tip.test.js.map +0 -1
- package/dist/tests/multi_ne/nodeSelection.test.d.ts +0 -5
- package/dist/tests/multi_ne/nodeSelection.test.d.ts.map +0 -1
- package/dist/tests/multi_ne/nodeSelection.test.js +0 -41
- package/dist/tests/multi_ne/nodeSelection.test.js.map +0 -1
- package/dist/tests/multi_ne/trading.solana.test.d.ts +0 -2
- package/dist/tests/multi_ne/trading.solana.test.d.ts.map +0 -1
- package/dist/tests/multi_ne/trading.solana.test.js +0 -229
- package/dist/tests/multi_ne/trading.solana.test.js.map +0 -1
- package/dist/tests/multi_ne/trading.test.d.ts +0 -2
- package/dist/tests/multi_ne/trading.test.d.ts.map +0 -1
- package/dist/tests/multi_ne/trading.test.js +0 -243
- package/dist/tests/multi_ne/trading.test.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"syncAgent.test.js","sourceRoot":"","sources":["../../../../src/tests/multi/sync-agent/syncAgent.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"syncAgents.test.d.ts","sourceRoot":"","sources":["../../../../src/tests/multi/sync-agent/syncAgents.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,163 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @group with-entitlements
|
|
3
|
-
*/
|
|
4
|
-
import { dlogger } from '@towns-labs/utils';
|
|
5
|
-
import { Bot } from '../../../sync-agent/utils/bot';
|
|
6
|
-
import { findMessageByText, waitFor, waitForRoleCreated, waitForValue } from '../../testUtils';
|
|
7
|
-
import { NoopRuleData, Permission } from '@towns-labs/web3';
|
|
8
|
-
const logger = dlogger('csb:test:syncAgents');
|
|
9
|
-
describe('syncAgents.test.ts', () => {
|
|
10
|
-
logger.log('start');
|
|
11
|
-
const bobUser = new Bot();
|
|
12
|
-
const aliceUser = new Bot();
|
|
13
|
-
const charlieUser = new Bot();
|
|
14
|
-
let bob;
|
|
15
|
-
let alice;
|
|
16
|
-
let charlie;
|
|
17
|
-
beforeEach(async () => {
|
|
18
|
-
await Promise.all([bobUser.fundWallet(), aliceUser.fundWallet(), charlieUser.fundWallet()]);
|
|
19
|
-
bob = await bobUser.makeSyncAgent();
|
|
20
|
-
alice = await aliceUser.makeSyncAgent();
|
|
21
|
-
charlie = await charlieUser.makeSyncAgent();
|
|
22
|
-
});
|
|
23
|
-
afterEach(async () => {
|
|
24
|
-
await bob.stop();
|
|
25
|
-
await alice.stop();
|
|
26
|
-
await charlie.stop();
|
|
27
|
-
});
|
|
28
|
-
test('syncAgents', async () => {
|
|
29
|
-
await Promise.all([bob.start(), alice.start(), charlie.start()]);
|
|
30
|
-
const { spaceId } = await bob.spaces.createSpace({ spaceName: 'BlastOff' }, bobUser.signer);
|
|
31
|
-
expect(bob.user.memberships.isJoined(spaceId)).toBe(true);
|
|
32
|
-
await Promise.all([
|
|
33
|
-
alice.spaces.getSpace(spaceId).join(aliceUser.signer),
|
|
34
|
-
charlie.spaces.getSpace(spaceId).join(charlieUser.signer),
|
|
35
|
-
]);
|
|
36
|
-
expect(alice.user.memberships.isJoined(spaceId)).toBe(true);
|
|
37
|
-
expect(charlie.user.memberships.isJoined(spaceId)).toBe(true);
|
|
38
|
-
});
|
|
39
|
-
test('syncAgents load async', async () => {
|
|
40
|
-
await bob.start();
|
|
41
|
-
const { spaceId } = await bob.spaces.createSpace({ spaceName: 'OuterSpace' }, bobUser.signer);
|
|
42
|
-
expect(bob.user.memberships.isJoined(spaceId)).toBe(true);
|
|
43
|
-
// queue up a join, then start the client (wow!)
|
|
44
|
-
const alicePromise = alice.spaces.getSpace(spaceId).join(aliceUser.signer);
|
|
45
|
-
await alice.start();
|
|
46
|
-
await alicePromise;
|
|
47
|
-
expect(alice.user.memberships.isJoined(spaceId)).toBe(true);
|
|
48
|
-
});
|
|
49
|
-
test('syncAgents send a message', async () => {
|
|
50
|
-
await Promise.all([bob.start(), alice.start()]);
|
|
51
|
-
await waitFor(() => bob.spaces.value.status === 'loaded');
|
|
52
|
-
expect(bob.spaces.data.spaceIds.length).toBeGreaterThan(0);
|
|
53
|
-
const spaceId = bob.spaces.data.spaceIds[0];
|
|
54
|
-
expect(alice.user.memberships.isJoined(spaceId)).toBe(true); // alice joined above
|
|
55
|
-
const space = bob.spaces.getSpace(spaceId);
|
|
56
|
-
const channel = space.getDefaultChannel();
|
|
57
|
-
await channel.sendMessage('Hello, World!');
|
|
58
|
-
expect(findMessageByText(channel.timeline.events.value, 'Hello, World!')).toBeDefined();
|
|
59
|
-
// sleep for a bit, then check if alice got the message
|
|
60
|
-
const aliceChannel = alice.spaces.getSpace(spaceId).getChannel(channel.data.id);
|
|
61
|
-
logger.log(aliceChannel.timeline.events.value);
|
|
62
|
-
await waitFor(() => expect(findMessageByText(aliceChannel.timeline.events.value, 'Hello, World!')).toBeDefined());
|
|
63
|
-
});
|
|
64
|
-
test('syncAgents send a message with disableSignatureValidation=true', async () => {
|
|
65
|
-
const prevBobOpts = bob.riverConnection.clientParams.opts?.unpackEnvelopeOpts;
|
|
66
|
-
const prevAliceOpts = alice.riverConnection.clientParams.opts?.unpackEnvelopeOpts;
|
|
67
|
-
bob.riverConnection.clientParams.opts = {
|
|
68
|
-
...bob.riverConnection.clientParams.opts,
|
|
69
|
-
unpackEnvelopeOpts: {
|
|
70
|
-
disableSignatureValidation: true,
|
|
71
|
-
},
|
|
72
|
-
};
|
|
73
|
-
alice.riverConnection.clientParams.opts = {
|
|
74
|
-
...alice.riverConnection.clientParams.opts,
|
|
75
|
-
unpackEnvelopeOpts: {
|
|
76
|
-
disableSignatureValidation: true,
|
|
77
|
-
},
|
|
78
|
-
};
|
|
79
|
-
await Promise.all([bob.start(), alice.start()]);
|
|
80
|
-
await waitFor(() => bob.spaces.value.status === 'loaded');
|
|
81
|
-
const spaceId = bob.spaces.data.spaceIds[0];
|
|
82
|
-
const space = bob.spaces.getSpace(spaceId);
|
|
83
|
-
const channelId = await space.createChannel('random', bobUser.signer);
|
|
84
|
-
const channel = space.getChannel(channelId);
|
|
85
|
-
await channel.sendMessage('Hello, World again!');
|
|
86
|
-
// join the channel, find the message
|
|
87
|
-
const aliceChannel = alice.spaces.getSpace(spaceId).getChannel(channel.data.id);
|
|
88
|
-
await aliceChannel.join();
|
|
89
|
-
logger.log(aliceChannel.timeline.events.value);
|
|
90
|
-
await waitFor(() => expect(findMessageByText(aliceChannel.timeline.events.value, 'Hello, World again!')).toBeDefined());
|
|
91
|
-
// reset the unpackEnvelopeOpts
|
|
92
|
-
bob.riverConnection.clientParams.opts = {
|
|
93
|
-
...bob.riverConnection.clientParams.opts,
|
|
94
|
-
unpackEnvelopeOpts: prevBobOpts,
|
|
95
|
-
};
|
|
96
|
-
alice.riverConnection.clientParams.opts = {
|
|
97
|
-
...alice.riverConnection.clientParams.opts,
|
|
98
|
-
unpackEnvelopeOpts: prevAliceOpts,
|
|
99
|
-
};
|
|
100
|
-
});
|
|
101
|
-
test('syncAgents pin a message', async () => {
|
|
102
|
-
await Promise.all([bob.start(), alice.start()]);
|
|
103
|
-
await waitFor(() => bob.spaces.value.status === 'loaded');
|
|
104
|
-
expect(bob.spaces.data.spaceIds.length).toBeGreaterThan(0);
|
|
105
|
-
const spaceId = bob.spaces.data.spaceIds[0];
|
|
106
|
-
expect(alice.user.memberships.isJoined(spaceId)).toBe(true); // alice joined above
|
|
107
|
-
const space = bob.spaces.getSpace(spaceId);
|
|
108
|
-
const channel = space.getDefaultChannel();
|
|
109
|
-
const channelId = channel.data.id;
|
|
110
|
-
const event = await waitForValue(() => {
|
|
111
|
-
const event = findMessageByText(channel.timeline.events.value, 'Hello, World!');
|
|
112
|
-
expect(event).toBeDefined();
|
|
113
|
-
return event;
|
|
114
|
-
});
|
|
115
|
-
// bob can pin
|
|
116
|
-
const result = await channel.pin(event.eventId);
|
|
117
|
-
expect(result).toBeDefined();
|
|
118
|
-
await waitFor(() => expect(bob.riverConnection.client?.streams.get(channelId)?.view.membershipContent.pins
|
|
119
|
-
.length).toBe(1));
|
|
120
|
-
// bob can unpin
|
|
121
|
-
const result2 = await channel.unpin(event.eventId);
|
|
122
|
-
expect(result2).toBeDefined();
|
|
123
|
-
// alice can't pin yet, she doesn't have permissions
|
|
124
|
-
const aliceChannel = alice.spaces.getSpace(spaceId).getChannel(channelId);
|
|
125
|
-
await waitFor(() => aliceChannel.value.status === 'loaded');
|
|
126
|
-
// grant permissions
|
|
127
|
-
const txn1 = await alice.riverConnection.spaceDapp.createRole(spaceId, 'pin message role', [Permission.PinMessage], [aliceUser.rootWallet.address], NoopRuleData, bobUser.signer);
|
|
128
|
-
const { roleId, error: roleError } = await waitForRoleCreated(alice.riverConnection.spaceDapp, spaceId, txn1);
|
|
129
|
-
expect(roleError).toBeUndefined();
|
|
130
|
-
expect(roleId).toBeDefined();
|
|
131
|
-
const txn2 = await bob.riverConnection.spaceDapp.addRoleToChannel(spaceId, channelId,
|
|
132
|
-
// eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion
|
|
133
|
-
roleId, bobUser.signer);
|
|
134
|
-
await txn2.wait();
|
|
135
|
-
// alice can pin
|
|
136
|
-
const result3 = await aliceChannel.pin(event.eventId);
|
|
137
|
-
expect(result3).toBeDefined();
|
|
138
|
-
});
|
|
139
|
-
test('dm', async () => {
|
|
140
|
-
await Promise.all([bob.start(), alice.start()]);
|
|
141
|
-
const { streamId } = await bob.dms.createDM(alice.userId);
|
|
142
|
-
const bobAndAliceDm = bob.dms.getDm(streamId);
|
|
143
|
-
await waitFor(() => expect(bobAndAliceDm.members.data.initialized).toBe(true));
|
|
144
|
-
expect(bobAndAliceDm.members.data.userIds).toEqual(expect.arrayContaining([bob.userId, alice.userId]));
|
|
145
|
-
await bobAndAliceDm.sendMessage('hi');
|
|
146
|
-
const aliceAndBobDm = alice.dms.getDmWithUserId(bob.userId);
|
|
147
|
-
await waitFor(() => expect(findMessageByText(aliceAndBobDm.timeline.events.value, 'hi')).toBeDefined());
|
|
148
|
-
});
|
|
149
|
-
test('gdm', async () => {
|
|
150
|
-
await Promise.all([bob.start(), alice.start(), charlie.start()]);
|
|
151
|
-
const { streamId } = await bob.gdms.createGDM([
|
|
152
|
-
{ userId: alice.userId },
|
|
153
|
-
{ userId: charlie.userId },
|
|
154
|
-
]);
|
|
155
|
-
const bobGdm = bob.gdms.getGdm(streamId);
|
|
156
|
-
await waitFor(() => expect(bobGdm.members.data.initialized).toBe(true));
|
|
157
|
-
expect(bobGdm.members.data.userIds).toEqual(expect.arrayContaining([bob.userId, alice.userId, charlie.userId]));
|
|
158
|
-
await bobGdm.sendMessage('Hello, World!');
|
|
159
|
-
const aliceGdm = alice.gdms.getGdm(streamId);
|
|
160
|
-
await waitFor(() => expect(findMessageByText(aliceGdm.timeline.events.value, 'Hello, World!')).toBeDefined());
|
|
161
|
-
});
|
|
162
|
-
});
|
|
163
|
-
//# sourceMappingURL=syncAgents.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"syncAgents.test.js","sourceRoot":"","sources":["../../../../src/tests/multi/sync-agent/syncAgents.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"timeline.test.d.ts","sourceRoot":"","sources":["../../../../src/tests/multi/sync-agent/timeline.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,232 +0,0 @@
|
|
|
1
|
-
import { Permission } from '@towns-labs/web3';
|
|
2
|
-
import { findMessageByText, waitFor } from '../../testUtils';
|
|
3
|
-
import { Bot } from '../../../sync-agent/utils/bot';
|
|
4
|
-
import { makeDefaultMembershipInfo } from '../../../sync-agent/utils/spaceUtils';
|
|
5
|
-
import { RiverTimelineEvent } from '../../../views/models/timelineTypes';
|
|
6
|
-
import { dlog } from '@towns-labs/utils';
|
|
7
|
-
const log = dlog('test:timeline.test.ts');
|
|
8
|
-
const setupTest = async () => {
|
|
9
|
-
const bobUser = new Bot();
|
|
10
|
-
const aliceUser = new Bot();
|
|
11
|
-
const charlieUser = new Bot();
|
|
12
|
-
await Promise.all([bobUser.fundWallet(), aliceUser.fundWallet(), charlieUser.fundWallet()]);
|
|
13
|
-
const [bob, alice, charlie] = await Promise.all([
|
|
14
|
-
bobUser.makeSyncAgent(),
|
|
15
|
-
aliceUser.makeSyncAgent(),
|
|
16
|
-
charlieUser.makeSyncAgent(),
|
|
17
|
-
]);
|
|
18
|
-
return { bob, alice, charlie, bobUser, aliceUser, charlieUser };
|
|
19
|
-
};
|
|
20
|
-
describe('timeline.test.ts', () => {
|
|
21
|
-
test.concurrent('send and receive a mention', async () => {
|
|
22
|
-
const { bob, alice, bobUser, aliceUser } = await setupTest();
|
|
23
|
-
await Promise.all([bob.start(), alice.start()]);
|
|
24
|
-
const { spaceId } = await bob.spaces.createSpace({ spaceName: 'BlastOff' }, bobUser.signer);
|
|
25
|
-
expect(bob.user.memberships.isJoined(spaceId)).toBe(true);
|
|
26
|
-
await alice.spaces.getSpace(spaceId).join(aliceUser.signer);
|
|
27
|
-
const aliceChannel = alice.spaces.getSpace(spaceId).getDefaultChannel();
|
|
28
|
-
expect(alice.user.memberships.isJoined(spaceId)).toBe(true);
|
|
29
|
-
await aliceChannel.sendMessage('Hi @bob', {
|
|
30
|
-
mentions: [
|
|
31
|
-
{
|
|
32
|
-
userId: bob.userId,
|
|
33
|
-
displayName: 'bob',
|
|
34
|
-
mentionBehavior: { case: undefined, value: undefined }, // geez
|
|
35
|
-
},
|
|
36
|
-
],
|
|
37
|
-
});
|
|
38
|
-
const bobChannel = bob.spaces.getSpace(spaceId).getDefaultChannel();
|
|
39
|
-
// bob should receive the message
|
|
40
|
-
await waitFor(async () => {
|
|
41
|
-
const e = findMessageByText(bobChannel.timeline.events.value, 'Hi @bob');
|
|
42
|
-
expect(e?.content?.kind === RiverTimelineEvent.ChannelMessage &&
|
|
43
|
-
e?.content?.body === 'Hi @bob' &&
|
|
44
|
-
e?.content?.mentions != undefined &&
|
|
45
|
-
e?.content?.mentions.length > 0 &&
|
|
46
|
-
e?.content?.mentions[0].userId === bob.userId &&
|
|
47
|
-
e?.content?.mentions[0].displayName === 'bob', `mention: ${bobChannel.data.id}`).toEqual(true);
|
|
48
|
-
});
|
|
49
|
-
});
|
|
50
|
-
// aellis 2025-01-25: this test is flaky and fails intermittently
|
|
51
|
-
test.skip('scrollback', async () => {
|
|
52
|
-
const NUM_MESSAGES = 100;
|
|
53
|
-
const { bob, alice, bobUser, aliceUser } = await setupTest();
|
|
54
|
-
await Promise.all([bob.start(), alice.start()]);
|
|
55
|
-
const { spaceId } = await bob.spaces.createSpace({ spaceName: 'Scrollback Team 🔙' }, bobUser.signer);
|
|
56
|
-
const bobChannel = bob.spaces.getSpace(spaceId).getDefaultChannel();
|
|
57
|
-
for (let i = 0; i < NUM_MESSAGES; i++) {
|
|
58
|
-
await bobChannel.sendMessage(`message ${i}`);
|
|
59
|
-
// force miniblocks, if we're going fast it's possible that the miniblock is not created
|
|
60
|
-
if ((i % NUM_MESSAGES) / 4 == 0) {
|
|
61
|
-
await bob.riverConnection.client?.debugForceMakeMiniblock(bobChannel.data.id, {
|
|
62
|
-
forceSnapshot: true,
|
|
63
|
-
});
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
// alice joins the room
|
|
67
|
-
await alice.spaces.getSpace(spaceId).join(aliceUser.signer);
|
|
68
|
-
const aliceChannel = alice.spaces.getSpace(spaceId).getDefaultChannel();
|
|
69
|
-
// alice shouldnt receive all the messages, only a few
|
|
70
|
-
expect(aliceChannel.timeline.events.value.length).toBeLessThan(NUM_MESSAGES);
|
|
71
|
-
const aliceChannelLength = aliceChannel.timeline.events.value.length;
|
|
72
|
-
// call scrollback
|
|
73
|
-
await aliceChannel.timeline.scrollback();
|
|
74
|
-
// did we get more events?
|
|
75
|
-
await waitFor(() => expect(aliceChannel.timeline.events.value.length).toBeGreaterThanOrEqual(aliceChannelLength));
|
|
76
|
-
});
|
|
77
|
-
test.concurrent('three users in a room', async () => {
|
|
78
|
-
const { bob, alice, charlie, bobUser, aliceUser, charlieUser } = await setupTest();
|
|
79
|
-
await Promise.all([bob.start(), alice.start(), charlie.start()]);
|
|
80
|
-
// bob creates a space
|
|
81
|
-
const { spaceId } = await bob.spaces.createSpace({ spaceName: 'Encrypted Room 🔐' }, bobUser.signer);
|
|
82
|
-
const bobSpace = bob.spaces.getSpace(spaceId);
|
|
83
|
-
// create a channel
|
|
84
|
-
// const channelId = await bobSpace.createChannel('Vault 🔒', bobUser.signer)
|
|
85
|
-
// Join the space and channel
|
|
86
|
-
await Promise.all([
|
|
87
|
-
alice.spaces.getSpace(spaceId).join(aliceUser.signer),
|
|
88
|
-
charlie.spaces.getSpace(spaceId).join(charlieUser.signer),
|
|
89
|
-
]);
|
|
90
|
-
// TODO: join channel by id
|
|
91
|
-
const aliceChannel = alice.spaces.getSpace(spaceId).getDefaultChannel();
|
|
92
|
-
const charlieChannel = charlie.spaces.getSpace(spaceId).getDefaultChannel();
|
|
93
|
-
const bobChannel = bobSpace.getDefaultChannel();
|
|
94
|
-
// Confirm that the members are in
|
|
95
|
-
await waitFor(() => {
|
|
96
|
-
const members = bobChannel.members.value;
|
|
97
|
-
expect(members.data.initialized).toBe(true);
|
|
98
|
-
expect(members.data.userIds.length).toBe(3);
|
|
99
|
-
});
|
|
100
|
-
await bobChannel.sendMessage('hey everyone!');
|
|
101
|
-
// everyone should receive the message
|
|
102
|
-
await Promise.all([
|
|
103
|
-
waitFor(() => {
|
|
104
|
-
log('aliceChannel.timeline.events.value', aliceChannel.timeline.events.value);
|
|
105
|
-
expect(findMessageByText(aliceChannel.timeline.events.value, 'hey everyone!')).toBeTruthy();
|
|
106
|
-
}),
|
|
107
|
-
waitFor(() => expect(findMessageByText(charlieChannel.timeline.events.value, 'hey everyone!')).toBeTruthy()),
|
|
108
|
-
]);
|
|
109
|
-
// everyone sends a message to the room
|
|
110
|
-
await Promise.all([
|
|
111
|
-
aliceChannel.sendMessage('Hello Bob from Alice!'),
|
|
112
|
-
charlieChannel.sendMessage('Hello Bob from Charlie!'),
|
|
113
|
-
]);
|
|
114
|
-
// bob should receive the messages
|
|
115
|
-
await waitFor(() => {
|
|
116
|
-
expect(findMessageByText(bobChannel.timeline.events.value, 'Hello Bob from Alice!')).toBeTruthy();
|
|
117
|
-
expect(findMessageByText(bobChannel.timeline.events.value, 'Hello Bob from Charlie!')).toBeTruthy();
|
|
118
|
-
});
|
|
119
|
-
});
|
|
120
|
-
test.concurrent('create room, send message, send a reaction and redact', async () => {
|
|
121
|
-
const { bob, alice, bobUser, aliceUser } = await setupTest();
|
|
122
|
-
await Promise.all([bob.start(), alice.start()]);
|
|
123
|
-
const defaultMembership = await makeDefaultMembershipInfo(bob.riverConnection.spaceDapp, bob.userId);
|
|
124
|
-
const { spaceId } = await bob.spaces.createSpace({
|
|
125
|
-
spaceName: 'ReActers 🤠',
|
|
126
|
-
membership: {
|
|
127
|
-
...defaultMembership,
|
|
128
|
-
permissions: [
|
|
129
|
-
Permission.Read,
|
|
130
|
-
Permission.Write,
|
|
131
|
-
Permission.Redact,
|
|
132
|
-
Permission.React,
|
|
133
|
-
],
|
|
134
|
-
},
|
|
135
|
-
}, bobUser.signer);
|
|
136
|
-
const bobChannel = bob.spaces.getSpace(spaceId).getDefaultChannel();
|
|
137
|
-
await alice.spaces.getSpace(spaceId).join(aliceUser.signer);
|
|
138
|
-
const aliceChannel = alice.spaces.getSpace(spaceId).getDefaultChannel();
|
|
139
|
-
// bob sends a message to the room
|
|
140
|
-
await bobChannel.sendMessage('hey!');
|
|
141
|
-
// wait for alice to receive the message
|
|
142
|
-
await waitFor(async () => {
|
|
143
|
-
const event = findMessageByText(aliceChannel.timeline.events.value, 'hey!');
|
|
144
|
-
expect(event?.content?.kind === RiverTimelineEvent.ChannelMessage &&
|
|
145
|
-
event?.content?.body === 'hey!', `find hey message: ${aliceChannel.data.id}`).toEqual(true);
|
|
146
|
-
}, { timeoutMS: 20000 });
|
|
147
|
-
// alice grabs the message
|
|
148
|
-
const messageEvent = findMessageByText(aliceChannel.timeline.events.value, 'hey!');
|
|
149
|
-
expect(messageEvent).toBeTruthy();
|
|
150
|
-
// alice sends a reaction
|
|
151
|
-
const { eventId: reactionEventId } = await aliceChannel.sendReaction(messageEvent.eventId, '👍');
|
|
152
|
-
// wait for bob to receive the reaction
|
|
153
|
-
await waitFor(async () => {
|
|
154
|
-
const reaction = bobChannel.timeline.reactions.value[messageEvent.eventId];
|
|
155
|
-
expect(reaction).toBeTruthy();
|
|
156
|
-
expect(reaction?.['👍']).toBeTruthy();
|
|
157
|
-
expect(reaction?.['👍'][alice.userId].eventId).toEqual(reactionEventId);
|
|
158
|
-
});
|
|
159
|
-
// alice deletes the reaction
|
|
160
|
-
await aliceChannel.redact(reactionEventId);
|
|
161
|
-
// wait for bob to no longer see the reaction
|
|
162
|
-
await waitFor(() => {
|
|
163
|
-
const reaction = bobChannel.timeline.reactions.value[messageEvent.eventId];
|
|
164
|
-
expect(reaction).toStrictEqual({});
|
|
165
|
-
});
|
|
166
|
-
});
|
|
167
|
-
test.concurrent('create room, invite user, accept invite, and send threadded message', async () => {
|
|
168
|
-
const { bob, alice, bobUser, aliceUser } = await setupTest();
|
|
169
|
-
await Promise.all([bob.start(), alice.start()]);
|
|
170
|
-
const defaultMembership = await makeDefaultMembershipInfo(bob.riverConnection.spaceDapp, bob.userId);
|
|
171
|
-
const { spaceId } = await bob.spaces.createSpace({
|
|
172
|
-
spaceName: 'Monday Sewing Club 🧵',
|
|
173
|
-
membership: {
|
|
174
|
-
...defaultMembership,
|
|
175
|
-
permissions: [
|
|
176
|
-
Permission.Read,
|
|
177
|
-
Permission.Write,
|
|
178
|
-
Permission.Redact,
|
|
179
|
-
Permission.React,
|
|
180
|
-
],
|
|
181
|
-
},
|
|
182
|
-
}, bobUser.signer);
|
|
183
|
-
const bobChannel = bob.spaces.getSpace(spaceId).getDefaultChannel();
|
|
184
|
-
await alice.spaces.getSpace(spaceId).join(aliceUser.signer);
|
|
185
|
-
const aliceChannel = alice.spaces.getSpace(spaceId).getDefaultChannel();
|
|
186
|
-
// bob sends a message to the room
|
|
187
|
-
await bobChannel.sendMessage('hey alice, ready to sew?');
|
|
188
|
-
// wait for alice to receive the message
|
|
189
|
-
await waitFor(async () => {
|
|
190
|
-
const events = aliceChannel.timeline.events.value.map((e) => ({
|
|
191
|
-
kind: e.content?.kind,
|
|
192
|
-
body: e.content?.kind === RiverTimelineEvent.ChannelMessage
|
|
193
|
-
? e.content?.body
|
|
194
|
-
: undefined,
|
|
195
|
-
}));
|
|
196
|
-
expect(events, `find ready to sew: ${aliceChannel.data.id}`).toContainEqual({
|
|
197
|
-
kind: RiverTimelineEvent.ChannelMessage,
|
|
198
|
-
body: 'hey alice, ready to sew?',
|
|
199
|
-
});
|
|
200
|
-
}, { timeoutMS: 20000 });
|
|
201
|
-
const event = aliceChannel.timeline.events.value.find((event) => event.content?.kind === RiverTimelineEvent.ChannelMessage);
|
|
202
|
-
// a non threaded message should not have a thread parent id
|
|
203
|
-
expect(event?.threadParentId).toBeUndefined();
|
|
204
|
-
// alice sends a threaded reply room
|
|
205
|
-
const firstReply = await aliceChannel.sendMessage('yey lesgo!', {
|
|
206
|
-
threadId: event.eventId,
|
|
207
|
-
});
|
|
208
|
-
const secondReply = await aliceChannel.sendMessage('i was planning to make a hat', {
|
|
209
|
-
threadId: event.eventId,
|
|
210
|
-
});
|
|
211
|
-
// bob should receive the message in the thread and the thread id should be set to parent event id
|
|
212
|
-
await waitFor(() => {
|
|
213
|
-
const thread = bobChannel.timeline.threads.value[event.eventId];
|
|
214
|
-
expect(thread).toBeTruthy();
|
|
215
|
-
expect(thread?.find((e) => e.eventId === firstReply.eventId)?.content?.kind ===
|
|
216
|
-
RiverTimelineEvent.ChannelMessage, `find first reply ${bobChannel.data.id}`).toBeTruthy();
|
|
217
|
-
expect(thread?.find((e) => e.eventId === secondReply.eventId)?.content?.kind ===
|
|
218
|
-
RiverTimelineEvent.ChannelMessage, `find second reply ${bobChannel.data.id}`).toBeTruthy();
|
|
219
|
-
});
|
|
220
|
-
// alice deletes the first reply
|
|
221
|
-
await aliceChannel.redact(firstReply.eventId);
|
|
222
|
-
// bob should no longer see the first reply
|
|
223
|
-
await waitFor(() => {
|
|
224
|
-
const thread = bobChannel.timeline.threads.value[event.eventId];
|
|
225
|
-
expect(thread.find((e) => e.eventId === firstReply.eventId)?.content?.kind ===
|
|
226
|
-
RiverTimelineEvent.RedactedEvent, `find first reply redacted ${bobChannel.data.id}`).toBeTruthy();
|
|
227
|
-
expect(thread.find((e) => e.eventId === secondReply.eventId)?.content?.kind ===
|
|
228
|
-
RiverTimelineEvent.ChannelMessage, `find second reply not redacted ${bobChannel.data.id}`).toBeTruthy();
|
|
229
|
-
});
|
|
230
|
-
});
|
|
231
|
-
});
|
|
232
|
-
//# sourceMappingURL=timeline.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"timeline.test.js","sourceRoot":"","sources":["../../../../src/tests/multi/sync-agent/timeline.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"user.test.d.ts","sourceRoot":"","sources":["../../../../src/tests/multi/sync-agent/user.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @group with-entitlements
|
|
3
|
-
*/
|
|
4
|
-
import { dlogger } from '@towns-labs/utils';
|
|
5
|
-
import { Bot } from '../../../sync-agent/utils/bot';
|
|
6
|
-
const logger = dlogger('csb:test:user');
|
|
7
|
-
describe('User.test.ts', () => {
|
|
8
|
-
logger.log('start');
|
|
9
|
-
const testUser = new Bot();
|
|
10
|
-
beforeEach(async () => {
|
|
11
|
-
await testUser.fundWallet();
|
|
12
|
-
});
|
|
13
|
-
test('User initializes', async () => {
|
|
14
|
-
const syncAgent = await testUser.makeSyncAgent();
|
|
15
|
-
const riverConnection = syncAgent.riverConnection;
|
|
16
|
-
const user = syncAgent.user;
|
|
17
|
-
const spaces = syncAgent.spaces;
|
|
18
|
-
expect(user.data.id).toBe(testUser.userId);
|
|
19
|
-
expect(riverConnection.data.userExists).toBe(false);
|
|
20
|
-
expect(user.memberships.data.initialized).toBe(false);
|
|
21
|
-
expect(user.inbox.data.initialized).toBe(false);
|
|
22
|
-
expect(user.deviceKeys.data.initialized).toBe(false);
|
|
23
|
-
expect(user.settings.data.initialized).toBe(false);
|
|
24
|
-
await syncAgent.start();
|
|
25
|
-
expect(user.data.id).toBe(testUser.userId);
|
|
26
|
-
expect(riverConnection.data.userExists).toBe(false);
|
|
27
|
-
expect(user.memberships.data.initialized).toBe(false);
|
|
28
|
-
expect(user.inbox.data.initialized).toBe(false);
|
|
29
|
-
expect(user.deviceKeys.data.initialized).toBe(false);
|
|
30
|
-
expect(user.settings.data.initialized).toBe(false);
|
|
31
|
-
const { spaceId } = await spaces.createSpace({ spaceName: 'bobs-space' }, testUser.signer);
|
|
32
|
-
logger.log('created spaceId', spaceId);
|
|
33
|
-
expect(riverConnection.data.userExists).toBe(true);
|
|
34
|
-
expect(user.memberships.data.initialized).toBe(true);
|
|
35
|
-
expect(user.inbox.data.initialized).toBe(true);
|
|
36
|
-
expect(user.deviceKeys.data.initialized).toBe(true);
|
|
37
|
-
expect(user.settings.data.initialized).toBe(true);
|
|
38
|
-
await syncAgent.stop();
|
|
39
|
-
});
|
|
40
|
-
test('User loads from db', async () => {
|
|
41
|
-
const syncAgent = await testUser.makeSyncAgent();
|
|
42
|
-
const riverConnection = syncAgent.riverConnection;
|
|
43
|
-
const user = syncAgent.user;
|
|
44
|
-
expect(user.value.status).toBe('loading');
|
|
45
|
-
await syncAgent.start();
|
|
46
|
-
expect(user.value.status).toBe('loaded');
|
|
47
|
-
expect(riverConnection.data.userExists).toBe(true);
|
|
48
|
-
expect(user.memberships.data.initialized).toBe(true);
|
|
49
|
-
expect(user.inbox.data.initialized).toBe(true);
|
|
50
|
-
expect(user.deviceKeys.data.initialized).toBe(true);
|
|
51
|
-
expect(user.settings.data.initialized).toBe(true);
|
|
52
|
-
await syncAgent.stop();
|
|
53
|
-
});
|
|
54
|
-
});
|
|
55
|
-
//# sourceMappingURL=user.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"user.test.js","sourceRoot":"","sources":["../../../../src/tests/multi/sync-agent/user.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"transactions.test.d.ts","sourceRoot":"","sources":["../../../src/tests/multi/transactions.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|