mirror of
				https://codeberg.org/yeentown/barkey.git
				synced 2025-11-04 15:34:13 +00:00 
			
		
		
		
	Use built-in API (#14095)
This commit is contained in:
		
							parent
							
								
									eafae79869
								
							
						
					
					
						commit
						de1fe7cc5a
					
				
					 6 changed files with 69 additions and 73 deletions
				
			
		| 
						 | 
				
			
			@ -7,12 +7,13 @@ import { INestApplicationContext } from '@nestjs/common';
 | 
			
		|||
 | 
			
		||||
process.env.NODE_ENV = 'test';
 | 
			
		||||
 | 
			
		||||
import { setTimeout } from 'node:timers/promises';
 | 
			
		||||
import * as assert from 'assert';
 | 
			
		||||
import { loadConfig } from '@/config.js';
 | 
			
		||||
import { MiRepository, MiUser, UsersRepository, miRepository } from '@/models/_.js';
 | 
			
		||||
import { secureRndstr } from '@/misc/secure-rndstr.js';
 | 
			
		||||
import { jobQueue } from '@/boot/common.js';
 | 
			
		||||
import { api, initTestDb, signup, sleep, successfulApiCall, uploadFile } from '../utils.js';
 | 
			
		||||
import { api, initTestDb, signup, successfulApiCall, uploadFile } from '../utils.js';
 | 
			
		||||
import type * as misskey from 'misskey-js';
 | 
			
		||||
 | 
			
		||||
describe('Account Move', () => {
 | 
			
		||||
| 
						 | 
				
			
			@ -271,7 +272,7 @@ describe('Account Move', () => {
 | 
			
		|||
 | 
			
		||||
			assert.strictEqual(move.status, 200);
 | 
			
		||||
 | 
			
		||||
			await sleep(1000 * 3); // wait for jobs to finish
 | 
			
		||||
			await setTimeout(1000 * 3); // wait for jobs to finish
 | 
			
		||||
 | 
			
		||||
			// Unfollow delayed?
 | 
			
		||||
			const aliceFollowings = await api('users/following', {
 | 
			
		||||
| 
						 | 
				
			
			@ -330,7 +331,7 @@ describe('Account Move', () => {
 | 
			
		|||
		});
 | 
			
		||||
 | 
			
		||||
		test('Unfollowed after 10 sec (24 hours in production).', async () => {
 | 
			
		||||
			await sleep(1000 * 8);
 | 
			
		||||
			await setTimeout(1000 * 8);
 | 
			
		||||
 | 
			
		||||
			const following = await api('users/following', {
 | 
			
		||||
				userId: alice.id,
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -6,7 +6,8 @@
 | 
			
		|||
process.env.NODE_ENV = 'test';
 | 
			
		||||
 | 
			
		||||
import * as assert from 'assert';
 | 
			
		||||
import { api, post, signup, sleep, waitFire } from '../utils.js';
 | 
			
		||||
import { setTimeout } from 'node:timers/promises';
 | 
			
		||||
import { api, post, signup, waitFire } from '../utils.js';
 | 
			
		||||
import type * as misskey from 'misskey-js';
 | 
			
		||||
 | 
			
		||||
describe('Renote Mute', () => {
 | 
			
		||||
| 
						 | 
				
			
			@ -35,7 +36,7 @@ describe('Renote Mute', () => {
 | 
			
		|||
		const carolNote = await post(carol, { text: 'hi' });
 | 
			
		||||
 | 
			
		||||
		// redisに追加されるのを待つ
 | 
			
		||||
		await sleep(100);
 | 
			
		||||
		await setTimeout(100);
 | 
			
		||||
 | 
			
		||||
		const res = await api('notes/local-timeline', {}, alice);
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -52,7 +53,7 @@ describe('Renote Mute', () => {
 | 
			
		|||
		const carolNote = await post(carol, { text: 'hi' });
 | 
			
		||||
 | 
			
		||||
		// redisに追加されるのを待つ
 | 
			
		||||
		await sleep(100);
 | 
			
		||||
		await setTimeout(100);
 | 
			
		||||
 | 
			
		||||
		const res = await api('notes/local-timeline', {}, alice);
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -69,7 +70,7 @@ describe('Renote Mute', () => {
 | 
			
		|||
		const bobRenote = await post(bob, { renoteId: carolNote.id });
 | 
			
		||||
 | 
			
		||||
		// redisに追加されるのを待つ
 | 
			
		||||
		await sleep(100);
 | 
			
		||||
		await setTimeout(100);
 | 
			
		||||
 | 
			
		||||
		const res = await api('notes/local-timeline', {}, alice);
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -7,16 +7,17 @@
 | 
			
		|||
// pnpm jest -- e2e/timelines.ts
 | 
			
		||||
 | 
			
		||||
import * as assert from 'assert';
 | 
			
		||||
import { setTimeout } from 'node:timers/promises';
 | 
			
		||||
import { Redis } from 'ioredis';
 | 
			
		||||
import { loadConfig } from '@/config.js';
 | 
			
		||||
import { api, post, randomString, sendEnvUpdateRequest, signup, sleep, uploadUrl } from '../utils.js';
 | 
			
		||||
import { api, post, randomString, sendEnvUpdateRequest, signup, uploadUrl } from '../utils.js';
 | 
			
		||||
 | 
			
		||||
function genHost() {
 | 
			
		||||
	return randomString() + '.example.com';
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function waitForPushToTl() {
 | 
			
		||||
	return sleep(500);
 | 
			
		||||
	return setTimeout(500);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
let redisForTimelines: Redis;
 | 
			
		||||
| 
						 | 
				
			
			@ -44,7 +45,7 @@ describe('Timelines', () => {
 | 
			
		|||
			const [alice, bob, carol] = await Promise.all([signup(), signup(), signup()]);
 | 
			
		||||
 | 
			
		||||
			await api('following/create', { userId: bob.id }, alice);
 | 
			
		||||
			await sleep(1000);
 | 
			
		||||
			await setTimeout(1000);
 | 
			
		||||
			const bobNote = await post(bob, { text: 'hi' });
 | 
			
		||||
			const carolNote = await post(carol, { text: 'hi' });
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -60,7 +61,7 @@ describe('Timelines', () => {
 | 
			
		|||
			const [alice, bob, carol] = await Promise.all([signup(), signup(), signup()]);
 | 
			
		||||
 | 
			
		||||
			await api('following/create', { userId: bob.id }, alice);
 | 
			
		||||
			await sleep(1000);
 | 
			
		||||
			await setTimeout(1000);
 | 
			
		||||
			const bobNote = await post(bob, { text: 'hi', visibility: 'followers' });
 | 
			
		||||
			const carolNote = await post(carol, { text: 'hi' });
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -77,7 +78,7 @@ describe('Timelines', () => {
 | 
			
		|||
			const [alice, bob, carol] = await Promise.all([signup(), signup(), signup()]);
 | 
			
		||||
 | 
			
		||||
			await api('following/create', { userId: bob.id }, alice);
 | 
			
		||||
			await sleep(1000);
 | 
			
		||||
			await setTimeout(1000);
 | 
			
		||||
			const carolNote = await post(carol, { text: 'hi' });
 | 
			
		||||
			const bobNote = await post(bob, { text: 'hi', replyId: carolNote.id });
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -94,7 +95,7 @@ describe('Timelines', () => {
 | 
			
		|||
 | 
			
		||||
			await api('following/create', { userId: bob.id }, alice);
 | 
			
		||||
			await api('following/update', { userId: bob.id, withReplies: true }, alice);
 | 
			
		||||
			await sleep(1000);
 | 
			
		||||
			await setTimeout(1000);
 | 
			
		||||
			const carolNote = await post(carol, { text: 'hi' });
 | 
			
		||||
			const bobNote = await post(bob, { text: 'hi', replyId: carolNote.id });
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -111,7 +112,7 @@ describe('Timelines', () => {
 | 
			
		|||
 | 
			
		||||
			await api('following/create', { userId: bob.id }, alice);
 | 
			
		||||
			await api('following/update', { userId: bob.id, withReplies: true }, alice);
 | 
			
		||||
			await sleep(1000);
 | 
			
		||||
			await setTimeout(1000);
 | 
			
		||||
			const carolNote = await post(carol, { text: 'hi' });
 | 
			
		||||
			const bobNote = await post(bob, { text: 'hi', replyId: carolNote.id, visibility: 'specified', visibleUserIds: [carolNote.id] });
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -128,7 +129,7 @@ describe('Timelines', () => {
 | 
			
		|||
 | 
			
		||||
			await api('following/create', { userId: bob.id }, alice);
 | 
			
		||||
			await api('following/update', { userId: bob.id, withReplies: true }, alice);
 | 
			
		||||
			await sleep(1000);
 | 
			
		||||
			await setTimeout(1000);
 | 
			
		||||
			const carolNote = await post(carol, { text: 'hi', visibility: 'followers' });
 | 
			
		||||
			const bobNote = await post(bob, { text: 'hi', replyId: carolNote.id });
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -147,7 +148,7 @@ describe('Timelines', () => {
 | 
			
		|||
			await api('following/create', { userId: carol.id }, alice);
 | 
			
		||||
			await api('following/create', { userId: carol.id }, bob);
 | 
			
		||||
			await api('following/update', { userId: bob.id, withReplies: true }, alice);
 | 
			
		||||
			await sleep(1000);
 | 
			
		||||
			await setTimeout(1000);
 | 
			
		||||
			const carolNote = await post(carol, { text: 'hi', visibility: 'followers' });
 | 
			
		||||
			const bobNote = await post(bob, { text: 'hi', replyId: carolNote.id });
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -166,7 +167,7 @@ describe('Timelines', () => {
 | 
			
		|||
			await api('following/create', { userId: bob.id }, alice);
 | 
			
		||||
			await api('following/create', { userId: carol.id }, alice);
 | 
			
		||||
			await api('following/update', { userId: bob.id, withReplies: true }, alice);
 | 
			
		||||
			await sleep(1000);
 | 
			
		||||
			await setTimeout(1000);
 | 
			
		||||
			const carolNote = await post(carol, { text: 'hi' });
 | 
			
		||||
			const bobNote = await post(bob, { text: 'hi', replyId: carolNote.id, visibility: 'specified', visibleUserIds: [carolNote.id] });
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -182,7 +183,7 @@ describe('Timelines', () => {
 | 
			
		|||
			const [alice, bob] = await Promise.all([signup(), signup()]);
 | 
			
		||||
 | 
			
		||||
			await api('following/create', { userId: bob.id }, alice);
 | 
			
		||||
			await sleep(1000);
 | 
			
		||||
			await setTimeout(1000);
 | 
			
		||||
			const bobNote1 = await post(bob, { text: 'hi' });
 | 
			
		||||
			const bobNote2 = await post(bob, { text: 'hi', replyId: bobNote1.id });
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -198,7 +199,7 @@ describe('Timelines', () => {
 | 
			
		|||
			const [alice, bob] = await Promise.all([signup(), signup()]);
 | 
			
		||||
 | 
			
		||||
			await api('following/create', { userId: bob.id }, alice);
 | 
			
		||||
			await sleep(1000);
 | 
			
		||||
			await setTimeout(1000);
 | 
			
		||||
			const aliceNote = await post(alice, { text: 'hi' });
 | 
			
		||||
			const bobNote = await post(bob, { text: 'hi', replyId: aliceNote.id });
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -228,7 +229,7 @@ describe('Timelines', () => {
 | 
			
		|||
			const [alice, bob, carol] = await Promise.all([signup(), signup(), signup()]);
 | 
			
		||||
 | 
			
		||||
			await api('following/create', { userId: bob.id }, alice);
 | 
			
		||||
			await sleep(1000);
 | 
			
		||||
			await setTimeout(1000);
 | 
			
		||||
			const carolNote = await post(carol, { text: 'hi' });
 | 
			
		||||
			const bobNote = await post(bob, { renoteId: carolNote.id });
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -244,7 +245,7 @@ describe('Timelines', () => {
 | 
			
		|||
			const [alice, bob, carol] = await Promise.all([signup(), signup(), signup()]);
 | 
			
		||||
 | 
			
		||||
			await api('following/create', { userId: bob.id }, alice);
 | 
			
		||||
			await sleep(1000);
 | 
			
		||||
			await setTimeout(1000);
 | 
			
		||||
			const carolNote = await post(carol, { text: 'hi' });
 | 
			
		||||
			const bobNote = await post(bob, { renoteId: carolNote.id });
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -262,7 +263,7 @@ describe('Timelines', () => {
 | 
			
		|||
			const [alice, bob, carol] = await Promise.all([signup(), signup(), signup()]);
 | 
			
		||||
 | 
			
		||||
			await api('following/create', { userId: bob.id }, alice);
 | 
			
		||||
			await sleep(1000);
 | 
			
		||||
			await setTimeout(1000);
 | 
			
		||||
			const carolNote = await post(carol, { text: 'hi' });
 | 
			
		||||
			const bobNote = await post(bob, { text: 'hi', renoteId: carolNote.id });
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -280,7 +281,7 @@ describe('Timelines', () => {
 | 
			
		|||
			const [alice, bob, carol] = await Promise.all([signup(), signup(), signup()]);
 | 
			
		||||
 | 
			
		||||
			await api('following/create', { userId: bob.id }, alice);
 | 
			
		||||
			await sleep(1000);
 | 
			
		||||
			await setTimeout(1000);
 | 
			
		||||
			const bobNote = await post(bob, { text: 'hi', visibility: 'specified', visibleUserIds: [carol.id] });
 | 
			
		||||
 | 
			
		||||
			await waitForPushToTl();
 | 
			
		||||
| 
						 | 
				
			
			@ -295,7 +296,7 @@ describe('Timelines', () => {
 | 
			
		|||
 | 
			
		||||
			await api('following/create', { userId: bob.id }, alice);
 | 
			
		||||
			await api('mute/create', { userId: carol.id }, alice);
 | 
			
		||||
			await sleep(1000);
 | 
			
		||||
			await setTimeout(1000);
 | 
			
		||||
			const carolNote = await post(carol, { text: 'hi' });
 | 
			
		||||
			const bobNote = await post(bob, { text: 'hi', renoteId: carolNote.id });
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -313,7 +314,7 @@ describe('Timelines', () => {
 | 
			
		|||
			await api('following/create', { userId: bob.id }, alice);
 | 
			
		||||
			await api('following/update', { userId: bob.id, withReplies: true }, alice);
 | 
			
		||||
			await api('mute/create', { userId: carol.id }, alice);
 | 
			
		||||
			await sleep(1000);
 | 
			
		||||
			await setTimeout(1000);
 | 
			
		||||
			const carolNote = await post(carol, { text: 'hi' });
 | 
			
		||||
			const bobNote = await post(bob, { text: 'hi', replyId: carolNote.id });
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -359,7 +360,7 @@ describe('Timelines', () => {
 | 
			
		|||
			const [alice, bob, carol] = await Promise.all([signup(), signup(), signup()]);
 | 
			
		||||
 | 
			
		||||
			await api('following/create', { userId: bob.id }, alice);
 | 
			
		||||
			await sleep(1000);
 | 
			
		||||
			await setTimeout(1000);
 | 
			
		||||
			const [bobFile, carolFile] = await Promise.all([
 | 
			
		||||
				uploadUrl(bob, 'https://raw.githubusercontent.com/misskey-dev/assets/main/public/icon.png'),
 | 
			
		||||
				uploadUrl(carol, 'https://raw.githubusercontent.com/misskey-dev/assets/main/public/icon.png'),
 | 
			
		||||
| 
						 | 
				
			
			@ -384,7 +385,7 @@ describe('Timelines', () => {
 | 
			
		|||
 | 
			
		||||
			const channel = await api('channels/create', { name: 'channel' }, bob).then(x => x.body);
 | 
			
		||||
			await api('following/create', { userId: bob.id }, alice);
 | 
			
		||||
			await sleep(1000);
 | 
			
		||||
			await setTimeout(1000);
 | 
			
		||||
			const bobNote = await post(bob, { text: 'hi', channelId: channel.id });
 | 
			
		||||
 | 
			
		||||
			await waitForPushToTl();
 | 
			
		||||
| 
						 | 
				
			
			@ -411,7 +412,7 @@ describe('Timelines', () => {
 | 
			
		|||
			const [alice, bob] = await Promise.all([signup(), signup()]);
 | 
			
		||||
 | 
			
		||||
			await api('following/create', { userId: bob.id }, alice);
 | 
			
		||||
			await sleep(1000);
 | 
			
		||||
			await setTimeout(1000);
 | 
			
		||||
			const bobNote = await post(bob, { text: 'hi', visibility: 'specified', visibleUserIds: [alice.id] });
 | 
			
		||||
 | 
			
		||||
			await waitForPushToTl();
 | 
			
		||||
| 
						 | 
				
			
			@ -438,7 +439,7 @@ describe('Timelines', () => {
 | 
			
		|||
			const [alice, bob, carol] = await Promise.all([signup(), signup(), signup()]);
 | 
			
		||||
 | 
			
		||||
			await api('following/create', { userId: bob.id }, alice);
 | 
			
		||||
			await sleep(1000);
 | 
			
		||||
			await setTimeout(1000);
 | 
			
		||||
			const bobNote = await post(bob, { text: 'hi', visibility: 'specified', visibleUserIds: [carol.id] });
 | 
			
		||||
 | 
			
		||||
			await waitForPushToTl();
 | 
			
		||||
| 
						 | 
				
			
			@ -566,7 +567,7 @@ describe('Timelines', () => {
 | 
			
		|||
			const [alice, bob, carol] = await Promise.all([signup(), signup(), signup()]);
 | 
			
		||||
 | 
			
		||||
			await api('following/create', { userId: carol.id }, alice);
 | 
			
		||||
			await sleep(1000);
 | 
			
		||||
			await setTimeout(1000);
 | 
			
		||||
			const carolNote = await post(carol, { text: 'hi', visibility: 'home' });
 | 
			
		||||
			const bobNote = await post(bob, { text: 'hi' });
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -582,7 +583,7 @@ describe('Timelines', () => {
 | 
			
		|||
			const [alice, bob, carol] = await Promise.all([signup(), signup(), signup()]);
 | 
			
		||||
 | 
			
		||||
			await api('mute/create', { userId: carol.id }, alice);
 | 
			
		||||
			await sleep(1000);
 | 
			
		||||
			await setTimeout(1000);
 | 
			
		||||
			const carolNote = await post(carol, { text: 'hi' });
 | 
			
		||||
			const bobNote = await post(bob, { text: 'hi' });
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -599,7 +600,7 @@ describe('Timelines', () => {
 | 
			
		|||
 | 
			
		||||
			await api('following/create', { userId: bob.id }, alice);
 | 
			
		||||
			await api('mute/create', { userId: carol.id }, alice);
 | 
			
		||||
			await sleep(1000);
 | 
			
		||||
			await setTimeout(1000);
 | 
			
		||||
			const carolNote = await post(carol, { text: 'hi' });
 | 
			
		||||
			const bobNote = await post(bob, { text: 'hi', renoteId: carolNote.id });
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -617,7 +618,7 @@ describe('Timelines', () => {
 | 
			
		|||
			await api('following/create', { userId: bob.id }, alice);
 | 
			
		||||
			await api('following/update', { userId: bob.id, withReplies: true }, alice);
 | 
			
		||||
			await api('mute/create', { userId: carol.id }, alice);
 | 
			
		||||
			await sleep(1000);
 | 
			
		||||
			await setTimeout(1000);
 | 
			
		||||
			const carolNote = await post(carol, { text: 'hi' });
 | 
			
		||||
			const bobNote = await post(bob, { text: 'hi', replyId: carolNote.id });
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -633,7 +634,7 @@ describe('Timelines', () => {
 | 
			
		|||
			const [alice, bob] = await Promise.all([signup(), signup()]);
 | 
			
		||||
 | 
			
		||||
			await api('following/create', { userId: bob.id }, alice);
 | 
			
		||||
			await sleep(1000);
 | 
			
		||||
			await setTimeout(1000);
 | 
			
		||||
			const aliceNote = await post(alice, { text: 'hi' });
 | 
			
		||||
			const bobNote = await post(bob, { text: 'hi', replyId: aliceNote.id });
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -703,7 +704,7 @@ describe('Timelines', () => {
 | 
			
		|||
			const [alice, bob] = await Promise.all([signup(), signup()]);
 | 
			
		||||
 | 
			
		||||
			await api('following/create', { userId: bob.id }, alice);
 | 
			
		||||
			await sleep(1000);
 | 
			
		||||
			await setTimeout(1000);
 | 
			
		||||
			const bobNote = await post(bob, { text: 'hi', visibility: 'home' });
 | 
			
		||||
 | 
			
		||||
			await waitForPushToTl();
 | 
			
		||||
| 
						 | 
				
			
			@ -717,7 +718,7 @@ describe('Timelines', () => {
 | 
			
		|||
			const [alice, bob] = await Promise.all([signup(), signup()]);
 | 
			
		||||
 | 
			
		||||
			await api('following/create', { userId: bob.id }, alice);
 | 
			
		||||
			await sleep(1000);
 | 
			
		||||
			await setTimeout(1000);
 | 
			
		||||
			const aliceNote = await post(alice, { text: 'hi' });
 | 
			
		||||
			const bobNote = await post(bob, { text: 'hi', replyId: aliceNote.id });
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -820,7 +821,7 @@ describe('Timelines', () => {
 | 
			
		|||
 | 
			
		||||
			const list = await api('users/lists/create', { name: 'list' }, alice).then(res => res.body);
 | 
			
		||||
			await api('users/lists/push', { listId: list.id, userId: bob.id }, alice);
 | 
			
		||||
			await sleep(1000);
 | 
			
		||||
			await setTimeout(1000);
 | 
			
		||||
			const bobNote = await post(bob, { text: 'hi' });
 | 
			
		||||
 | 
			
		||||
			await waitForPushToTl();
 | 
			
		||||
| 
						 | 
				
			
			@ -835,7 +836,7 @@ describe('Timelines', () => {
 | 
			
		|||
 | 
			
		||||
			const list = await api('users/lists/create', { name: 'list' }, alice).then(res => res.body);
 | 
			
		||||
			await api('users/lists/push', { listId: list.id, userId: bob.id }, alice);
 | 
			
		||||
			await sleep(1000);
 | 
			
		||||
			await setTimeout(1000);
 | 
			
		||||
			const bobNote = await post(bob, { text: 'hi', visibility: 'home' });
 | 
			
		||||
 | 
			
		||||
			await waitForPushToTl();
 | 
			
		||||
| 
						 | 
				
			
			@ -850,7 +851,7 @@ describe('Timelines', () => {
 | 
			
		|||
 | 
			
		||||
			const list = await api('users/lists/create', { name: 'list' }, alice).then(res => res.body);
 | 
			
		||||
			await api('users/lists/push', { listId: list.id, userId: bob.id }, alice);
 | 
			
		||||
			await sleep(1000);
 | 
			
		||||
			await setTimeout(1000);
 | 
			
		||||
			const bobNote = await post(bob, { text: 'hi', visibility: 'followers' });
 | 
			
		||||
 | 
			
		||||
			await waitForPushToTl();
 | 
			
		||||
| 
						 | 
				
			
			@ -865,7 +866,7 @@ describe('Timelines', () => {
 | 
			
		|||
 | 
			
		||||
			const list = await api('users/lists/create', { name: 'list' }, alice).then(res => res.body);
 | 
			
		||||
			await api('users/lists/push', { listId: list.id, userId: bob.id }, alice);
 | 
			
		||||
			await sleep(1000);
 | 
			
		||||
			await setTimeout(1000);
 | 
			
		||||
			const carolNote = await post(carol, { text: 'hi' });
 | 
			
		||||
			const bobNote = await post(bob, { text: 'hi', replyId: carolNote.id });
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -881,7 +882,7 @@ describe('Timelines', () => {
 | 
			
		|||
 | 
			
		||||
			const list = await api('users/lists/create', { name: 'list' }, alice).then(res => res.body);
 | 
			
		||||
			await api('users/lists/push', { listId: list.id, userId: bob.id }, alice);
 | 
			
		||||
			await sleep(1000);
 | 
			
		||||
			await setTimeout(1000);
 | 
			
		||||
			const bobNote1 = await post(bob, { text: 'hi' });
 | 
			
		||||
			const bobNote2 = await post(bob, { text: 'hi', replyId: bobNote1.id });
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -899,7 +900,7 @@ describe('Timelines', () => {
 | 
			
		|||
			const list = await api('users/lists/create', { name: 'list' }, alice).then(res => res.body);
 | 
			
		||||
			await api('users/lists/push', { listId: list.id, userId: bob.id }, alice);
 | 
			
		||||
			await api('users/lists/update-membership', { listId: list.id, userId: bob.id, withReplies: false }, alice);
 | 
			
		||||
			await sleep(1000);
 | 
			
		||||
			await setTimeout(1000);
 | 
			
		||||
			const aliceNote = await post(alice, { text: 'hi' });
 | 
			
		||||
			const bobNote = await post(bob, { text: 'hi', replyId: aliceNote.id });
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -916,7 +917,7 @@ describe('Timelines', () => {
 | 
			
		|||
			const list = await api('users/lists/create', { name: 'list' }, alice).then(res => res.body);
 | 
			
		||||
			await api('users/lists/push', { listId: list.id, userId: bob.id }, alice);
 | 
			
		||||
			await api('users/lists/update-membership', { listId: list.id, userId: bob.id, withReplies: false }, alice);
 | 
			
		||||
			await sleep(1000);
 | 
			
		||||
			await setTimeout(1000);
 | 
			
		||||
			const carolNote = await post(carol, { text: 'hi' });
 | 
			
		||||
			const bobNote = await post(bob, { text: 'hi', replyId: carolNote.id });
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -933,7 +934,7 @@ describe('Timelines', () => {
 | 
			
		|||
			const list = await api('users/lists/create', { name: 'list' }, alice).then(res => res.body);
 | 
			
		||||
			await api('users/lists/push', { listId: list.id, userId: bob.id }, alice);
 | 
			
		||||
			await api('users/lists/update-membership', { listId: list.id, userId: bob.id, withReplies: true }, alice);
 | 
			
		||||
			await sleep(1000);
 | 
			
		||||
			await setTimeout(1000);
 | 
			
		||||
			const carolNote = await post(carol, { text: 'hi' });
 | 
			
		||||
			const bobNote = await post(bob, { text: 'hi', replyId: carolNote.id });
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -950,7 +951,7 @@ describe('Timelines', () => {
 | 
			
		|||
			await api('following/create', { userId: bob.id }, alice);
 | 
			
		||||
			const list = await api('users/lists/create', { name: 'list' }, alice).then(res => res.body);
 | 
			
		||||
			await api('users/lists/push', { listId: list.id, userId: bob.id }, alice);
 | 
			
		||||
			await sleep(1000);
 | 
			
		||||
			await setTimeout(1000);
 | 
			
		||||
			const bobNote = await post(bob, { text: 'hi', visibility: 'home' });
 | 
			
		||||
 | 
			
		||||
			await waitForPushToTl();
 | 
			
		||||
| 
						 | 
				
			
			@ -966,7 +967,7 @@ describe('Timelines', () => {
 | 
			
		|||
			await api('following/create', { userId: bob.id }, alice);
 | 
			
		||||
			const list = await api('users/lists/create', { name: 'list' }, alice).then(res => res.body);
 | 
			
		||||
			await api('users/lists/push', { listId: list.id, userId: bob.id }, alice);
 | 
			
		||||
			await sleep(1000);
 | 
			
		||||
			await setTimeout(1000);
 | 
			
		||||
			const bobNote = await post(bob, { text: 'hi', visibility: 'followers' });
 | 
			
		||||
 | 
			
		||||
			await waitForPushToTl();
 | 
			
		||||
| 
						 | 
				
			
			@ -982,7 +983,7 @@ describe('Timelines', () => {
 | 
			
		|||
 | 
			
		||||
			const list = await api('users/lists/create', { name: 'list' }, alice).then(res => res.body);
 | 
			
		||||
			await api('users/lists/push', { listId: list.id, userId: alice.id }, alice);
 | 
			
		||||
			await sleep(1000);
 | 
			
		||||
			await setTimeout(1000);
 | 
			
		||||
			const aliceNote = await post(alice, { text: 'hi', visibility: 'followers' });
 | 
			
		||||
 | 
			
		||||
			await waitForPushToTl();
 | 
			
		||||
| 
						 | 
				
			
			@ -999,7 +1000,7 @@ describe('Timelines', () => {
 | 
			
		|||
			const channel = await api('channels/create', { name: 'channel' }, bob).then(x => x.body);
 | 
			
		||||
			const list = await api('users/lists/create', { name: 'list' }, alice).then(res => res.body);
 | 
			
		||||
			await api('users/lists/push', { listId: list.id, userId: bob.id }, alice);
 | 
			
		||||
			await sleep(1000);
 | 
			
		||||
			await setTimeout(1000);
 | 
			
		||||
			const bobNote = await post(bob, { text: 'hi', channelId: channel.id });
 | 
			
		||||
 | 
			
		||||
			await waitForPushToTl();
 | 
			
		||||
| 
						 | 
				
			
			@ -1031,7 +1032,7 @@ describe('Timelines', () => {
 | 
			
		|||
 | 
			
		||||
			const list = await api('users/lists/create', { name: 'list' }, alice).then(res => res.body);
 | 
			
		||||
			await api('users/lists/push', { listId: list.id, userId: bob.id }, alice);
 | 
			
		||||
			await sleep(1000);
 | 
			
		||||
			await setTimeout(1000);
 | 
			
		||||
			const bobNote = await post(bob, { text: 'hi', visibility: 'specified', visibleUserIds: [alice.id] });
 | 
			
		||||
 | 
			
		||||
			await waitForPushToTl();
 | 
			
		||||
| 
						 | 
				
			
			@ -1048,7 +1049,7 @@ describe('Timelines', () => {
 | 
			
		|||
			const list = await api('users/lists/create', { name: 'list' }, alice).then(res => res.body);
 | 
			
		||||
			await api('users/lists/push', { listId: list.id, userId: bob.id }, alice);
 | 
			
		||||
			await api('users/lists/push', { listId: list.id, userId: carol.id }, alice);
 | 
			
		||||
			await sleep(1000);
 | 
			
		||||
			await setTimeout(1000);
 | 
			
		||||
			const bobNote = await post(bob, { text: 'hi', visibility: 'specified', visibleUserIds: [carol.id] });
 | 
			
		||||
 | 
			
		||||
			await waitForPushToTl();
 | 
			
		||||
| 
						 | 
				
			
			@ -1088,7 +1089,7 @@ describe('Timelines', () => {
 | 
			
		|||
			const [alice, bob] = await Promise.all([signup(), signup()]);
 | 
			
		||||
 | 
			
		||||
			await api('following/create', { userId: bob.id }, alice);
 | 
			
		||||
			await sleep(1000);
 | 
			
		||||
			await setTimeout(1000);
 | 
			
		||||
			const bobNote = await post(bob, { text: 'hi', visibility: 'followers' });
 | 
			
		||||
 | 
			
		||||
			await waitForPushToTl();
 | 
			
		||||
| 
						 | 
				
			
			@ -1228,7 +1229,7 @@ describe('Timelines', () => {
 | 
			
		|||
			const [alice, bob, carol] = await Promise.all([signup(), signup(), signup()]);
 | 
			
		||||
 | 
			
		||||
			await api('mute/create', { userId: carol.id }, alice);
 | 
			
		||||
			await sleep(1000);
 | 
			
		||||
			await setTimeout(1000);
 | 
			
		||||
			const carolNote = await post(carol, { text: 'hi' });
 | 
			
		||||
			const bobNote = await post(bob, { text: 'hi', renoteId: carolNote.id });
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -1243,7 +1244,7 @@ describe('Timelines', () => {
 | 
			
		|||
			const [alice, bob] = await Promise.all([signup(), signup()]);
 | 
			
		||||
 | 
			
		||||
			await api('mute/create', { userId: bob.id }, alice);
 | 
			
		||||
			await sleep(1000);
 | 
			
		||||
			await setTimeout(1000);
 | 
			
		||||
			const bobNote1 = await post(bob, { text: 'hi' });
 | 
			
		||||
			const bobNote2 = await post(bob, { text: 'hi', replyId: bobNote1.id });
 | 
			
		||||
			const bobNote3 = await post(bob, { text: 'hi', renoteId: bobNote1.id });
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -5,6 +5,7 @@
 | 
			
		|||
 | 
			
		||||
process.env.NODE_ENV = 'test';
 | 
			
		||||
 | 
			
		||||
import { setTimeout } from 'node:timers/promises';
 | 
			
		||||
import { jest } from '@jest/globals';
 | 
			
		||||
import { ModuleMocker } from 'jest-mock';
 | 
			
		||||
import { Test } from '@nestjs/testing';
 | 
			
		||||
| 
						 | 
				
			
			@ -29,7 +30,6 @@ import { secureRndstr } from '@/misc/secure-rndstr.js';
 | 
			
		|||
import { NotificationService } from '@/core/NotificationService.js';
 | 
			
		||||
import { RoleCondFormulaValue } from '@/models/Role.js';
 | 
			
		||||
import { UserEntityService } from '@/core/entities/UserEntityService.js';
 | 
			
		||||
import { sleep } from '../utils.js';
 | 
			
		||||
import type { TestingModule } from '@nestjs/testing';
 | 
			
		||||
import type { MockFunctionMetadata } from 'jest-mock';
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -278,7 +278,7 @@ describe('RoleService', () => {
 | 
			
		|||
 | 
			
		||||
			// ストリーミング経由で反映されるまでちょっと待つ
 | 
			
		||||
			clock.uninstall();
 | 
			
		||||
			await sleep(100);
 | 
			
		||||
			await setTimeout(100);
 | 
			
		||||
 | 
			
		||||
			const resultAfter25hAgain = await roleService.getUserPolicies(user.id);
 | 
			
		||||
			expect(resultAfter25hAgain.canManageCustomEmojis).toBe(true);
 | 
			
		||||
| 
						 | 
				
			
			@ -807,7 +807,7 @@ describe('RoleService', () => {
 | 
			
		|||
			await roleService.assign(user.id, role.id);
 | 
			
		||||
 | 
			
		||||
			clock.uninstall();
 | 
			
		||||
			await sleep(100);
 | 
			
		||||
			await setTimeout(100);
 | 
			
		||||
 | 
			
		||||
			const assignments = await roleAssignmentsRepository.find({
 | 
			
		||||
				where: {
 | 
			
		||||
| 
						 | 
				
			
			@ -835,7 +835,7 @@ describe('RoleService', () => {
 | 
			
		|||
			await roleService.assign(user.id, role.id);
 | 
			
		||||
 | 
			
		||||
			clock.uninstall();
 | 
			
		||||
			await sleep(100);
 | 
			
		||||
			await setTimeout(100);
 | 
			
		||||
 | 
			
		||||
			const assignments = await roleAssignmentsRepository.find({
 | 
			
		||||
				where: {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -3,6 +3,7 @@
 | 
			
		|||
 * SPDX-License-Identifier: AGPL-3.0-only
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
import { setTimeout } from 'node:timers/promises';
 | 
			
		||||
import { afterEach, beforeEach, describe, expect, jest } from '@jest/globals';
 | 
			
		||||
import { Test, TestingModule } from '@nestjs/testing';
 | 
			
		||||
import { MiUser } from '@/models/User.js';
 | 
			
		||||
| 
						 | 
				
			
			@ -16,7 +17,7 @@ import { DI } from '@/di-symbols.js';
 | 
			
		|||
import { QueueService } from '@/core/QueueService.js';
 | 
			
		||||
import { LoggerService } from '@/core/LoggerService.js';
 | 
			
		||||
import { SystemWebhookService } from '@/core/SystemWebhookService.js';
 | 
			
		||||
import { randomString, sleep } from '../utils.js';
 | 
			
		||||
import { randomString } from '../utils.js';
 | 
			
		||||
 | 
			
		||||
describe('SystemWebhookService', () => {
 | 
			
		||||
	let app: TestingModule;
 | 
			
		||||
| 
						 | 
				
			
			@ -358,7 +359,7 @@ describe('SystemWebhookService', () => {
 | 
			
		|||
					);
 | 
			
		||||
 | 
			
		||||
					// redisでの配信経由で更新されるのでちょっと待つ
 | 
			
		||||
					await sleep(500);
 | 
			
		||||
					await setTimeout(500);
 | 
			
		||||
 | 
			
		||||
					const fetchedWebhooks = await service.fetchActiveSystemWebhooks();
 | 
			
		||||
					expect(fetchedWebhooks).toEqual([webhook]);
 | 
			
		||||
| 
						 | 
				
			
			@ -377,7 +378,7 @@ describe('SystemWebhookService', () => {
 | 
			
		|||
					);
 | 
			
		||||
 | 
			
		||||
					// redisでの配信経由で更新されるのでちょっと待つ
 | 
			
		||||
					await sleep(500);
 | 
			
		||||
					await setTimeout(500);
 | 
			
		||||
 | 
			
		||||
					const fetchedWebhooks = await service.fetchActiveSystemWebhooks();
 | 
			
		||||
					expect(fetchedWebhooks).toEqual([]);
 | 
			
		||||
| 
						 | 
				
			
			@ -407,7 +408,7 @@ describe('SystemWebhookService', () => {
 | 
			
		|||
					);
 | 
			
		||||
 | 
			
		||||
					// redisでの配信経由で更新されるのでちょっと待つ
 | 
			
		||||
					await sleep(500);
 | 
			
		||||
					await setTimeout(500);
 | 
			
		||||
 | 
			
		||||
					const fetchedWebhooks = await service.fetchActiveSystemWebhooks();
 | 
			
		||||
					expect(fetchedWebhooks).toEqual([webhook2]);
 | 
			
		||||
| 
						 | 
				
			
			@ -434,7 +435,7 @@ describe('SystemWebhookService', () => {
 | 
			
		|||
					);
 | 
			
		||||
 | 
			
		||||
					// redisでの配信経由で更新されるのでちょっと待つ
 | 
			
		||||
					await sleep(500);
 | 
			
		||||
					await setTimeout(500);
 | 
			
		||||
 | 
			
		||||
					const fetchedWebhooks = await service.fetchActiveSystemWebhooks();
 | 
			
		||||
					expect(fetchedWebhooks.length).toEqual(0);
 | 
			
		||||
| 
						 | 
				
			
			@ -457,7 +458,7 @@ describe('SystemWebhookService', () => {
 | 
			
		|||
					);
 | 
			
		||||
 | 
			
		||||
					// redisでの配信経由で更新されるのでちょっと待つ
 | 
			
		||||
					await sleep(500);
 | 
			
		||||
					await setTimeout(500);
 | 
			
		||||
 | 
			
		||||
					const fetchedWebhooks = await service.fetchActiveSystemWebhooks();
 | 
			
		||||
					expect(fetchedWebhooks).toEqual([webhook2]);
 | 
			
		||||
| 
						 | 
				
			
			@ -481,7 +482,7 @@ describe('SystemWebhookService', () => {
 | 
			
		|||
					);
 | 
			
		||||
 | 
			
		||||
					// redisでの配信経由で更新されるのでちょっと待つ
 | 
			
		||||
					await sleep(500);
 | 
			
		||||
					await setTimeout(500);
 | 
			
		||||
 | 
			
		||||
					const fetchedWebhooks = await service.fetchActiveSystemWebhooks();
 | 
			
		||||
					expect(fetchedWebhooks.length).toEqual(0);
 | 
			
		||||
| 
						 | 
				
			
			@ -504,7 +505,7 @@ describe('SystemWebhookService', () => {
 | 
			
		|||
					);
 | 
			
		||||
 | 
			
		||||
					// redisでの配信経由で更新されるのでちょっと待つ
 | 
			
		||||
					await sleep(500);
 | 
			
		||||
					await setTimeout(500);
 | 
			
		||||
 | 
			
		||||
					const fetchedWebhooks = await service.fetchActiveSystemWebhooks();
 | 
			
		||||
					expect(fetchedWebhooks.length).toEqual(0);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -605,14 +605,6 @@ export async function initTestDb(justBorrow = false, initEntities?: any[]) {
 | 
			
		|||
	return db;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export function sleep(msec: number) {
 | 
			
		||||
	return new Promise<void>(res => {
 | 
			
		||||
		setTimeout(() => {
 | 
			
		||||
			res();
 | 
			
		||||
		}, msec);
 | 
			
		||||
	});
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export async function sendEnvUpdateRequest(params: { key: string, value?: string }) {
 | 
			
		||||
	const res = await fetch(
 | 
			
		||||
		`http://localhost:${port + 1000}/env`,
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		
		Reference in a new issue