@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":"botStreamCreation.test.js","sourceRoot":"","sources":["../../../src/tests/multi/botStreamCreation.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"channelScrubbing.test.d.ts","sourceRoot":"","sources":["../../../src/tests/multi/channelScrubbing.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
|
@@ -1,102 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @group with-entitlements
|
|
3
|
-
*/
|
|
4
|
-
import { MembershipOp, MembershipReason } from '@towns-protocol/proto';
|
|
5
|
-
import { makeUserStreamId } from '../../id';
|
|
6
|
-
import { getNftRuleData, linkWallets, unlinkWallet, setupChannelWithCustomRole, expectUserCanJoinChannel, waitFor, setupWalletsAndContexts, everyoneMembershipStruct, createSpaceAndDefaultChannel, } from '../testUtils';
|
|
7
|
-
import { dlog } from '@towns-protocol/utils';
|
|
8
|
-
import { TestERC721, AppRegistryDapp, Permission, SpaceAddressFromSpaceId, } from '@towns-protocol/web3';
|
|
9
|
-
import { ethers } from 'ethers';
|
|
10
|
-
import { townsEnv } from '../../townsEnv';
|
|
11
|
-
const log = dlog('csb:test:channelsWithEntitlements');
|
|
12
|
-
describe('channelScrubbing', () => {
|
|
13
|
-
test('User who loses entitlements is bounced after a channel scrub is triggered', async () => {
|
|
14
|
-
const TestNftName = 'TestNFT';
|
|
15
|
-
const TestNftAddress = await TestERC721.getContractAddress(TestNftName);
|
|
16
|
-
const { alice, aliceSpaceDapp, aliceProvider, carol, carolSpaceDapp, carolProvider, spaceId, channelId, } = await setupChannelWithCustomRole([], getNftRuleData(TestNftAddress));
|
|
17
|
-
const aliceLinkedWallet = ethers.Wallet.createRandom();
|
|
18
|
-
const carolLinkedWallet = ethers.Wallet.createRandom();
|
|
19
|
-
// link wallets
|
|
20
|
-
await Promise.all([
|
|
21
|
-
linkWallets(aliceSpaceDapp, aliceProvider.wallet, aliceLinkedWallet),
|
|
22
|
-
linkWallets(carolSpaceDapp, carolProvider.wallet, carolLinkedWallet),
|
|
23
|
-
]);
|
|
24
|
-
// Mint the needed asset to Alice and Carol's linked wallets
|
|
25
|
-
log('Minting an NFT to alices linked wallet');
|
|
26
|
-
await Promise.all([
|
|
27
|
-
TestERC721.publicMint(TestNftName, aliceLinkedWallet.address),
|
|
28
|
-
TestERC721.publicMint(TestNftName, carolLinkedWallet.address),
|
|
29
|
-
]);
|
|
30
|
-
// Join alice to the channel based on her linked wallet credentials
|
|
31
|
-
await expectUserCanJoinChannel(alice, aliceSpaceDapp, spaceId, channelId);
|
|
32
|
-
await unlinkWallet(aliceSpaceDapp, aliceProvider.wallet, aliceLinkedWallet);
|
|
33
|
-
// Wait 5 seconds so the channel stream will become eligible for scrubbing
|
|
34
|
-
await new Promise((f) => setTimeout(f, 5000));
|
|
35
|
-
// When carol's join event is added to the stream, it should trigger a scrub, and Alice
|
|
36
|
-
// should be booted from the stream since she unlinked her entitled wallet.
|
|
37
|
-
await expectUserCanJoinChannel(carol, carolSpaceDapp, spaceId, channelId);
|
|
38
|
-
const userStreamView = (await alice.waitForStream(makeUserStreamId(alice.userId))).view;
|
|
39
|
-
// Wait for alice's user stream to have the leave event
|
|
40
|
-
await waitFor(() => {
|
|
41
|
-
const membership = userStreamView.userContent.getMembership(channelId);
|
|
42
|
-
expect(membership?.op).toBe(MembershipOp.SO_LEAVE);
|
|
43
|
-
expect(membership?.reason).toBe(MembershipReason.MR_NOT_ENTITLED);
|
|
44
|
-
});
|
|
45
|
-
});
|
|
46
|
-
test('Bot loses membership and is scrubbed from channel when uninstalled from space', async () => {
|
|
47
|
-
const { alice: spaceOwner, aliceProvider: spaceOwnerProvider, aliceSpaceDapp: spaceOwnerSpaceDapp, bob: bot, bobsWallet: botWallet, bobProvider: botProvider, } = await setupWalletsAndContexts();
|
|
48
|
-
const appRegistryDapp = new AppRegistryDapp(townsEnv().makeBaseChainConfig().chainConfig, spaceOwnerProvider);
|
|
49
|
-
// Create bot app contract
|
|
50
|
-
const tx = await appRegistryDapp.createApp(botProvider.signer, 'scrub-test-bot', [Permission.Read, Permission.Write], botWallet.address, ethers.utils.parseEther('0.01').toBigInt(), 31536000n);
|
|
51
|
-
const receipt = await tx.wait();
|
|
52
|
-
const { app: foundAppAddress } = appRegistryDapp.getCreateAppEvent(receipt, botWallet.address);
|
|
53
|
-
expect(foundAppAddress).toBeDefined();
|
|
54
|
-
// Create bot user streams
|
|
55
|
-
await expect(bot.initializeUser({ appAddress: foundAppAddress })).resolves.toBeDefined();
|
|
56
|
-
bot.startSync();
|
|
57
|
-
// Create a town with channels (everyone can join)
|
|
58
|
-
const everyoneMembership = await everyoneMembershipStruct(spaceOwnerSpaceDapp, spaceOwner);
|
|
59
|
-
const { spaceId, defaultChannelId: channelId } = await createSpaceAndDefaultChannel(spaceOwner, spaceOwnerSpaceDapp, spaceOwnerProvider.wallet, "space owner's town", everyoneMembership);
|
|
60
|
-
// Install the bot to the space (as space owner)
|
|
61
|
-
const installTx = await appRegistryDapp.installApp(spaceOwnerProvider.signer, foundAppAddress, SpaceAddressFromSpaceId(spaceId), ethers.utils.parseEther('0.02').toBigInt());
|
|
62
|
-
const installReceipt = await installTx.wait();
|
|
63
|
-
expect(installReceipt.status).toBe(1);
|
|
64
|
-
// Verify bot is installed
|
|
65
|
-
const space = spaceOwnerSpaceDapp.getSpace(spaceId);
|
|
66
|
-
const installedApps = await space.AppAccount.read.getInstalledApps();
|
|
67
|
-
expect(installedApps).toContain(foundAppAddress);
|
|
68
|
-
// Have space owner add bot to space and channel
|
|
69
|
-
await expect(spaceOwner.joinUser(spaceId, bot.userId)).resolves.toBeDefined();
|
|
70
|
-
await expect(spaceOwner.joinUser(channelId, bot.userId)).resolves.toBeDefined();
|
|
71
|
-
// Validate bot is a member of both space and channel
|
|
72
|
-
const botUserStreamView = bot.stream(bot.userStreamId).view;
|
|
73
|
-
await waitFor(() => {
|
|
74
|
-
expect(botUserStreamView.userContent.isMember(spaceId, MembershipOp.SO_JOIN)).toBe(true);
|
|
75
|
-
expect(botUserStreamView.userContent.isMember(channelId, MembershipOp.SO_JOIN)).toBe(true);
|
|
76
|
-
});
|
|
77
|
-
// Uninstall the bot from the space (this should make it lose membership eligibility)
|
|
78
|
-
// Note: Using removeApp method - in a real implementation this might be a different method
|
|
79
|
-
// like uninstallApp, but removeApp should serve the same purpose for testing
|
|
80
|
-
const removeAppTx = await appRegistryDapp.uninstallApp(spaceOwnerProvider.signer, foundAppAddress, space?.Address);
|
|
81
|
-
const removeAppReceipt = await removeAppTx.wait();
|
|
82
|
-
expect(removeAppReceipt.status).toBe(1);
|
|
83
|
-
// Verify bot is no longer installed
|
|
84
|
-
const installedAppsAfterRemoval = await space.AppAccount.read.getInstalledApps();
|
|
85
|
-
expect(installedAppsAfterRemoval).not.toContain(foundAppAddress);
|
|
86
|
-
// Wait 5 seconds so the channel stream will become eligible for scrubbing
|
|
87
|
-
await new Promise((f) => setTimeout(f, 5000));
|
|
88
|
-
// Have the bot attempt to post a message to the channel to trigger scrubbing
|
|
89
|
-
// This should fail with a permission error since the bot is no longer installed/entitled, and trigger a scrub
|
|
90
|
-
await expect(bot.sendMessage(channelId, 'test message from bot')).rejects.toThrow(/PERMISSION_DENIED/);
|
|
91
|
-
// Wait for bot's user stream to have the leave event due to being scrubbed
|
|
92
|
-
await waitFor(() => {
|
|
93
|
-
const membership = botUserStreamView.userContent.getMembership(channelId);
|
|
94
|
-
expect(membership?.op).toBe(MembershipOp.SO_LEAVE);
|
|
95
|
-
expect(membership?.reason).toBe(MembershipReason.MR_NOT_ENTITLED);
|
|
96
|
-
});
|
|
97
|
-
// Cleanup
|
|
98
|
-
await bot.stopSync();
|
|
99
|
-
await spaceOwner.stopSync();
|
|
100
|
-
});
|
|
101
|
-
});
|
|
102
|
-
//# sourceMappingURL=channelScrubbing.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"channelScrubbing.test.js","sourceRoot":"","sources":["../../../src/tests/multi/channelScrubbing.test.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAC3C,OAAO,EACH,cAAc,EACd,WAAW,EACX,YAAY,EACZ,0BAA0B,EAC1B,wBAAwB,EACxB,OAAO,EACP,uBAAuB,EACvB,wBAAwB,EACxB,4BAA4B,GAC/B,MAAM,cAAc,CAAA;AACrB,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAA;AAC5C,OAAO,EAEH,UAAU,EACV,eAAe,EACf,UAAU,EACV,uBAAuB,GAC1B,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/B,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,MAAM,GAAG,GAAG,IAAI,CAAC,mCAAmC,CAAC,CAAA;AAErD,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAC9B,IAAI,CAAC,2EAA2E,EAAE,KAAK,IAAI,EAAE;QACzF,MAAM,WAAW,GAAG,SAAS,CAAA;QAC7B,MAAM,cAAc,GAAG,MAAM,UAAU,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAA;QACvE,MAAM,EACF,KAAK,EACL,cAAc,EACd,aAAa,EACb,KAAK,EACL,cAAc,EACd,aAAa,EACb,OAAO,EACP,SAAS,GACZ,GAAG,MAAM,0BAA0B,CAAC,EAAE,EAAE,cAAc,CAAC,cAAc,CAAC,CAAC,CAAA;QAExE,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,CAAA;QACtD,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,CAAA;QAEtD,eAAe;QACf,MAAM,OAAO,CAAC,GAAG,CAAC;YACd,WAAW,CAAC,cAAc,EAAE,aAAa,CAAC,MAAM,EAAE,iBAAiB,CAAC;YACpE,WAAW,CAAC,cAAc,EAAE,aAAa,CAAC,MAAM,EAAE,iBAAiB,CAAC;SACvE,CAAC,CAAA;QACF,4DAA4D;QAC5D,GAAG,CAAC,wCAAwC,CAAC,CAAA;QAC7C,MAAM,OAAO,CAAC,GAAG,CAAC;YACd,UAAU,CAAC,UAAU,CAAC,WAAW,EAAE,iBAAiB,CAAC,OAAkB,CAAC;YACxE,UAAU,CAAC,UAAU,CAAC,WAAW,EAAE,iBAAiB,CAAC,OAAkB,CAAC;SAC3E,CAAC,CAAA;QAEF,mEAAmE;QACnE,MAAM,wBAAwB,CAAC,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,SAAU,CAAC,CAAA;QAE1E,MAAM,YAAY,CAAC,cAAc,EAAE,aAAa,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAA;QAE3E,0EAA0E;QAC1E,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAA;QAE7C,uFAAuF;QACvF,2EAA2E;QAC3E,MAAM,wBAAwB,CAAC,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,SAAU,CAAC,CAAA;QAE1E,MAAM,cAAc,GAAG,CAAC,MAAM,KAAK,CAAC,aAAa,CAAC,gBAAgB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;QACvF,uDAAuD;QACvD,MAAM,OAAO,CAAC,GAAG,EAAE;YACf,MAAM,UAAU,GAAG,cAAc,CAAC,WAAW,CAAC,aAAa,CAAC,SAAU,CAAC,CAAA;YACvE,MAAM,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAA;YAClD,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAA;QACrE,CAAC,CAAC,CAAA;IACN,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,+EAA+E,EAAE,KAAK,IAAI,EAAE;QAC7F,MAAM,EACF,KAAK,EAAE,UAAU,EACjB,aAAa,EAAE,kBAAkB,EACjC,cAAc,EAAE,mBAAmB,EACnC,GAAG,EAAE,GAAG,EACR,UAAU,EAAE,SAAS,EACrB,WAAW,EAAE,WAAW,GAC3B,GAAG,MAAM,uBAAuB,EAAE,CAAA;QAEnC,MAAM,eAAe,GAAG,IAAI,eAAe,CACvC,QAAQ,EAAE,CAAC,mBAAmB,EAAE,CAAC,WAAW,EAC5C,kBAAkB,CACrB,CAAA;QAED,0BAA0B;QAC1B,MAAM,EAAE,GAAG,MAAM,eAAe,CAAC,SAAS,CACtC,WAAW,CAAC,MAAM,EAClB,gBAAgB,EAChB,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,KAAK,CAAC,EACnC,SAAS,CAAC,OAAkB,EAC5B,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAC1C,SAAS,CACZ,CAAA;QACD,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,IAAI,EAAE,CAAA;QAC/B,MAAM,EAAE,GAAG,EAAE,eAAe,EAAE,GAAG,eAAe,CAAC,iBAAiB,CAC9D,OAAO,EACP,SAAS,CAAC,OAAkB,CAC/B,CAAA;QACD,MAAM,CAAC,eAAe,CAAC,CAAC,WAAW,EAAE,CAAA;QAErC,0BAA0B;QAC1B,MAAM,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,UAAU,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAA;QACxF,GAAG,CAAC,SAAS,EAAE,CAAA;QAEf,kDAAkD;QAClD,MAAM,kBAAkB,GAAG,MAAM,wBAAwB,CAAC,mBAAmB,EAAE,UAAU,CAAC,CAAA;QAC1F,MAAM,EAAE,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,GAAG,MAAM,4BAA4B,CAC/E,UAAU,EACV,mBAAmB,EACnB,kBAAkB,CAAC,MAAM,EACzB,oBAAoB,EACpB,kBAAkB,CACrB,CAAA;QAED,gDAAgD;QAChD,MAAM,SAAS,GAAG,MAAM,eAAe,CAAC,UAAU,CAC9C,kBAAkB,CAAC,MAAM,EACzB,eAA0B,EAC1B,uBAAuB,CAAC,OAAO,CAAC,EAChC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAC7C,CAAA;QACD,MAAM,cAAc,GAAG,MAAM,SAAS,CAAC,IAAI,EAAE,CAAA;QAC7C,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAErC,0BAA0B;QAC1B,MAAM,KAAK,GAAG,mBAAmB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;QACnD,MAAM,aAAa,GAAG,MAAM,KAAM,CAAC,UAAU,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAA;QACrE,MAAM,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,CAAA;QAEhD,gDAAgD;QAChD,MAAM,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAA;QAC7E,MAAM,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAA;QAE/E,qDAAqD;QACrD,MAAM,iBAAiB,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,YAAa,CAAE,CAAC,IAAI,CAAA;QAC7D,MAAM,OAAO,CAAC,GAAG,EAAE;YACf,MAAM,CAAC,iBAAiB,CAAC,WAAW,CAAC,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YACxF,MAAM,CAAC,iBAAiB,CAAC,WAAW,CAAC,QAAQ,CAAC,SAAS,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAChF,IAAI,CACP,CAAA;QACL,CAAC,CAAC,CAAA;QAEF,qFAAqF;QACrF,2FAA2F;QAC3F,6EAA6E;QAC7E,MAAM,WAAW,GAAG,MAAM,eAAe,CAAC,YAAY,CAClD,kBAAkB,CAAC,MAAM,EACzB,eAA0B,EAC1B,KAAK,EAAE,OAAkB,CAC5B,CAAA;QACD,MAAM,gBAAgB,GAAG,MAAM,WAAW,CAAC,IAAI,EAAE,CAAA;QACjD,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAEvC,oCAAoC;QACpC,MAAM,yBAAyB,GAAG,MAAM,KAAM,CAAC,UAAU,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAA;QACjF,MAAM,CAAC,yBAAyB,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,eAAe,CAAC,CAAA;QAEhE,0EAA0E;QAC1E,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAA;QAE7C,6EAA6E;QAC7E,8GAA8G;QAC9G,MAAM,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,SAAS,EAAE,uBAAuB,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAC7E,mBAAmB,CACtB,CAAA;QAED,2EAA2E;QAC3E,MAAM,OAAO,CAAC,GAAG,EAAE;YACf,MAAM,UAAU,GAAG,iBAAiB,CAAC,WAAW,CAAC,aAAa,CAAC,SAAS,CAAC,CAAA;YACzE,MAAM,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAA;YAClD,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAA;QACrE,CAAC,CAAC,CAAA;QAEF,UAAU;QACV,MAAM,GAAG,CAAC,QAAQ,EAAE,CAAA;QACpB,MAAM,UAAU,CAAC,QAAQ,EAAE,CAAA;IAC/B,CAAC,CAAC,CAAA;AACN,CAAC,CAAC,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"notificationService.test.d.ts","sourceRoot":"","sources":["../../../src/tests/multi/notificationService.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
import { env } from 'process';
|
|
2
|
-
import { dlogger } from '@towns-labs/utils';
|
|
3
|
-
import { NotificationService } from '../../notificationService';
|
|
4
|
-
import { ethers } from 'ethers';
|
|
5
|
-
import { DmChannelSettingValue, GdmChannelSettingValue, GetSettingsRequestSchema, SetDmGdmSettingsRequestSchema, } from '@towns-labs/proto';
|
|
6
|
-
import { makeSignerContext } from '../../signerContext';
|
|
7
|
-
import { create } from '@bufbuild/protobuf';
|
|
8
|
-
const logger = dlogger('notificationService.test');
|
|
9
|
-
describe('notificationServicetest', () => {
|
|
10
|
-
// NOTE: at this time the service only accepts http2 connections so you can't connect to alpha from a jest test
|
|
11
|
-
test('login with primary key', async () => {
|
|
12
|
-
const notificationServiceUrl = env.NOTIFICATION_SERVICE_URL; // ?? 'https://river-notification-service-alpha.towns.com/' // ?? 'http://localhost:4040
|
|
13
|
-
if (!notificationServiceUrl) {
|
|
14
|
-
logger.info('NOTIFICATION_SERVICE_URL is not set');
|
|
15
|
-
return;
|
|
16
|
-
}
|
|
17
|
-
const wallet = ethers.Wallet.createRandom();
|
|
18
|
-
const signer = wallet;
|
|
19
|
-
const userId = wallet.address;
|
|
20
|
-
const { startResponse, finishResponse, notificationRpcClient } = await NotificationService.authenticateWithSigner(userId, signer, notificationServiceUrl);
|
|
21
|
-
logger.info('authenticated', { startResponse, finishResponse });
|
|
22
|
-
const settings = await notificationRpcClient.getSettings(create(GetSettingsRequestSchema));
|
|
23
|
-
logger.info('settings', settings);
|
|
24
|
-
const newSettings = await notificationRpcClient.setDmGdmSettings(create(SetDmGdmSettingsRequestSchema, {
|
|
25
|
-
dmGlobal: DmChannelSettingValue.DM_MESSAGES_NO,
|
|
26
|
-
gdmGlobal: GdmChannelSettingValue.GDM_MESSAGES_NO,
|
|
27
|
-
}));
|
|
28
|
-
logger.info('new settings', newSettings);
|
|
29
|
-
});
|
|
30
|
-
// NOTE: at this time the service only accepts http2 connections so you can't connect to alpha from a jest test
|
|
31
|
-
test('login with delegate key', async () => {
|
|
32
|
-
const notificationServiceUrl = env.NOTIFICATION_SERVICE_URL; // ?? 'https://river-notification-service-alpha.towns.com/' // ?? 'http://localhost:4040
|
|
33
|
-
if (!notificationServiceUrl) {
|
|
34
|
-
logger.info('NOTIFICATION_SERVICE_URL is not set');
|
|
35
|
-
return;
|
|
36
|
-
}
|
|
37
|
-
const wallet = ethers.Wallet.createRandom();
|
|
38
|
-
const delegateWallet = ethers.Wallet.createRandom();
|
|
39
|
-
const signerContext = await makeSignerContext(wallet, delegateWallet, { days: 1 });
|
|
40
|
-
const { startResponse, finishResponse, notificationRpcClient } = await NotificationService.authenticate(signerContext, notificationServiceUrl);
|
|
41
|
-
logger.info('authenticated', { startResponse, finishResponse });
|
|
42
|
-
const settings = await notificationRpcClient.getSettings(create(GetSettingsRequestSchema));
|
|
43
|
-
logger.info('settings', settings);
|
|
44
|
-
const newSettings = await notificationRpcClient.setDmGdmSettings(create(SetDmGdmSettingsRequestSchema, {
|
|
45
|
-
dmGlobal: DmChannelSettingValue.DM_MESSAGES_NO,
|
|
46
|
-
gdmGlobal: GdmChannelSettingValue.GDM_MESSAGES_NO,
|
|
47
|
-
}));
|
|
48
|
-
logger.info('new settings', newSettings);
|
|
49
|
-
});
|
|
50
|
-
});
|
|
51
|
-
//# sourceMappingURL=notificationService.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"notificationService.test.js","sourceRoot":"","sources":["../../../src/tests/multi/notificationService.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"member-queue.test.d.ts","sourceRoot":"","sources":["../../../../src/tests/multi/sync-agent/member-queue.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @group with-entitlements
|
|
3
|
-
*/
|
|
4
|
-
import { Bot } from '../../../sync-agent/utils/bot';
|
|
5
|
-
describe('member.test.ts - queue update', () => {
|
|
6
|
-
test('queue update metadata', async () => {
|
|
7
|
-
const testMetadata = {
|
|
8
|
-
username: 'bob123',
|
|
9
|
-
displayName: 'Bob',
|
|
10
|
-
ensAddress: '0xbB29f0d47678BBc844f3B87F527aBBbab258F051',
|
|
11
|
-
nft: {
|
|
12
|
-
tokenId: '1043',
|
|
13
|
-
contractAddress: '0x5af0d9827e0c53e4799bb226655a1de152a425a5',
|
|
14
|
-
chainId: 1,
|
|
15
|
-
},
|
|
16
|
-
};
|
|
17
|
-
const bobUser = new Bot();
|
|
18
|
-
await bobUser.fundWallet();
|
|
19
|
-
const bob = await bobUser.makeSyncAgent();
|
|
20
|
-
let newSpaceId;
|
|
21
|
-
const updateAllMetadata = bob.spaces
|
|
22
|
-
.createSpace({
|
|
23
|
-
spaceName: 'test metadata',
|
|
24
|
-
}, bobUser.signer)
|
|
25
|
-
.then(({ spaceId }) => {
|
|
26
|
-
newSpaceId = spaceId;
|
|
27
|
-
return bob.spaces.getSpace(spaceId);
|
|
28
|
-
})
|
|
29
|
-
.then((space) => {
|
|
30
|
-
const metadata = space.members.myself;
|
|
31
|
-
return Promise.all([
|
|
32
|
-
metadata.setUsername(testMetadata.username),
|
|
33
|
-
metadata.setDisplayName(testMetadata.displayName),
|
|
34
|
-
metadata.setEnsAddress(testMetadata.ensAddress),
|
|
35
|
-
metadata.setNft(testMetadata.nft),
|
|
36
|
-
]);
|
|
37
|
-
});
|
|
38
|
-
await bob.start();
|
|
39
|
-
await expect(updateAllMetadata).resolves.toBeDefined();
|
|
40
|
-
const msg = `expected SpaceId: ${newSpaceId} user: ${bob.userId} userStreamId: ${bob.riverConnection.client?.userStreamId}`;
|
|
41
|
-
expect(bob.spaces.data.spaceIds.length, msg).toBe(1);
|
|
42
|
-
const spaceId = bob.spaces.data.spaceIds[0];
|
|
43
|
-
expect(spaceId, msg).toBeDefined();
|
|
44
|
-
expect(spaceId.length, msg).toBeGreaterThan(0);
|
|
45
|
-
const space = bob.spaces.getSpace(spaceId);
|
|
46
|
-
const member = space.members.get(bob.userId);
|
|
47
|
-
expect(member?.username).toBe(testMetadata.username);
|
|
48
|
-
expect(member?.displayName).toBe(testMetadata.displayName);
|
|
49
|
-
expect(member?.ensAddress).toBe(testMetadata.ensAddress);
|
|
50
|
-
expect(member?.nft).toStrictEqual(testMetadata.nft);
|
|
51
|
-
await bob.stop();
|
|
52
|
-
});
|
|
53
|
-
});
|
|
54
|
-
//# sourceMappingURL=member-queue.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"member-queue.test.js","sourceRoot":"","sources":["../../../../src/tests/multi/sync-agent/member-queue.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"member.test.d.ts","sourceRoot":"","sources":["../../../../src/tests/multi/sync-agent/member.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @group with-entitlements
|
|
3
|
-
*/
|
|
4
|
-
import { Bot } from '../../../sync-agent/utils/bot';
|
|
5
|
-
describe('member.test.ts', () => {
|
|
6
|
-
let bob;
|
|
7
|
-
beforeAll(async () => {
|
|
8
|
-
const bobUser = new Bot();
|
|
9
|
-
await bobUser.fundWallet();
|
|
10
|
-
const sync = await bobUser.makeSyncAgent();
|
|
11
|
-
await sync.start();
|
|
12
|
-
const { spaceId } = await sync.spaces.createSpace({
|
|
13
|
-
spaceName: 'test metadata',
|
|
14
|
-
}, bobUser.signer);
|
|
15
|
-
const space = sync.spaces.getSpace(spaceId);
|
|
16
|
-
bob = space.members.myself;
|
|
17
|
-
});
|
|
18
|
-
test('update username', async () => {
|
|
19
|
-
expect(bob).toBeDefined();
|
|
20
|
-
expect(bob.username).toBe('');
|
|
21
|
-
await bob.setUsername('bob123');
|
|
22
|
-
expect(bob.username).toBe('bob123');
|
|
23
|
-
});
|
|
24
|
-
test('update displayname', async () => {
|
|
25
|
-
expect(bob.displayName).toBe('');
|
|
26
|
-
await bob.setDisplayName('Bob');
|
|
27
|
-
expect(bob.displayName).toBe('Bob');
|
|
28
|
-
});
|
|
29
|
-
test('update ensAddress', async () => {
|
|
30
|
-
expect(bob.ensAddress).toBe(undefined);
|
|
31
|
-
await bob.setEnsAddress('0xbB29f0d47678BBc844f3B87F527aBBbab258F051');
|
|
32
|
-
expect(bob.ensAddress).toBe('0xbB29f0d47678BBc844f3B87F527aBBbab258F051');
|
|
33
|
-
});
|
|
34
|
-
test('update nft', async () => {
|
|
35
|
-
expect(bob.nft).toBe(undefined);
|
|
36
|
-
const miladyNft = {
|
|
37
|
-
tokenId: '1043',
|
|
38
|
-
contractAddress: '0x5af0d9827e0c53e4799bb226655a1de152a425a5',
|
|
39
|
-
chainId: 1,
|
|
40
|
-
};
|
|
41
|
-
await bob.setNft(miladyNft);
|
|
42
|
-
expect(bob.nft).toStrictEqual(miladyNft);
|
|
43
|
-
});
|
|
44
|
-
});
|
|
45
|
-
//# sourceMappingURL=member.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"member.test.js","sourceRoot":"","sources":["../../../../src/tests/multi/sync-agent/member.test.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,GAAG,EAAE,MAAM,+BAA+B,CAAA;AAGnD,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;IAC5B,IAAI,GAAW,CAAA;IACf,SAAS,CAAC,KAAK,IAAI,EAAE;QACjB,MAAM,OAAO,GAAG,IAAI,GAAG,EAAE,CAAA;QACzB,MAAM,OAAO,CAAC,UAAU,EAAE,CAAA;QAC1B,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,aAAa,EAAE,CAAA;QAC1C,MAAM,IAAI,CAAC,KAAK,EAAE,CAAA;QAClB,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAC7C;YACI,SAAS,EAAE,eAAe;SAC7B,EACD,OAAO,CAAC,MAAM,CACjB,CAAA;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;QAC3C,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAA;IAC9B,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,iBAAiB,EAAE,KAAK,IAAI,EAAE;QAC/B,MAAM,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAA;QACzB,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAC7B,MAAM,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAA;QAC/B,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IACvC,CAAC,CAAC,CAAA;IACF,IAAI,CAAC,oBAAoB,EAAE,KAAK,IAAI,EAAE;QAClC,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAChC,MAAM,GAAG,CAAC,cAAc,CAAC,KAAK,CAAC,CAAA;QAC/B,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACvC,CAAC,CAAC,CAAA;IACF,IAAI,CAAC,mBAAmB,EAAE,KAAK,IAAI,EAAE;QACjC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QACtC,MAAM,GAAG,CAAC,aAAa,CAAC,4CAA4C,CAAC,CAAA;QACrE,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAA;IAC7E,CAAC,CAAC,CAAA;IACF,IAAI,CAAC,YAAY,EAAE,KAAK,IAAI,EAAE;QAC1B,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QAC/B,MAAM,SAAS,GAAG;YACd,OAAO,EAAE,MAAM;YACf,eAAe,EAAE,4CAA4C;YAC7D,OAAO,EAAE,CAAC;SACb,CAAA;QACD,MAAM,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;QAC3B,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,aAAa,CAAC,SAAS,CAAC,CAAA;IAC5C,CAAC,CAAC,CAAA;AACN,CAAC,CAAC,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"members.test.d.ts","sourceRoot":"","sources":["../../../../src/tests/multi/sync-agent/members.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @group with-entitlements
|
|
3
|
-
*/
|
|
4
|
-
import { Bot } from '../../../sync-agent/utils/bot';
|
|
5
|
-
import { waitFor } from '../../testUtils';
|
|
6
|
-
import { MembershipOp } from '@towns-labs/proto';
|
|
7
|
-
describe('members.test.ts', () => {
|
|
8
|
-
const testUser = new Bot();
|
|
9
|
-
let syncAgent;
|
|
10
|
-
let space;
|
|
11
|
-
beforeAll(async () => {
|
|
12
|
-
await testUser.fundWallet();
|
|
13
|
-
syncAgent = await testUser.makeSyncAgent();
|
|
14
|
-
await syncAgent.start();
|
|
15
|
-
const { spaceId } = await syncAgent.spaces.createSpace({ spaceName: 'Blast Off' }, testUser.signer);
|
|
16
|
-
space = syncAgent.spaces.getSpace(spaceId);
|
|
17
|
-
});
|
|
18
|
-
afterAll(async () => {
|
|
19
|
-
await syncAgent.stop();
|
|
20
|
-
});
|
|
21
|
-
test('member should be defined in a new space', async () => {
|
|
22
|
-
expect(syncAgent.spaces.value.status).not.toBe('loading');
|
|
23
|
-
await waitFor(() => expect(space.value.status).not.toBe('loading'));
|
|
24
|
-
await waitFor(() => expect(space.data.channelIds.length).toBe(1));
|
|
25
|
-
const members = space.members.data;
|
|
26
|
-
expect(members.userIds.length).toBe(1);
|
|
27
|
-
expect(members.userIds[0]).toBe(testUser.userId);
|
|
28
|
-
});
|
|
29
|
-
test('Members.getMember always return a member, even if not in the space/channel yet', async () => {
|
|
30
|
-
const newMember = new Bot();
|
|
31
|
-
const member = space.members.get(newMember.userId);
|
|
32
|
-
expect(member.membership).toBe(MembershipOp.SO_UNSPECIFIED);
|
|
33
|
-
});
|
|
34
|
-
});
|
|
35
|
-
//# sourceMappingURL=members.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"members.test.js","sourceRoot":"","sources":["../../../../src/tests/multi/sync-agent/members.test.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,GAAG,EAAE,MAAM,+BAA+B,CAAA;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AAGzC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAEhD,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC7B,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAE,CAAA;IAC1B,IAAI,SAAoB,CAAA;IACxB,IAAI,KAAY,CAAA;IAChB,SAAS,CAAC,KAAK,IAAI,EAAE;QACjB,MAAM,QAAQ,CAAC,UAAU,EAAE,CAAA;QAC3B,SAAS,GAAG,MAAM,QAAQ,CAAC,aAAa,EAAE,CAAA;QAC1C,MAAM,SAAS,CAAC,KAAK,EAAE,CAAA;QACvB,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,SAAS,CAAC,MAAM,CAAC,WAAW,CAClD,EAAE,SAAS,EAAE,WAAW,EAAE,EAC1B,QAAQ,CAAC,MAAM,CAClB,CAAA;QAED,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAE,CAAA;IAC/C,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,KAAK,IAAI,EAAE;QAChB,MAAM,SAAS,CAAC,IAAI,EAAE,CAAA;IAC1B,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,yCAAyC,EAAE,KAAK,IAAI,EAAE;QACvD,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QACzD,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAA;QACnE,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;QAEjE,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAA;QAClC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACtC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;IACpD,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,gFAAgF,EAAE,KAAK,IAAI,EAAE;QAC9F,MAAM,SAAS,GAAG,IAAI,GAAG,EAAE,CAAA;QAC3B,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;QAClD,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,CAAA;IAC/D,CAAC,CAAC,CAAA;AACN,CAAC,CAAC,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"riverConnection.test.d.ts","sourceRoot":"","sources":["../../../../src/tests/multi/sync-agent/riverConnection.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @group with-entitlements
|
|
3
|
-
*/
|
|
4
|
-
import { Bot } from '../../../sync-agent/utils/bot';
|
|
5
|
-
import { waitFor } from '../../testUtils';
|
|
6
|
-
describe('RiverConnection.test.ts', () => {
|
|
7
|
-
const testUser = new Bot();
|
|
8
|
-
beforeEach(async () => {
|
|
9
|
-
await testUser.fundWallet();
|
|
10
|
-
});
|
|
11
|
-
// test that a riverConnection will eventually be defined if passed valid config
|
|
12
|
-
test('riverConnection initializes from empty', async () => {
|
|
13
|
-
const syncAgent = await testUser.makeSyncAgent();
|
|
14
|
-
const riverConnection = syncAgent.riverConnection;
|
|
15
|
-
// check initial state
|
|
16
|
-
expect(riverConnection.client).toBeUndefined();
|
|
17
|
-
// load
|
|
18
|
-
await syncAgent.start();
|
|
19
|
-
await waitFor(() => {
|
|
20
|
-
expect(riverConnection.client).toBeDefined();
|
|
21
|
-
});
|
|
22
|
-
// cleanup
|
|
23
|
-
await syncAgent.stop();
|
|
24
|
-
});
|
|
25
|
-
// test that a riverConnection will instantly be defined if data exists in local store
|
|
26
|
-
test('riverConnection loads from db', async () => {
|
|
27
|
-
// init
|
|
28
|
-
const syncAgent = await testUser.makeSyncAgent();
|
|
29
|
-
const riverConnection = syncAgent.riverConnection;
|
|
30
|
-
// check initial state
|
|
31
|
-
expect(riverConnection.client).toBeUndefined();
|
|
32
|
-
// load
|
|
33
|
-
await syncAgent.start();
|
|
34
|
-
// should still be defined before we even start!
|
|
35
|
-
expect(riverConnection.client).toBeDefined();
|
|
36
|
-
await riverConnection.stop();
|
|
37
|
-
});
|
|
38
|
-
});
|
|
39
|
-
//# sourceMappingURL=riverConnection.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"riverConnection.test.js","sourceRoot":"","sources":["../../../../src/tests/multi/sync-agent/riverConnection.test.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,GAAG,EAAE,MAAM,+BAA+B,CAAA;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AAEzC,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;IACrC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAE,CAAA;IAE1B,UAAU,CAAC,KAAK,IAAI,EAAE;QAClB,MAAM,QAAQ,CAAC,UAAU,EAAE,CAAA;IAC/B,CAAC,CAAC,CAAA;IAEF,gFAAgF;IAChF,IAAI,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;QACtD,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,aAAa,EAAE,CAAA;QAChD,MAAM,eAAe,GAAG,SAAS,CAAC,eAAe,CAAA;QAEjD,sBAAsB;QACtB,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,aAAa,EAAE,CAAA;QAE9C,OAAO;QACP,MAAM,SAAS,CAAC,KAAK,EAAE,CAAA;QAEvB,MAAM,OAAO,CAAC,GAAG,EAAE;YACf,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAA;QAChD,CAAC,CAAC,CAAA;QACF,UAAU;QACV,MAAM,SAAS,CAAC,IAAI,EAAE,CAAA;IAC1B,CAAC,CAAC,CAAA;IACF,sFAAsF;IACtF,IAAI,CAAC,+BAA+B,EAAE,KAAK,IAAI,EAAE;QAC7C,OAAO;QACP,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,aAAa,EAAE,CAAA;QAChD,MAAM,eAAe,GAAG,SAAS,CAAC,eAAe,CAAA;QAEjD,sBAAsB;QACtB,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,aAAa,EAAE,CAAA;QAE9C,OAAO;QACP,MAAM,SAAS,CAAC,KAAK,EAAE,CAAA;QAEvB,gDAAgD;QAChD,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAA;QAC5C,MAAM,eAAe,CAAC,IAAI,EAAE,CAAA;IAChC,CAAC,CAAC,CAAA;AACN,CAAC,CAAC,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"spaces.test.d.ts","sourceRoot":"","sources":["../../../../src/tests/multi/sync-agent/spaces.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,33 +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 } from '../../testUtils';
|
|
7
|
-
const logger = dlogger('csb:test:spaces');
|
|
8
|
-
describe('spaces.test.ts', () => {
|
|
9
|
-
logger.log('start');
|
|
10
|
-
const testUser = new Bot();
|
|
11
|
-
test('create/leave/join space', async () => {
|
|
12
|
-
await testUser.fundWallet();
|
|
13
|
-
const syncAgent = await testUser.makeSyncAgent();
|
|
14
|
-
await syncAgent.start();
|
|
15
|
-
expect(syncAgent.spaces.value.status).not.toBe('loading');
|
|
16
|
-
const { spaceId, defaultChannelId } = await syncAgent.spaces.createSpace({ spaceName: 'BlastOff' }, testUser.signer);
|
|
17
|
-
expect(syncAgent.spaces.data.spaceIds.length).toBe(1);
|
|
18
|
-
expect(syncAgent.spaces.data.spaceIds[0]).toBe(spaceId);
|
|
19
|
-
expect(syncAgent.spaces.getSpace(spaceId)).toBeDefined();
|
|
20
|
-
const space = syncAgent.spaces.getSpace(spaceId);
|
|
21
|
-
await waitFor(() => expect(space.value.status).not.toBe('loading'));
|
|
22
|
-
await waitFor(() => expect(space.data.channelIds.length).toBe(1));
|
|
23
|
-
expect(space.data.channelIds[0]).toBe(defaultChannelId);
|
|
24
|
-
expect(space.getChannel(defaultChannelId)).toBeDefined();
|
|
25
|
-
const channel = space.getChannel(defaultChannelId);
|
|
26
|
-
expect(channel.data.isJoined).toBe(true);
|
|
27
|
-
await channel.sendMessage('hello world');
|
|
28
|
-
expect(channel.timeline.events.value.length).toBeGreaterThan(1);
|
|
29
|
-
expect(findMessageByText(channel.timeline.events.value, 'hello world')).toBeDefined();
|
|
30
|
-
await syncAgent.stop();
|
|
31
|
-
});
|
|
32
|
-
});
|
|
33
|
-
//# sourceMappingURL=spaces.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"spaces.test.js","sourceRoot":"","sources":["../../../../src/tests/multi/sync-agent/spaces.test.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAC3C,OAAO,EAAE,GAAG,EAAE,MAAM,+BAA+B,CAAA;AACnD,OAAO,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AAE5D,MAAM,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAA;AAEzC,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;IAC5B,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;IACnB,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAE,CAAA;IAE1B,IAAI,CAAC,yBAAyB,EAAE,KAAK,IAAI,EAAE;QACvC,MAAM,QAAQ,CAAC,UAAU,EAAE,CAAA;QAC3B,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,aAAa,EAAE,CAAA;QAChD,MAAM,SAAS,CAAC,KAAK,EAAE,CAAA;QACvB,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QACzD,MAAM,EAAE,OAAO,EAAE,gBAAgB,EAAE,GAAG,MAAM,SAAS,CAAC,MAAM,CAAC,WAAW,CACpE,EAAE,SAAS,EAAE,UAAU,EAAE,EACzB,QAAQ,CAAC,MAAM,CAClB,CAAA;QACD,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACrD,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QACvD,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,EAAE,CAAA;QACxD,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;QAChD,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAA;QACnE,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;QACjE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;QACvD,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC,CAAC,WAAW,EAAE,CAAA;QACxD,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAA;QAClD,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACxC,MAAM,OAAO,CAAC,WAAW,CAAC,aAAa,CAAC,CAAA;QACxC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAA;QAC/D,MAAM,CAAC,iBAAiB,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,WAAW,EAAE,CAAA;QACrF,MAAM,SAAS,CAAC,IAAI,EAAE,CAAA;IAC1B,CAAC,CAAC,CAAA;AACN,CAAC,CAAC,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"streams.test.d.ts","sourceRoot":"","sources":["../../../../src/tests/multi/sync-agent/streams.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,27 +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 { makeUniqueMediaStreamId, streamIdAsBytes } from '../../../id';
|
|
7
|
-
const logger = dlogger('csb:test:streams');
|
|
8
|
-
describe('streams.test.ts', () => {
|
|
9
|
-
logger.log('start');
|
|
10
|
-
const testUser = new Bot();
|
|
11
|
-
beforeAll(async () => {
|
|
12
|
-
await testUser.fundWallet();
|
|
13
|
-
});
|
|
14
|
-
test('stream exists', async () => {
|
|
15
|
-
const syncAgent = await testUser.makeSyncAgent();
|
|
16
|
-
await syncAgent.start();
|
|
17
|
-
const { spaceId, defaultChannelId } = await syncAgent.spaces.createSpace({ spaceName: 'BlastOff' }, testUser.signer);
|
|
18
|
-
const spaceExists = await syncAgent.riverConnection.streamExists(streamIdAsBytes(spaceId));
|
|
19
|
-
expect(spaceExists).toBe(true);
|
|
20
|
-
const channelExists = await syncAgent.riverConnection.streamExists(streamIdAsBytes(defaultChannelId));
|
|
21
|
-
expect(channelExists).toBe(true);
|
|
22
|
-
const notAStream = makeUniqueMediaStreamId();
|
|
23
|
-
const notAStreamExists = await syncAgent.riverConnection.streamExists(streamIdAsBytes(notAStream));
|
|
24
|
-
expect(notAStreamExists).toBe(false);
|
|
25
|
-
});
|
|
26
|
-
});
|
|
27
|
-
//# sourceMappingURL=streams.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"streams.test.js","sourceRoot":"","sources":["../../../../src/tests/multi/sync-agent/streams.test.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAC3C,OAAO,EAAE,GAAG,EAAE,MAAM,+BAA+B,CAAA;AACnD,OAAO,EAAE,uBAAuB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAEtE,MAAM,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAA;AAE1C,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC7B,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;IACnB,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAE,CAAA;IAE1B,SAAS,CAAC,KAAK,IAAI,EAAE;QACjB,MAAM,QAAQ,CAAC,UAAU,EAAE,CAAA;IAC/B,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,eAAe,EAAE,KAAK,IAAI,EAAE;QAC7B,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,aAAa,EAAE,CAAA;QAChD,MAAM,SAAS,CAAC,KAAK,EAAE,CAAA;QACvB,MAAM,EAAE,OAAO,EAAE,gBAAgB,EAAE,GAAG,MAAM,SAAS,CAAC,MAAM,CAAC,WAAW,CACpE,EAAE,SAAS,EAAE,UAAU,EAAE,EACzB,QAAQ,CAAC,MAAM,CAClB,CAAA;QACD,MAAM,WAAW,GAAG,MAAM,SAAS,CAAC,eAAe,CAAC,YAAY,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAA;QAC1F,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAE9B,MAAM,aAAa,GAAG,MAAM,SAAS,CAAC,eAAe,CAAC,YAAY,CAC9D,eAAe,CAAC,gBAAgB,CAAC,CACpC,CAAA;QACD,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAEhC,MAAM,UAAU,GAAG,uBAAuB,EAAE,CAAA;QAC5C,MAAM,gBAAgB,GAAG,MAAM,SAAS,CAAC,eAAe,CAAC,YAAY,CACjE,eAAe,CAAC,UAAU,CAAC,CAC9B,CAAA;QACD,MAAM,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACxC,CAAC,CAAC,CAAA;AACN,CAAC,CAAC,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"syncAgent.test.d.ts","sourceRoot":"","sources":["../../../../src/tests/multi/sync-agent/syncAgent.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @group with-entitlements
|
|
3
|
-
*/
|
|
4
|
-
import { dlogger } from '@towns-labs/utils';
|
|
5
|
-
import { waitFor } from '../../testUtils';
|
|
6
|
-
import { MembershipOp } from '@towns-labs/proto';
|
|
7
|
-
import { Bot } from '../../../sync-agent/utils/bot';
|
|
8
|
-
import { AuthStatus } from '../../../sync-agent/river-connection/models/authStatus';
|
|
9
|
-
import { makeBearerToken, makeSignerContextFromBearerToken } from '../../../signerContext';
|
|
10
|
-
import { SyncAgent } from '../../../sync-agent/syncAgent';
|
|
11
|
-
import { townsEnv } from '../../../townsEnv';
|
|
12
|
-
const logger = dlogger('csb:test:syncAgent');
|
|
13
|
-
describe('syncAgent.test.ts', () => {
|
|
14
|
-
const townsConfig = townsEnv().makeTownsConfig();
|
|
15
|
-
const testUser = new Bot(undefined, townsConfig);
|
|
16
|
-
beforeEach(async () => {
|
|
17
|
-
await testUser.fundWallet();
|
|
18
|
-
});
|
|
19
|
-
test('syncAgent', async () => {
|
|
20
|
-
const syncAgent = await testUser.makeSyncAgent();
|
|
21
|
-
expect(syncAgent.user.value.status).toBe('loading');
|
|
22
|
-
expect(syncAgent.riverConnection.authStatus.value).toBe(AuthStatus.Initializing);
|
|
23
|
-
await syncAgent.start();
|
|
24
|
-
expect(syncAgent.user.value.status).toBe('loaded');
|
|
25
|
-
await waitFor(() => expect(syncAgent.riverConnection.authStatus.value).toBe(AuthStatus.Credentialed));
|
|
26
|
-
expect(Object.keys(syncAgent.user.memberships.data.memberships).length).toBe(0);
|
|
27
|
-
expect(syncAgent.spaces.data.spaceIds.length).toBe(0);
|
|
28
|
-
syncAgent.store.newTransactionGroup('createSpace');
|
|
29
|
-
const { spaceId, defaultChannelId } = await syncAgent.spaces.createSpace({ spaceName: 'BlastOff' }, testUser.signer);
|
|
30
|
-
logger.log('spaceId', spaceId);
|
|
31
|
-
await waitFor(() => expect(Object.keys(syncAgent.user.memberships.data.memberships).length).toBe(2));
|
|
32
|
-
expect(syncAgent.user.memberships.data.memberships[spaceId].op).toBe(MembershipOp.SO_JOIN);
|
|
33
|
-
expect(syncAgent.user.memberships.data.memberships[defaultChannelId].op).toBe(MembershipOp.SO_JOIN);
|
|
34
|
-
expect(syncAgent.riverConnection.authStatus.value).toBe(AuthStatus.ConnectedToRiver);
|
|
35
|
-
expect(syncAgent.user.memberships.data.initialized).toBe(true);
|
|
36
|
-
expect(syncAgent.user.value.status).toBe('loaded');
|
|
37
|
-
await syncAgent.store.commitTransaction();
|
|
38
|
-
expect(syncAgent.user.value.status).toBe('loaded');
|
|
39
|
-
expect(syncAgent.spaces.data.spaceIds.length).toBe(1);
|
|
40
|
-
await syncAgent.stop();
|
|
41
|
-
});
|
|
42
|
-
test('syncAgent loads again', async () => {
|
|
43
|
-
const syncAgent = await testUser.makeSyncAgent();
|
|
44
|
-
expect(syncAgent.user.value.status).toBe('loading');
|
|
45
|
-
await syncAgent.start();
|
|
46
|
-
expect(syncAgent.riverConnection.authStatus.value).toBe(AuthStatus.ConnectedToRiver);
|
|
47
|
-
expect(syncAgent.user.value.status).toBe('loaded');
|
|
48
|
-
expect(syncAgent.user.memberships.value.status).toBe('loaded');
|
|
49
|
-
expect(syncAgent.user.memberships.data.initialized).toBe(true);
|
|
50
|
-
await waitFor(() => expect(syncAgent.spaces.data.spaceIds.length).toBe(1));
|
|
51
|
-
await syncAgent.stop();
|
|
52
|
-
});
|
|
53
|
-
test('logIn with delegate', async () => {
|
|
54
|
-
const bearerToken = await makeBearerToken(testUser.signer, { days: 1 });
|
|
55
|
-
logger.log('bearerTokenStr', bearerToken);
|
|
56
|
-
const signerContext = await makeSignerContextFromBearerToken(bearerToken);
|
|
57
|
-
const syncAgent = new SyncAgent({
|
|
58
|
-
townsConfig: townsEnv().makeTownsConfig(),
|
|
59
|
-
context: signerContext,
|
|
60
|
-
});
|
|
61
|
-
await syncAgent.start();
|
|
62
|
-
expect(syncAgent.riverConnection.authStatus.value).toBe(AuthStatus.ConnectedToRiver);
|
|
63
|
-
expect(syncAgent.user.value.status).toBe('loaded');
|
|
64
|
-
await waitFor(() => expect(syncAgent.spaces.data.spaceIds.length).toBe(1));
|
|
65
|
-
await syncAgent.stop();
|
|
66
|
-
});
|
|
67
|
-
});
|
|
68
|
-
//# sourceMappingURL=syncAgent.test.js.map
|