summaryrefslogtreecommitdiff
path: root/packages/backend/test-federation
diff options
context:
space:
mode:
Diffstat (limited to 'packages/backend/test-federation')
-rw-r--r--packages/backend/test-federation/compose.tpl.yml4
-rw-r--r--packages/backend/test-federation/compose.yml2
-rw-r--r--packages/backend/test-federation/test/utils.ts75
3 files changed, 39 insertions, 42 deletions
diff --git a/packages/backend/test-federation/compose.tpl.yml b/packages/backend/test-federation/compose.tpl.yml
index 1404345e2a..ac93b24b87 100644
--- a/packages/backend/test-federation/compose.tpl.yml
+++ b/packages/backend/test-federation/compose.tpl.yml
@@ -35,6 +35,10 @@ services:
target: /misskey/packages/backend/built
read_only: true
- type: bind
+ source: ../src-js
+ target: /misskey/packages/backend/src-js
+ read_only: true
+ - type: bind
source: ../migration
target: /misskey/packages/backend/migration
read_only: true
diff --git a/packages/backend/test-federation/compose.yml b/packages/backend/test-federation/compose.yml
index 25475a89ab..4d1b4b0d60 100644
--- a/packages/backend/test-federation/compose.yml
+++ b/packages/backend/test-federation/compose.yml
@@ -143,7 +143,7 @@ services:
bash -c "
npm install -g pnpm
pnpm -F backend i --frozen-lockfile
- pnpm exec tsc -p ./packages/backend/test-federation
+ pnpm exec tsgo -p ./packages/backend/test-federation
node ./packages/backend/test-federation/built/daemon.js
"
diff --git a/packages/backend/test-federation/test/utils.ts b/packages/backend/test-federation/test/utils.ts
index 056a16ba15..6f09f13f17 100644
--- a/packages/backend/test-federation/test/utils.ts
+++ b/packages/backend/test-federation/test/utils.ts
@@ -234,30 +234,26 @@ export async function isFired<C extends keyof Misskey.Channels, T extends keyof
cond: (msg: Parameters<Misskey.Channels[C]['events'][T]>[0]) => boolean,
params?: Misskey.Channels[C]['params'],
): Promise<boolean> {
- return new Promise<boolean>(async (resolve, reject) => {
- const stream = new Misskey.Stream(`wss://${host}`, { token: user.i }, { WebSocket });
+ const stream = new Misskey.Stream(`wss://${host}`, { token: user.i }, { WebSocket });
+ try {
const connection = stream.useChannel(channel, params);
- connection.on(type as any, ((msg: any) => {
- if (cond(msg)) {
- stream.close();
- clearTimeout(timer);
- resolve(true);
- }
- }) as any);
-
- let timer: NodeJS.Timeout | undefined;
- await trigger().then(() => {
- timer = setTimeout(() => {
- stream.close();
- resolve(false);
- }, 500);
- }).catch(err => {
- stream.close();
- clearTimeout(timer);
- reject(err);
+ const receivePromise = new Promise<boolean>((resolve) => {
+ connection.on(type as never, ((msg: any) => {
+ if (cond(msg)) {
+ resolve(true);
+ }
+ }) as any);
});
- });
+
+ await trigger();
+ return await Promise.race([
+ receivePromise,
+ sleep(500).then(() => false),
+ ]);
+ } finally {
+ stream.close();
+ }
};
export async function isNoteUpdatedEventFired(
@@ -267,30 +263,27 @@ export async function isNoteUpdatedEventFired(
trigger: () => Promise<unknown>,
cond: (msg: Parameters<Misskey.StreamEvents['noteUpdated']>[0]) => boolean,
): Promise<boolean> {
- return new Promise<boolean>(async (resolve, reject) => {
- const stream = new Misskey.Stream(`wss://${host}`, { token: user.i }, { WebSocket });
+ const stream = new Misskey.Stream(`wss://${host}`, { token: user.i }, { WebSocket });
+ try {
stream.send('s', { id: noteId });
- stream.on('noteUpdated', msg => {
- if (cond(msg)) {
- stream.close();
- clearTimeout(timer);
- resolve(true);
- }
+
+ const receivePromise = new Promise<boolean>((resolve) => {
+ stream.on('noteUpdated', msg => {
+ if (cond(msg)) {
+ resolve(true);
+ }
+ });
});
- let timer: NodeJS.Timeout | undefined;
+ await trigger();
- await trigger().then(() => {
- timer = setTimeout(() => {
- stream.close();
- resolve(false);
- }, 500);
- }).catch(err => {
- stream.close();
- clearTimeout(timer);
- reject(err);
- });
- });
+ return await Promise.race([
+ receivePromise,
+ sleep(500).then(() => false),
+ ]);
+ } finally {
+ stream.close();
+ }
};
export async function assertNotificationReceived(