enhance(server): Improve user block (#7640)
* enhance(server): Improve user block
* Update CHANGELOG.md
* ユーザーリスト対応
* 相手から見れなくなるように
* Update 1629004542760-chart-reindex.ts
2365761ba5 (commitcomment-54919821)
* update test
* add test
* add todos
* Update 1629004542760-chart-reindex.ts
			
			
This commit is contained in:
		
							parent
							
								
									7ebdd4739a
								
							
						
					
					
						commit
						7015df37e3
					
				
					 42 changed files with 394 additions and 30 deletions
				
			
		
							
								
								
									
										95
									
								
								test/block.ts
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										95
									
								
								test/block.ts
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,95 @@ | |||
| /* | ||||
|  * Tests of block | ||||
|  * | ||||
|  * How to run the tests: | ||||
|  * > npx cross-env TS_NODE_FILES=true TS_NODE_TRANSPILE_ONLY=true npx mocha test/block.ts --require ts-node/register | ||||
|  * | ||||
|  * To specify test: | ||||
|  * > npx cross-env TS_NODE_FILES=true TS_NODE_TRANSPILE_ONLY=true npx mocha test/block.ts --require ts-node/register -g 'test name' | ||||
|  */ | ||||
| 
 | ||||
| process.env.NODE_ENV = 'test'; | ||||
| 
 | ||||
| import * as assert from 'assert'; | ||||
| import * as childProcess from 'child_process'; | ||||
| import { async, signup, request, post, startServer, shutdownServer } from './utils'; | ||||
| 
 | ||||
| describe('Block', () => { | ||||
| 	let p: childProcess.ChildProcess; | ||||
| 
 | ||||
| 	// alice blocks bob
 | ||||
| 	let alice: any; | ||||
| 	let bob: any; | ||||
| 	let carol: any; | ||||
| 
 | ||||
| 	before(async () => { | ||||
| 		p = await startServer(); | ||||
| 		alice = await signup({ username: 'alice' }); | ||||
| 		bob = await signup({ username: 'bob' }); | ||||
| 		carol = await signup({ username: 'carol' }); | ||||
| 	}); | ||||
| 
 | ||||
| 	after(async () => { | ||||
| 		await shutdownServer(p); | ||||
| 	}); | ||||
| 
 | ||||
| 	it('Block作成', async(async () => { | ||||
| 		const res = await request('/blocking/create', { | ||||
| 			userId: bob.id | ||||
| 		}, alice); | ||||
| 
 | ||||
| 		assert.strictEqual(res.status, 200); | ||||
| 	})); | ||||
| 
 | ||||
| 	it('ブロックされているユーザーをフォローできない', async(async () => { | ||||
| 		const res = await request('/following/create', { userId: alice.id }, bob); | ||||
| 
 | ||||
| 		assert.strictEqual(res.status, 400); | ||||
| 		assert.strictEqual(res.body.error.id, 'c4ab57cc-4e41-45e9-bfd9-584f61e35ce0'); | ||||
| 	})); | ||||
| 
 | ||||
| 	it('ブロックされているユーザーにリアクションできない', async(async () => { | ||||
| 		const note = await post(alice, { text: 'hello' }); | ||||
| 
 | ||||
| 		const res = await request('/notes/reactions/create', { noteId: note.id, reaction: '👍' }, bob); | ||||
| 
 | ||||
| 		assert.strictEqual(res.status, 400); | ||||
| 		assert.strictEqual(res.body.error.id, '20ef5475-9f38-4e4c-bd33-de6d979498ec'); | ||||
| 	})); | ||||
| 
 | ||||
| 	it('ブロックされているユーザーに返信できない', async(async () => { | ||||
| 		const note = await post(alice, { text: 'hello' }); | ||||
| 
 | ||||
| 		const res = await request('/notes/create', { replyId: note.id, text: 'yo' }, bob); | ||||
| 
 | ||||
| 		assert.strictEqual(res.status, 400); | ||||
| 		assert.strictEqual(res.body.error.id, 'b390d7e1-8a5e-46ed-b625-06271cafd3d3'); | ||||
| 	})); | ||||
| 
 | ||||
| 	it('ブロックされているユーザーのノートをRenoteできない', async(async () => { | ||||
| 		const note = await post(alice, { text: 'hello' }); | ||||
| 
 | ||||
| 		const res = await request('/notes/create', { renoteId: note.id, text: 'yo' }, bob); | ||||
| 
 | ||||
| 		assert.strictEqual(res.status, 400); | ||||
| 		assert.strictEqual(res.body.error.id, 'b390d7e1-8a5e-46ed-b625-06271cafd3d3'); | ||||
| 	})); | ||||
| 
 | ||||
| 	// TODO: ユーザーリストに入れられないテスト
 | ||||
| 
 | ||||
| 	// TODO: ユーザーリストから除外されるテスト
 | ||||
| 
 | ||||
| 	it('タイムライン(LTL)にブロックされているユーザーの投稿が含まれない', async(async () => { | ||||
| 		const aliceNote = await post(alice); | ||||
| 		const bobNote = await post(bob); | ||||
| 		const carolNote = await post(carol); | ||||
| 
 | ||||
| 		const res = await request('/notes/local-timeline', {}, bob); | ||||
| 
 | ||||
| 		assert.strictEqual(res.status, 200); | ||||
| 		assert.strictEqual(Array.isArray(res.body), true); | ||||
| 		assert.strictEqual(res.body.some((note: any) => note.id === aliceNote.id), false); | ||||
| 		assert.strictEqual(res.body.some((note: any) => note.id === bobNote.id), true); | ||||
| 		assert.strictEqual(res.body.some((note: any) => note.id === carolNote.id), true); | ||||
| 	})); | ||||
| }); | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue