Merge remote-tracking branch 'misskey-dev/develop' into io
This commit is contained in:
commit
9e63703d59
35 changed files with 1455 additions and 1309 deletions
|
@ -81,6 +81,7 @@ describe('Endpoints', () => {
|
|||
test('クエリをインジェクションできない', async () => {
|
||||
const res = await api('signin', {
|
||||
username: 'test1',
|
||||
// @ts-expect-error password must be string
|
||||
password: {
|
||||
$gt: '',
|
||||
},
|
||||
|
@ -105,7 +106,7 @@ describe('Endpoints', () => {
|
|||
const myLocation = '七森中';
|
||||
const myBirthday = '2000-09-07';
|
||||
|
||||
const res = await api('/i/update', {
|
||||
const res = await api('i/update', {
|
||||
name: myName,
|
||||
location: myLocation,
|
||||
birthday: myBirthday,
|
||||
|
@ -119,7 +120,7 @@ describe('Endpoints', () => {
|
|||
});
|
||||
|
||||
test('名前を空白にできる', async () => {
|
||||
const res = await api('/i/update', {
|
||||
const res = await api('i/update', {
|
||||
name: ' ',
|
||||
}, alice);
|
||||
assert.strictEqual(res.status, 200);
|
||||
|
@ -127,11 +128,11 @@ describe('Endpoints', () => {
|
|||
});
|
||||
|
||||
test('誕生日の設定を削除できる', async () => {
|
||||
await api('/i/update', {
|
||||
await api('i/update', {
|
||||
birthday: '2000-09-07',
|
||||
}, alice);
|
||||
|
||||
const res = await api('/i/update', {
|
||||
const res = await api('i/update', {
|
||||
birthday: null,
|
||||
}, alice);
|
||||
|
||||
|
@ -141,7 +142,7 @@ describe('Endpoints', () => {
|
|||
});
|
||||
|
||||
test('不正な誕生日の形式で怒られる', async () => {
|
||||
const res = await api('/i/update', {
|
||||
const res = await api('i/update', {
|
||||
birthday: '2000/09/07',
|
||||
}, alice);
|
||||
assert.strictEqual(res.status, 400);
|
||||
|
@ -150,7 +151,7 @@ describe('Endpoints', () => {
|
|||
|
||||
describe('users/show', () => {
|
||||
test('ユーザーが取得できる', async () => {
|
||||
const res = await api('/users/show', {
|
||||
const res = await api('users/show', {
|
||||
userId: alice.id,
|
||||
}, alice);
|
||||
|
||||
|
@ -160,14 +161,14 @@ describe('Endpoints', () => {
|
|||
});
|
||||
|
||||
test('ユーザーが存在しなかったら怒る', async () => {
|
||||
const res = await api('/users/show', {
|
||||
const res = await api('users/show', {
|
||||
userId: '000000000000000000000000',
|
||||
});
|
||||
assert.strictEqual(res.status, 404);
|
||||
});
|
||||
|
||||
test('間違ったIDで怒られる', async () => {
|
||||
const res = await api('/users/show', {
|
||||
const res = await api('users/show', {
|
||||
userId: 'kyoppie',
|
||||
});
|
||||
assert.strictEqual(res.status, 404);
|
||||
|
@ -180,7 +181,7 @@ describe('Endpoints', () => {
|
|||
text: 'test',
|
||||
});
|
||||
|
||||
const res = await api('/notes/show', {
|
||||
const res = await api('notes/show', {
|
||||
noteId: myPost.id,
|
||||
}, alice);
|
||||
|
||||
|
@ -191,14 +192,14 @@ describe('Endpoints', () => {
|
|||
});
|
||||
|
||||
test('投稿が存在しなかったら怒る', async () => {
|
||||
const res = await api('/notes/show', {
|
||||
const res = await api('notes/show', {
|
||||
noteId: '000000000000000000000000',
|
||||
});
|
||||
assert.strictEqual(res.status, 400);
|
||||
});
|
||||
|
||||
test('間違ったIDで怒られる', async () => {
|
||||
const res = await api('/notes/show', {
|
||||
const res = await api('notes/show', {
|
||||
noteId: 'kyoppie',
|
||||
});
|
||||
assert.strictEqual(res.status, 400);
|
||||
|
@ -209,14 +210,14 @@ describe('Endpoints', () => {
|
|||
test('リアクションできる', async () => {
|
||||
const bobPost = await post(bob, { text: 'hi' });
|
||||
|
||||
const res = await api('/notes/reactions/create', {
|
||||
const res = await api('notes/reactions/create', {
|
||||
noteId: bobPost.id,
|
||||
reaction: '🚀',
|
||||
}, alice);
|
||||
|
||||
assert.strictEqual(res.status, 204);
|
||||
|
||||
const resNote = await api('/notes/show', {
|
||||
const resNote = await api('notes/show', {
|
||||
noteId: bobPost.id,
|
||||
}, alice);
|
||||
|
||||
|
@ -227,7 +228,7 @@ describe('Endpoints', () => {
|
|||
test('自分の投稿にもリアクションできる', async () => {
|
||||
const myPost = await post(alice, { text: 'hi' });
|
||||
|
||||
const res = await api('/notes/reactions/create', {
|
||||
const res = await api('notes/reactions/create', {
|
||||
noteId: myPost.id,
|
||||
reaction: '🚀',
|
||||
}, alice);
|
||||
|
@ -238,19 +239,19 @@ describe('Endpoints', () => {
|
|||
test('二重にリアクションすると上書きされる', async () => {
|
||||
const bobPost = await post(bob, { text: 'hi' });
|
||||
|
||||
await api('/notes/reactions/create', {
|
||||
await api('notes/reactions/create', {
|
||||
noteId: bobPost.id,
|
||||
reaction: '🥰',
|
||||
}, alice);
|
||||
|
||||
const res = await api('/notes/reactions/create', {
|
||||
const res = await api('notes/reactions/create', {
|
||||
noteId: bobPost.id,
|
||||
reaction: '🚀',
|
||||
}, alice);
|
||||
|
||||
assert.strictEqual(res.status, 204);
|
||||
|
||||
const resNote = await api('/notes/show', {
|
||||
const resNote = await api('notes/show', {
|
||||
noteId: bobPost.id,
|
||||
}, alice);
|
||||
|
||||
|
@ -259,7 +260,7 @@ describe('Endpoints', () => {
|
|||
});
|
||||
|
||||
test('存在しない投稿にはリアクションできない', async () => {
|
||||
const res = await api('/notes/reactions/create', {
|
||||
const res = await api('notes/reactions/create', {
|
||||
noteId: '000000000000000000000000',
|
||||
reaction: '🚀',
|
||||
}, alice);
|
||||
|
@ -268,13 +269,14 @@ describe('Endpoints', () => {
|
|||
});
|
||||
|
||||
test('空のパラメータで怒られる', async () => {
|
||||
const res = await api('/notes/reactions/create', {}, alice);
|
||||
// @ts-expect-error param must not be empty
|
||||
const res = await api('notes/reactions/create', {}, alice);
|
||||
|
||||
assert.strictEqual(res.status, 400);
|
||||
});
|
||||
|
||||
test('間違ったIDで怒られる', async () => {
|
||||
const res = await api('/notes/reactions/create', {
|
||||
const res = await api('notes/reactions/create', {
|
||||
noteId: 'kyoppie',
|
||||
reaction: '🚀',
|
||||
}, alice);
|
||||
|
@ -285,7 +287,7 @@ describe('Endpoints', () => {
|
|||
|
||||
describe('following/create', () => {
|
||||
test('フォローできる', async () => {
|
||||
const res = await api('/following/create', {
|
||||
const res = await api('following/create', {
|
||||
userId: alice.id,
|
||||
}, bob);
|
||||
|
||||
|
@ -303,7 +305,7 @@ describe('Endpoints', () => {
|
|||
});
|
||||
|
||||
test('既にフォローしている場合は怒る', async () => {
|
||||
const res = await api('/following/create', {
|
||||
const res = await api('following/create', {
|
||||
userId: alice.id,
|
||||
}, bob);
|
||||
|
||||
|
@ -311,7 +313,7 @@ describe('Endpoints', () => {
|
|||
});
|
||||
|
||||
test('存在しないユーザーはフォローできない', async () => {
|
||||
const res = await api('/following/create', {
|
||||
const res = await api('following/create', {
|
||||
userId: '000000000000000000000000',
|
||||
}, alice);
|
||||
|
||||
|
@ -319,7 +321,7 @@ describe('Endpoints', () => {
|
|||
});
|
||||
|
||||
test('自分自身はフォローできない', async () => {
|
||||
const res = await api('/following/create', {
|
||||
const res = await api('following/create', {
|
||||
userId: alice.id,
|
||||
}, alice);
|
||||
|
||||
|
@ -327,13 +329,14 @@ describe('Endpoints', () => {
|
|||
});
|
||||
|
||||
test('空のパラメータで怒られる', async () => {
|
||||
const res = await api('/following/create', {}, alice);
|
||||
// @ts-expect-error params must not be empty
|
||||
const res = await api('following/create', {}, alice);
|
||||
|
||||
assert.strictEqual(res.status, 400);
|
||||
});
|
||||
|
||||
test('間違ったIDで怒られる', async () => {
|
||||
const res = await api('/following/create', {
|
||||
const res = await api('following/create', {
|
||||
userId: 'foo',
|
||||
}, alice);
|
||||
|
||||
|
@ -343,11 +346,11 @@ describe('Endpoints', () => {
|
|||
|
||||
describe('following/delete', () => {
|
||||
test('フォロー解除できる', async () => {
|
||||
await api('/following/create', {
|
||||
await api('following/create', {
|
||||
userId: alice.id,
|
||||
}, bob);
|
||||
|
||||
const res = await api('/following/delete', {
|
||||
const res = await api('following/delete', {
|
||||
userId: alice.id,
|
||||
}, bob);
|
||||
|
||||
|
@ -365,7 +368,7 @@ describe('Endpoints', () => {
|
|||
});
|
||||
|
||||
test('フォローしていない場合は怒る', async () => {
|
||||
const res = await api('/following/delete', {
|
||||
const res = await api('following/delete', {
|
||||
userId: alice.id,
|
||||
}, bob);
|
||||
|
||||
|
@ -373,7 +376,7 @@ describe('Endpoints', () => {
|
|||
});
|
||||
|
||||
test('存在しないユーザーはフォロー解除できない', async () => {
|
||||
const res = await api('/following/delete', {
|
||||
const res = await api('following/delete', {
|
||||
userId: '000000000000000000000000',
|
||||
}, alice);
|
||||
|
||||
|
@ -381,7 +384,7 @@ describe('Endpoints', () => {
|
|||
});
|
||||
|
||||
test('自分自身はフォロー解除できない', async () => {
|
||||
const res = await api('/following/delete', {
|
||||
const res = await api('following/delete', {
|
||||
userId: alice.id,
|
||||
}, alice);
|
||||
|
||||
|
@ -389,13 +392,14 @@ describe('Endpoints', () => {
|
|||
});
|
||||
|
||||
test('空のパラメータで怒られる', async () => {
|
||||
const res = await api('/following/delete', {}, alice);
|
||||
// @ts-expect-error params must not be empty
|
||||
const res = await api('following/delete', {}, alice);
|
||||
|
||||
assert.strictEqual(res.status, 400);
|
||||
});
|
||||
|
||||
test('間違ったIDで怒られる', async () => {
|
||||
const res = await api('/following/delete', {
|
||||
const res = await api('following/delete', {
|
||||
userId: 'kyoppie',
|
||||
}, alice);
|
||||
|
||||
|
@ -405,20 +409,20 @@ describe('Endpoints', () => {
|
|||
|
||||
describe('channels/search', () => {
|
||||
test('空白検索で一覧を取得できる', async () => {
|
||||
await api('/channels/create', {
|
||||
await api('channels/create', {
|
||||
name: 'aaa',
|
||||
description: 'bbb',
|
||||
}, bob);
|
||||
await api('/channels/create', {
|
||||
await api('channels/create', {
|
||||
name: 'ccc1',
|
||||
description: 'ddd1',
|
||||
}, bob);
|
||||
await api('/channels/create', {
|
||||
await api('channels/create', {
|
||||
name: 'ccc2',
|
||||
description: 'ddd2',
|
||||
}, bob);
|
||||
|
||||
const res = await api('/channels/search', {
|
||||
const res = await api('channels/search', {
|
||||
query: '',
|
||||
}, bob);
|
||||
|
||||
|
@ -427,7 +431,7 @@ describe('Endpoints', () => {
|
|||
assert.strictEqual(res.body.length, 3);
|
||||
});
|
||||
test('名前のみの検索で名前を検索できる', async () => {
|
||||
const res = await api('/channels/search', {
|
||||
const res = await api('channels/search', {
|
||||
query: 'aaa',
|
||||
type: 'nameOnly',
|
||||
}, bob);
|
||||
|
@ -438,7 +442,7 @@ describe('Endpoints', () => {
|
|||
assert.strictEqual(res.body[0].name, 'aaa');
|
||||
});
|
||||
test('名前のみの検索で名前を複数検索できる', async () => {
|
||||
const res = await api('/channels/search', {
|
||||
const res = await api('channels/search', {
|
||||
query: 'ccc',
|
||||
type: 'nameOnly',
|
||||
}, bob);
|
||||
|
@ -448,7 +452,7 @@ describe('Endpoints', () => {
|
|||
assert.strictEqual(res.body.length, 2);
|
||||
});
|
||||
test('名前のみの検索で説明は検索できない', async () => {
|
||||
const res = await api('/channels/search', {
|
||||
const res = await api('channels/search', {
|
||||
query: 'bbb',
|
||||
type: 'nameOnly',
|
||||
}, bob);
|
||||
|
@ -458,7 +462,7 @@ describe('Endpoints', () => {
|
|||
assert.strictEqual(res.body.length, 0);
|
||||
});
|
||||
test('名前と説明の検索で名前を検索できる', async () => {
|
||||
const res = await api('/channels/search', {
|
||||
const res = await api('channels/search', {
|
||||
query: 'ccc1',
|
||||
}, bob);
|
||||
|
||||
|
@ -468,7 +472,7 @@ describe('Endpoints', () => {
|
|||
assert.strictEqual(res.body[0].name, 'ccc1');
|
||||
});
|
||||
test('名前と説明での検索で説明を検索できる', async () => {
|
||||
const res = await api('/channels/search', {
|
||||
const res = await api('channels/search', {
|
||||
query: 'ddd1',
|
||||
}, bob);
|
||||
|
||||
|
@ -478,7 +482,7 @@ describe('Endpoints', () => {
|
|||
assert.strictEqual(res.body[0].name, 'ccc1');
|
||||
});
|
||||
test('名前と説明の検索で名前を複数検索できる', async () => {
|
||||
const res = await api('/channels/search', {
|
||||
const res = await api('channels/search', {
|
||||
query: 'ccc',
|
||||
}, bob);
|
||||
|
||||
|
@ -487,7 +491,7 @@ describe('Endpoints', () => {
|
|||
assert.strictEqual(res.body.length, 2);
|
||||
});
|
||||
test('名前と説明での検索で説明を複数検索できる', async () => {
|
||||
const res = await api('/channels/search', {
|
||||
const res = await api('channels/search', {
|
||||
query: 'ddd',
|
||||
}, bob);
|
||||
|
||||
|
@ -508,7 +512,7 @@ describe('Endpoints', () => {
|
|||
await uploadFile(alice, {
|
||||
blob: new Blob([new Uint8Array(1024)]),
|
||||
});
|
||||
const res = await api('/drive', {}, alice);
|
||||
const res = await api('drive', {}, alice);
|
||||
assert.strictEqual(res.status, 200);
|
||||
assert.strictEqual(typeof res.body === 'object' && !Array.isArray(res.body), true);
|
||||
expect(res.body).toHaveProperty('usage', 1792);
|
||||
|
@ -521,7 +525,7 @@ describe('Endpoints', () => {
|
|||
|
||||
assert.strictEqual(res.status, 200);
|
||||
assert.strictEqual(typeof res.body === 'object' && !Array.isArray(res.body), true);
|
||||
assert.strictEqual(res.body.name, 'Lenna.jpg');
|
||||
assert.strictEqual(res.body!.name, 'Lenna.jpg');
|
||||
});
|
||||
|
||||
test('ファイルに名前を付けられる', async () => {
|
||||
|
@ -529,7 +533,7 @@ describe('Endpoints', () => {
|
|||
|
||||
assert.strictEqual(res.status, 200);
|
||||
assert.strictEqual(typeof res.body === 'object' && !Array.isArray(res.body), true);
|
||||
assert.strictEqual(res.body.name, 'Belmond.jpg');
|
||||
assert.strictEqual(res.body!.name, 'Belmond.jpg');
|
||||
});
|
||||
|
||||
test('ファイルに名前を付けられるが、拡張子は正しいものになる', async () => {
|
||||
|
@ -537,11 +541,12 @@ describe('Endpoints', () => {
|
|||
|
||||
assert.strictEqual(res.status, 200);
|
||||
assert.strictEqual(typeof res.body === 'object' && !Array.isArray(res.body), true);
|
||||
assert.strictEqual(res.body.name, 'Belmond.png.jpg');
|
||||
assert.strictEqual(res.body!.name, 'Belmond.png.jpg');
|
||||
});
|
||||
|
||||
test('ファイル無しで怒られる', async () => {
|
||||
const res = await api('/drive/files/create', {}, alice);
|
||||
// @ts-expect-error params must not be empty
|
||||
const res = await api('drive/files/create', {}, alice);
|
||||
|
||||
assert.strictEqual(res.status, 400);
|
||||
});
|
||||
|
@ -551,14 +556,14 @@ describe('Endpoints', () => {
|
|||
|
||||
assert.strictEqual(res.status, 200);
|
||||
assert.strictEqual(typeof res.body === 'object' && !Array.isArray(res.body), true);
|
||||
assert.strictEqual(res.body.name, 'image.svg');
|
||||
assert.strictEqual(res.body.type, 'image/svg+xml');
|
||||
assert.strictEqual(res.body!.name, 'image.svg');
|
||||
assert.strictEqual(res.body!.type, 'image/svg+xml');
|
||||
});
|
||||
|
||||
for (const type of ['webp', 'avif']) {
|
||||
const mediaType = `image/${type}`;
|
||||
|
||||
const getWebpublicType = async (user: any, fileId: string): Promise<string> => {
|
||||
const getWebpublicType = async (user: misskey.entities.SignupResponse, fileId: string): Promise<string> => {
|
||||
// drive/files/create does not expose webpublicType directly, so get it by posting it
|
||||
const res = await post(user, {
|
||||
text: mediaType,
|
||||
|
@ -575,10 +580,10 @@ describe('Endpoints', () => {
|
|||
const res = await uploadFile(alice, { path });
|
||||
|
||||
assert.strictEqual(res.status, 200);
|
||||
assert.strictEqual(res.body.name, path);
|
||||
assert.strictEqual(res.body.type, mediaType);
|
||||
assert.strictEqual(res.body!.name, path);
|
||||
assert.strictEqual(res.body!.type, mediaType);
|
||||
|
||||
const webpublicType = await getWebpublicType(alice, res.body.id);
|
||||
const webpublicType = await getWebpublicType(alice, res.body!.id);
|
||||
assert.strictEqual(webpublicType, 'image/webp');
|
||||
});
|
||||
|
||||
|
@ -586,10 +591,10 @@ describe('Endpoints', () => {
|
|||
const path = `without-alpha.${type}`;
|
||||
const res = await uploadFile(alice, { path });
|
||||
assert.strictEqual(res.status, 200);
|
||||
assert.strictEqual(res.body.name, path);
|
||||
assert.strictEqual(res.body.type, mediaType);
|
||||
assert.strictEqual(res.body!.name, path);
|
||||
assert.strictEqual(res.body!.type, mediaType);
|
||||
|
||||
const webpublicType = await getWebpublicType(alice, res.body.id);
|
||||
const webpublicType = await getWebpublicType(alice, res.body!.id);
|
||||
assert.strictEqual(webpublicType, 'image/webp');
|
||||
});
|
||||
}
|
||||
|
@ -600,8 +605,8 @@ describe('Endpoints', () => {
|
|||
const file = (await uploadFile(alice)).body;
|
||||
const newName = 'いちごパスタ.png';
|
||||
|
||||
const res = await api('/drive/files/update', {
|
||||
fileId: file.id,
|
||||
const res = await api('drive/files/update', {
|
||||
fileId: file!.id,
|
||||
name: newName,
|
||||
}, alice);
|
||||
|
||||
|
@ -613,8 +618,8 @@ describe('Endpoints', () => {
|
|||
test('他人のファイルは更新できない', async () => {
|
||||
const file = (await uploadFile(alice)).body;
|
||||
|
||||
const res = await api('/drive/files/update', {
|
||||
fileId: file.id,
|
||||
const res = await api('drive/files/update', {
|
||||
fileId: file!.id,
|
||||
name: 'いちごパスタ.png',
|
||||
}, bob);
|
||||
|
||||
|
@ -623,12 +628,12 @@ describe('Endpoints', () => {
|
|||
|
||||
test('親フォルダを更新できる', async () => {
|
||||
const file = (await uploadFile(alice)).body;
|
||||
const folder = (await api('/drive/folders/create', {
|
||||
const folder = (await api('drive/folders/create', {
|
||||
name: 'test',
|
||||
}, alice)).body;
|
||||
|
||||
const res = await api('/drive/files/update', {
|
||||
fileId: file.id,
|
||||
const res = await api('drive/files/update', {
|
||||
fileId: file!.id,
|
||||
folderId: folder.id,
|
||||
}, alice);
|
||||
|
||||
|
@ -640,17 +645,17 @@ describe('Endpoints', () => {
|
|||
test('親フォルダを無しにできる', async () => {
|
||||
const file = (await uploadFile(alice)).body;
|
||||
|
||||
const folder = (await api('/drive/folders/create', {
|
||||
const folder = (await api('drive/folders/create', {
|
||||
name: 'test',
|
||||
}, alice)).body;
|
||||
|
||||
await api('/drive/files/update', {
|
||||
fileId: file.id,
|
||||
await api('drive/files/update', {
|
||||
fileId: file!.id,
|
||||
folderId: folder.id,
|
||||
}, alice);
|
||||
|
||||
const res = await api('/drive/files/update', {
|
||||
fileId: file.id,
|
||||
const res = await api('drive/files/update', {
|
||||
fileId: file!.id,
|
||||
folderId: null,
|
||||
}, alice);
|
||||
|
||||
|
@ -661,12 +666,12 @@ describe('Endpoints', () => {
|
|||
|
||||
test('他人のフォルダには入れられない', async () => {
|
||||
const file = (await uploadFile(alice)).body;
|
||||
const folder = (await api('/drive/folders/create', {
|
||||
const folder = (await api('drive/folders/create', {
|
||||
name: 'test',
|
||||
}, bob)).body;
|
||||
|
||||
const res = await api('/drive/files/update', {
|
||||
fileId: file.id,
|
||||
const res = await api('drive/files/update', {
|
||||
fileId: file!.id,
|
||||
folderId: folder.id,
|
||||
}, alice);
|
||||
|
||||
|
@ -676,8 +681,8 @@ describe('Endpoints', () => {
|
|||
test('存在しないフォルダで怒られる', async () => {
|
||||
const file = (await uploadFile(alice)).body;
|
||||
|
||||
const res = await api('/drive/files/update', {
|
||||
fileId: file.id,
|
||||
const res = await api('drive/files/update', {
|
||||
fileId: file!.id,
|
||||
folderId: '000000000000000000000000',
|
||||
}, alice);
|
||||
|
||||
|
@ -687,8 +692,8 @@ describe('Endpoints', () => {
|
|||
test('不正なフォルダIDで怒られる', async () => {
|
||||
const file = (await uploadFile(alice)).body;
|
||||
|
||||
const res = await api('/drive/files/update', {
|
||||
fileId: file.id,
|
||||
const res = await api('drive/files/update', {
|
||||
fileId: file!.id,
|
||||
folderId: 'foo',
|
||||
}, alice);
|
||||
|
||||
|
@ -696,7 +701,7 @@ describe('Endpoints', () => {
|
|||
});
|
||||
|
||||
test('ファイルが存在しなかったら怒る', async () => {
|
||||
const res = await api('/drive/files/update', {
|
||||
const res = await api('drive/files/update', {
|
||||
fileId: '000000000000000000000000',
|
||||
name: 'いちごパスタ.png',
|
||||
}, alice);
|
||||
|
@ -708,8 +713,8 @@ describe('Endpoints', () => {
|
|||
const file = (await uploadFile(alice)).body;
|
||||
const newName = '';
|
||||
|
||||
const res = await api('/drive/files/update', {
|
||||
fileId: file.id,
|
||||
const res = await api('drive/files/update', {
|
||||
fileId: file!.id,
|
||||
name: newName,
|
||||
}, alice);
|
||||
|
||||
|
@ -717,7 +722,7 @@ describe('Endpoints', () => {
|
|||
});
|
||||
|
||||
test('間違ったIDで怒られる', async () => {
|
||||
const res = await api('/drive/files/update', {
|
||||
const res = await api('drive/files/update', {
|
||||
fileId: 'kyoppie',
|
||||
name: 'いちごパスタ.png',
|
||||
}, alice);
|
||||
|
@ -728,7 +733,7 @@ describe('Endpoints', () => {
|
|||
|
||||
describe('drive/folders/create', () => {
|
||||
test('フォルダを作成できる', async () => {
|
||||
const res = await api('/drive/folders/create', {
|
||||
const res = await api('drive/folders/create', {
|
||||
name: 'test',
|
||||
}, alice);
|
||||
|
||||
|
@ -740,11 +745,11 @@ describe('Endpoints', () => {
|
|||
|
||||
describe('drive/folders/update', () => {
|
||||
test('名前を更新できる', async () => {
|
||||
const folder = (await api('/drive/folders/create', {
|
||||
const folder = (await api('drive/folders/create', {
|
||||
name: 'test',
|
||||
}, alice)).body;
|
||||
|
||||
const res = await api('/drive/folders/update', {
|
||||
const res = await api('drive/folders/update', {
|
||||
folderId: folder.id,
|
||||
name: 'new name',
|
||||
}, alice);
|
||||
|
@ -755,11 +760,11 @@ describe('Endpoints', () => {
|
|||
});
|
||||
|
||||
test('他人のフォルダを更新できない', async () => {
|
||||
const folder = (await api('/drive/folders/create', {
|
||||
const folder = (await api('drive/folders/create', {
|
||||
name: 'test',
|
||||
}, bob)).body;
|
||||
|
||||
const res = await api('/drive/folders/update', {
|
||||
const res = await api('drive/folders/update', {
|
||||
folderId: folder.id,
|
||||
name: 'new name',
|
||||
}, alice);
|
||||
|
@ -768,14 +773,14 @@ describe('Endpoints', () => {
|
|||
});
|
||||
|
||||
test('親フォルダを更新できる', async () => {
|
||||
const folder = (await api('/drive/folders/create', {
|
||||
const folder = (await api('drive/folders/create', {
|
||||
name: 'test',
|
||||
}, alice)).body;
|
||||
const parentFolder = (await api('/drive/folders/create', {
|
||||
const parentFolder = (await api('drive/folders/create', {
|
||||
name: 'parent',
|
||||
}, alice)).body;
|
||||
|
||||
const res = await api('/drive/folders/update', {
|
||||
const res = await api('drive/folders/update', {
|
||||
folderId: folder.id,
|
||||
parentId: parentFolder.id,
|
||||
}, alice);
|
||||
|
@ -786,18 +791,18 @@ describe('Endpoints', () => {
|
|||
});
|
||||
|
||||
test('親フォルダを無しに更新できる', async () => {
|
||||
const folder = (await api('/drive/folders/create', {
|
||||
const folder = (await api('drive/folders/create', {
|
||||
name: 'test',
|
||||
}, alice)).body;
|
||||
const parentFolder = (await api('/drive/folders/create', {
|
||||
const parentFolder = (await api('drive/folders/create', {
|
||||
name: 'parent',
|
||||
}, alice)).body;
|
||||
await api('/drive/folders/update', {
|
||||
await api('drive/folders/update', {
|
||||
folderId: folder.id,
|
||||
parentId: parentFolder.id,
|
||||
}, alice);
|
||||
|
||||
const res = await api('/drive/folders/update', {
|
||||
const res = await api('drive/folders/update', {
|
||||
folderId: folder.id,
|
||||
parentId: null,
|
||||
}, alice);
|
||||
|
@ -808,14 +813,14 @@ describe('Endpoints', () => {
|
|||
});
|
||||
|
||||
test('他人のフォルダを親フォルダに設定できない', async () => {
|
||||
const folder = (await api('/drive/folders/create', {
|
||||
const folder = (await api('drive/folders/create', {
|
||||
name: 'test',
|
||||
}, alice)).body;
|
||||
const parentFolder = (await api('/drive/folders/create', {
|
||||
const parentFolder = (await api('drive/folders/create', {
|
||||
name: 'parent',
|
||||
}, bob)).body;
|
||||
|
||||
const res = await api('/drive/folders/update', {
|
||||
const res = await api('drive/folders/update', {
|
||||
folderId: folder.id,
|
||||
parentId: parentFolder.id,
|
||||
}, alice);
|
||||
|
@ -824,18 +829,18 @@ describe('Endpoints', () => {
|
|||
});
|
||||
|
||||
test('フォルダが循環するような構造にできない', async () => {
|
||||
const folder = (await api('/drive/folders/create', {
|
||||
const folder = (await api('drive/folders/create', {
|
||||
name: 'test',
|
||||
}, alice)).body;
|
||||
const parentFolder = (await api('/drive/folders/create', {
|
||||
const parentFolder = (await api('drive/folders/create', {
|
||||
name: 'parent',
|
||||
}, alice)).body;
|
||||
await api('/drive/folders/update', {
|
||||
await api('drive/folders/update', {
|
||||
folderId: parentFolder.id,
|
||||
parentId: folder.id,
|
||||
}, alice);
|
||||
|
||||
const res = await api('/drive/folders/update', {
|
||||
const res = await api('drive/folders/update', {
|
||||
folderId: folder.id,
|
||||
parentId: parentFolder.id,
|
||||
}, alice);
|
||||
|
@ -844,25 +849,25 @@ describe('Endpoints', () => {
|
|||
});
|
||||
|
||||
test('フォルダが循環するような構造にできない(再帰的)', async () => {
|
||||
const folderA = (await api('/drive/folders/create', {
|
||||
const folderA = (await api('drive/folders/create', {
|
||||
name: 'test',
|
||||
}, alice)).body;
|
||||
const folderB = (await api('/drive/folders/create', {
|
||||
const folderB = (await api('drive/folders/create', {
|
||||
name: 'test',
|
||||
}, alice)).body;
|
||||
const folderC = (await api('/drive/folders/create', {
|
||||
const folderC = (await api('drive/folders/create', {
|
||||
name: 'test',
|
||||
}, alice)).body;
|
||||
await api('/drive/folders/update', {
|
||||
await api('drive/folders/update', {
|
||||
folderId: folderB.id,
|
||||
parentId: folderA.id,
|
||||
}, alice);
|
||||
await api('/drive/folders/update', {
|
||||
await api('drive/folders/update', {
|
||||
folderId: folderC.id,
|
||||
parentId: folderB.id,
|
||||
}, alice);
|
||||
|
||||
const res = await api('/drive/folders/update', {
|
||||
const res = await api('drive/folders/update', {
|
||||
folderId: folderA.id,
|
||||
parentId: folderC.id,
|
||||
}, alice);
|
||||
|
@ -871,11 +876,11 @@ describe('Endpoints', () => {
|
|||
});
|
||||
|
||||
test('フォルダが循環するような構造にできない(自身)', async () => {
|
||||
const folderA = (await api('/drive/folders/create', {
|
||||
const folderA = (await api('drive/folders/create', {
|
||||
name: 'test',
|
||||
}, alice)).body;
|
||||
|
||||
const res = await api('/drive/folders/update', {
|
||||
const res = await api('drive/folders/update', {
|
||||
folderId: folderA.id,
|
||||
parentId: folderA.id,
|
||||
}, alice);
|
||||
|
@ -884,11 +889,11 @@ describe('Endpoints', () => {
|
|||
});
|
||||
|
||||
test('存在しない親フォルダを設定できない', async () => {
|
||||
const folder = (await api('/drive/folders/create', {
|
||||
const folder = (await api('drive/folders/create', {
|
||||
name: 'test',
|
||||
}, alice)).body;
|
||||
|
||||
const res = await api('/drive/folders/update', {
|
||||
const res = await api('drive/folders/update', {
|
||||
folderId: folder.id,
|
||||
parentId: '000000000000000000000000',
|
||||
}, alice);
|
||||
|
@ -897,11 +902,11 @@ describe('Endpoints', () => {
|
|||
});
|
||||
|
||||
test('不正な親フォルダIDで怒られる', async () => {
|
||||
const folder = (await api('/drive/folders/create', {
|
||||
const folder = (await api('drive/folders/create', {
|
||||
name: 'test',
|
||||
}, alice)).body;
|
||||
|
||||
const res = await api('/drive/folders/update', {
|
||||
const res = await api('drive/folders/update', {
|
||||
folderId: folder.id,
|
||||
parentId: 'foo',
|
||||
}, alice);
|
||||
|
@ -910,7 +915,7 @@ describe('Endpoints', () => {
|
|||
});
|
||||
|
||||
test('存在しないフォルダを更新できない', async () => {
|
||||
const res = await api('/drive/folders/update', {
|
||||
const res = await api('drive/folders/update', {
|
||||
folderId: '000000000000000000000000',
|
||||
}, alice);
|
||||
|
||||
|
@ -918,7 +923,7 @@ describe('Endpoints', () => {
|
|||
});
|
||||
|
||||
test('不正なフォルダIDで怒られる', async () => {
|
||||
const res = await api('/drive/folders/update', {
|
||||
const res = await api('drive/folders/update', {
|
||||
folderId: 'foo',
|
||||
}, alice);
|
||||
|
||||
|
@ -939,7 +944,7 @@ describe('Endpoints', () => {
|
|||
visibleUserIds: [alice.id],
|
||||
});
|
||||
|
||||
const res = await api('/notes/replies', {
|
||||
const res = await api('notes/replies', {
|
||||
noteId: alicePost.id,
|
||||
}, carol);
|
||||
|
||||
|
@ -951,7 +956,7 @@ describe('Endpoints', () => {
|
|||
|
||||
describe('notes/timeline', () => {
|
||||
test('フォロワー限定投稿が含まれる', async () => {
|
||||
await api('/following/create', {
|
||||
await api('following/create', {
|
||||
userId: carol.id,
|
||||
}, dave);
|
||||
|
||||
|
@ -960,7 +965,7 @@ describe('Endpoints', () => {
|
|||
visibility: 'followers',
|
||||
});
|
||||
|
||||
const res = await api('/notes/timeline', {}, dave);
|
||||
const res = await api('notes/timeline', {}, dave);
|
||||
|
||||
assert.strictEqual(res.status, 200);
|
||||
assert.strictEqual(Array.isArray(res.body), true);
|
||||
|
@ -981,12 +986,12 @@ describe('Endpoints', () => {
|
|||
test('他者に関するメモを更新できる', async () => {
|
||||
const memo = '10月まで低浮上とのこと。';
|
||||
|
||||
const res1 = await api('/users/update-memo', {
|
||||
const res1 = await api('users/update-memo', {
|
||||
memo,
|
||||
userId: bob.id,
|
||||
}, alice);
|
||||
|
||||
const res2 = await api('/users/show', {
|
||||
const res2 = await api('users/show', {
|
||||
userId: bob.id,
|
||||
}, alice);
|
||||
assert.strictEqual(res1.status, 204);
|
||||
|
@ -996,12 +1001,12 @@ describe('Endpoints', () => {
|
|||
test('自分に関するメモを更新できる', async () => {
|
||||
const memo = 'チケットを月末までに買う。';
|
||||
|
||||
const res1 = await api('/users/update-memo', {
|
||||
const res1 = await api('users/update-memo', {
|
||||
memo,
|
||||
userId: alice.id,
|
||||
}, alice);
|
||||
|
||||
const res2 = await api('/users/show', {
|
||||
const res2 = await api('users/show', {
|
||||
userId: alice.id,
|
||||
}, alice);
|
||||
assert.strictEqual(res1.status, 204);
|
||||
|
@ -1011,17 +1016,17 @@ describe('Endpoints', () => {
|
|||
test('メモを削除できる', async () => {
|
||||
const memo = '10月まで低浮上とのこと。';
|
||||
|
||||
await api('/users/update-memo', {
|
||||
await api('users/update-memo', {
|
||||
memo,
|
||||
userId: bob.id,
|
||||
}, alice);
|
||||
|
||||
await api('/users/update-memo', {
|
||||
await api('users/update-memo', {
|
||||
memo: '',
|
||||
userId: bob.id,
|
||||
}, alice);
|
||||
|
||||
const res = await api('/users/show', {
|
||||
const res = await api('users/show', {
|
||||
userId: bob.id,
|
||||
}, alice);
|
||||
|
||||
|
@ -1034,21 +1039,21 @@ describe('Endpoints', () => {
|
|||
const memoCarolToBob = '例の件について今度問いただす。';
|
||||
|
||||
await Promise.all([
|
||||
api('/users/update-memo', {
|
||||
api('users/update-memo', {
|
||||
memo: memoAliceToBob,
|
||||
userId: bob.id,
|
||||
}, alice),
|
||||
api('/users/update-memo', {
|
||||
api('users/update-memo', {
|
||||
memo: memoCarolToBob,
|
||||
userId: bob.id,
|
||||
}, carol),
|
||||
]);
|
||||
|
||||
const [resAlice, resCarol] = await Promise.all([
|
||||
api('/users/show', {
|
||||
api('users/show', {
|
||||
userId: bob.id,
|
||||
}, alice),
|
||||
api('/users/show', {
|
||||
api('users/show', {
|
||||
userId: bob.id,
|
||||
}, carol),
|
||||
]);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue