53 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
			
		
		
	
	
			53 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
| import assert, { strictEqual } from 'node:assert';
 | |
| import { createAccount, type LoginUser, sleep } from './utils.js';
 | |
| 
 | |
| describe('Move', () => {
 | |
| 	test('Minimum move', async () => {
 | |
| 		const [alice, bob] = await Promise.all([
 | |
| 			createAccount('a.test'),
 | |
| 			createAccount('b.test'),
 | |
| 		]);
 | |
| 
 | |
| 		await bob.client.request('i/update', { alsoKnownAs: [`@${alice.username}@a.test`] });
 | |
| 		await alice.client.request('i/move', { moveToAccount: `@${bob.username}@b.test` });
 | |
| 	});
 | |
| 
 | |
| 	/** @see https://github.com/misskey-dev/misskey/issues/11320 */
 | |
| 	describe('Following relation is transferred after move', () => {
 | |
| 		let alice: LoginUser, bob: LoginUser, carol: LoginUser;
 | |
| 
 | |
| 		beforeAll(async () => {
 | |
| 			[alice, bob] = await Promise.all([
 | |
| 				createAccount('a.test'),
 | |
| 				createAccount('b.test'),
 | |
| 			]);
 | |
| 			carol = await createAccount('a.test');
 | |
| 
 | |
| 			// Follow @carol@a.test ==> @alice@a.test
 | |
| 			await carol.client.request('following/create', { userId: alice.id });
 | |
| 
 | |
| 			// Move @alice@a.test ==> @bob@b.test
 | |
| 			await bob.client.request('i/update', { alsoKnownAs: [`@${alice.username}@a.test`] });
 | |
| 			await alice.client.request('i/move', { moveToAccount: `@${bob.username}@b.test` });
 | |
| 			await sleep();
 | |
| 		});
 | |
| 
 | |
| 		test('Check from follower', async () => {
 | |
| 			const following = await carol.client.request('users/following', { userId: carol.id });
 | |
| 			strictEqual(following.length, 2);
 | |
| 			const followees = following.map(({ followee }) => followee);
 | |
| 			assert(followees.every(followee => followee != null));
 | |
| 			assert(followees.some(({ id, url }) => id === alice.id && url === null));
 | |
| 			assert(followees.some(({ url }) => url === `https://b.test/@${bob.username}`));
 | |
| 		});
 | |
| 
 | |
| 		test('Check from followee', async () => {
 | |
| 			const followers = await bob.client.request('users/followers', { userId: bob.id });
 | |
| 			strictEqual(followers.length, 1);
 | |
| 			const follower = followers[0].follower;
 | |
| 			assert(follower != null);
 | |
| 			strictEqual(follower.url, `https://a.test/@${carol.username}`);
 | |
| 		});
 | |
| 	});
 | |
| });
 |