mirror of
https://github.com/misskey-dev/misskey.git
synced 2024-11-22 19:47:22 +01:00
wip
This commit is contained in:
parent
d6ff810560
commit
ea0d050b71
2 changed files with 118 additions and 3 deletions
|
@ -934,7 +934,7 @@ export class NoteCreateService implements OnApplicationShutdown {
|
||||||
'note', note.id);
|
'note', note.id);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (note.userHost == null) {
|
if (note.visibility === 'public' && note.userHost == null) {
|
||||||
redisPipeline.xadd(
|
redisPipeline.xadd(
|
||||||
'localTimeline',
|
'localTimeline',
|
||||||
'MAXLEN', '~', '1000',
|
'MAXLEN', '~', '1000',
|
||||||
|
|
|
@ -130,7 +130,7 @@ describe('Timelines', () => {
|
||||||
});
|
});
|
||||||
|
|
||||||
test('withReplies: false でフォローしているユーザーのそのユーザー自身への返信が含まれる', async () => {
|
test('withReplies: false でフォローしているユーザーのそのユーザー自身への返信が含まれる', async () => {
|
||||||
const [alice, bob, carol] = await Promise.all([signup(), signup(), signup()]);
|
const [alice, bob] = await Promise.all([signup(), signup()]);
|
||||||
|
|
||||||
await api('/following/create', { userId: bob.id }, alice);
|
await api('/following/create', { userId: bob.id }, alice);
|
||||||
const bobNote1 = await post(bob, { text: 'hi' });
|
const bobNote1 = await post(bob, { text: 'hi' });
|
||||||
|
@ -145,7 +145,7 @@ describe('Timelines', () => {
|
||||||
});
|
});
|
||||||
|
|
||||||
test('自分の他人への返信が含まれる', async () => {
|
test('自分の他人への返信が含まれる', async () => {
|
||||||
const [alice, bob, carol] = await Promise.all([signup(), signup(), signup()]);
|
const [alice, bob] = await Promise.all([signup(), signup()]);
|
||||||
|
|
||||||
const bobNote = await post(bob, { text: 'hi' });
|
const bobNote = await post(bob, { text: 'hi' });
|
||||||
const aliceNote = await post(alice, { text: 'hi', replyId: bobNote.id });
|
const aliceNote = await post(alice, { text: 'hi', replyId: bobNote.id });
|
||||||
|
@ -239,6 +239,32 @@ describe('Timelines', () => {
|
||||||
assert.strictEqual(res.body.some((note: any) => note.id === bobNote.id), false);
|
assert.strictEqual(res.body.some((note: any) => note.id === bobNote.id), false);
|
||||||
assert.strictEqual(res.body.some((note: any) => note.id === carolNote.id), false);
|
assert.strictEqual(res.body.some((note: any) => note.id === carolNote.id), false);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test('フォローしているリモートユーザーのノートが含まれる', async () => {
|
||||||
|
const [alice, bob] = await Promise.all([signup(), signup({ host: 'example.com' })]);
|
||||||
|
|
||||||
|
await api('/following/create', { userId: bob.id }, alice);
|
||||||
|
const bobNote = await post(bob, { text: 'hi' });
|
||||||
|
|
||||||
|
await sleep(100); // redisに追加されるのを待つ
|
||||||
|
|
||||||
|
const res = await api('/notes/timeline', {}, alice);
|
||||||
|
|
||||||
|
assert.strictEqual(res.body.some((note: any) => note.id === bobNote.id), true);
|
||||||
|
});
|
||||||
|
|
||||||
|
test('フォローしているリモートユーザーの visibility: home なノートが含まれる', async () => {
|
||||||
|
const [alice, bob] = await Promise.all([signup(), signup({ host: 'example.com' })]);
|
||||||
|
|
||||||
|
await api('/following/create', { userId: bob.id }, alice);
|
||||||
|
const bobNote = await post(bob, { text: 'hi', visibility: 'home' });
|
||||||
|
|
||||||
|
await sleep(100); // redisに追加されるのを待つ
|
||||||
|
|
||||||
|
const res = await api('/notes/timeline', {}, alice);
|
||||||
|
|
||||||
|
assert.strictEqual(res.body.some((note: any) => note.id === bobNote.id), true);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('Local TL', () => {
|
describe('Local TL', () => {
|
||||||
|
@ -256,6 +282,18 @@ describe('Timelines', () => {
|
||||||
assert.strictEqual(res.body.some((note: any) => note.id === carolNote.id), false);
|
assert.strictEqual(res.body.some((note: any) => note.id === carolNote.id), false);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test('リモートユーザーのノートが含まれない', async () => {
|
||||||
|
const [alice, bob] = await Promise.all([signup(), signup({ host: 'example.com' })]);
|
||||||
|
|
||||||
|
const bobNote = await post(bob, { text: 'hi' });
|
||||||
|
|
||||||
|
await sleep(100); // redisに追加されるのを待つ
|
||||||
|
|
||||||
|
const res = await api('/notes/local-timeline', {}, alice);
|
||||||
|
|
||||||
|
assert.strictEqual(res.body.some((note: any) => note.id === bobNote.id), false);
|
||||||
|
});
|
||||||
|
|
||||||
test('フォローしているユーザーの visibility: home なノートが含まれる', async () => {
|
test('フォローしているユーザーの visibility: home なノートが含まれる', async () => {
|
||||||
const [alice, bob, carol] = await Promise.all([signup(), signup(), signup()]);
|
const [alice, bob, carol] = await Promise.all([signup(), signup(), signup()]);
|
||||||
|
|
||||||
|
@ -322,6 +360,83 @@ describe('Timelines', () => {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
describe('Social TL', () => {
|
||||||
|
test('ローカルユーザーのノートが含まれる', async () => {
|
||||||
|
const [alice, bob] = await Promise.all([signup(), signup()]);
|
||||||
|
|
||||||
|
const bobNote = await post(bob, { text: 'hi' });
|
||||||
|
|
||||||
|
await sleep(100); // redisに追加されるのを待つ
|
||||||
|
|
||||||
|
const res = await api('/notes/hybrid-timeline', {}, alice);
|
||||||
|
|
||||||
|
assert.strictEqual(res.body.some((note: any) => note.id === bobNote.id), true);
|
||||||
|
});
|
||||||
|
|
||||||
|
test('ローカルユーザーの visibility: home なノートが含まれない', async () => {
|
||||||
|
const [alice, bob] = await Promise.all([signup(), signup()]);
|
||||||
|
|
||||||
|
const bobNote = await post(bob, { text: 'hi', visibility: 'home' });
|
||||||
|
|
||||||
|
await sleep(100); // redisに追加されるのを待つ
|
||||||
|
|
||||||
|
const res = await api('/notes/hybrid-timeline', {}, alice);
|
||||||
|
|
||||||
|
assert.strictEqual(res.body.some((note: any) => note.id === bobNote.id), false);
|
||||||
|
});
|
||||||
|
|
||||||
|
test('フォローしているローカルユーザーの visibility: home なノートが含まれる', async () => {
|
||||||
|
const [alice, bob] = await Promise.all([signup(), signup()]);
|
||||||
|
|
||||||
|
await api('/following/create', { userId: bob.id }, alice);
|
||||||
|
const bobNote = await post(bob, { text: 'hi', visibility: 'home' });
|
||||||
|
|
||||||
|
await sleep(100); // redisに追加されるのを待つ
|
||||||
|
|
||||||
|
const res = await api('/notes/hybrid-timeline', {}, alice);
|
||||||
|
|
||||||
|
assert.strictEqual(res.body.some((note: any) => note.id === bobNote.id), true);
|
||||||
|
});
|
||||||
|
|
||||||
|
test('リモートユーザーのノートが含まれない', async () => {
|
||||||
|
const [alice, bob] = await Promise.all([signup(), signup({ host: 'example.com' })]);
|
||||||
|
|
||||||
|
const bobNote = await post(bob, { text: 'hi' });
|
||||||
|
|
||||||
|
await sleep(100); // redisに追加されるのを待つ
|
||||||
|
|
||||||
|
const res = await api('/notes/local-timeline', {}, alice);
|
||||||
|
|
||||||
|
assert.strictEqual(res.body.some((note: any) => note.id === bobNote.id), false);
|
||||||
|
});
|
||||||
|
|
||||||
|
test('フォローしているリモートユーザーのノートが含まれる', async () => {
|
||||||
|
const [alice, bob] = await Promise.all([signup(), signup({ host: 'example.com' })]);
|
||||||
|
|
||||||
|
await api('/following/create', { userId: bob.id }, alice);
|
||||||
|
const bobNote = await post(bob, { text: 'hi' });
|
||||||
|
|
||||||
|
await sleep(100); // redisに追加されるのを待つ
|
||||||
|
|
||||||
|
const res = await api('/notes/hybrid-timeline', {}, alice);
|
||||||
|
|
||||||
|
assert.strictEqual(res.body.some((note: any) => note.id === bobNote.id), true);
|
||||||
|
});
|
||||||
|
|
||||||
|
test('フォローしているリモートユーザーの visibility: home なノートが含まれる', async () => {
|
||||||
|
const [alice, bob] = await Promise.all([signup(), signup({ host: 'example.com' })]);
|
||||||
|
|
||||||
|
await api('/following/create', { userId: bob.id }, alice);
|
||||||
|
const bobNote = await post(bob, { text: 'hi', visibility: 'home' });
|
||||||
|
|
||||||
|
await sleep(100); // redisに追加されるのを待つ
|
||||||
|
|
||||||
|
const res = await api('/notes/hybrid-timeline', {}, alice);
|
||||||
|
|
||||||
|
assert.strictEqual(res.body.some((note: any) => note.id === bobNote.id), true);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
// TODO: リノートミュート済みユーザーのテスト
|
// TODO: リノートミュート済みユーザーのテスト
|
||||||
// TODO: withFilesのテスト
|
// TODO: withFilesのテスト
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in a new issue