diff options
| author | syuilo <syuilotan@yahoo.co.jp> | 2017-02-12 20:23:30 +0900 |
|---|---|---|
| committer | syuilo <syuilotan@yahoo.co.jp> | 2017-02-12 20:23:30 +0900 |
| commit | 174cd3e97c6721fdb2ed5776cd6a96af275e2160 (patch) | |
| tree | b71538eacafe94ec345a2d4470102fb4c4220db8 | |
| parent | [Test] Add some drive tests (diff) | |
| download | misskey-174cd3e97c6721fdb2ed5776cd6a96af275e2160.tar.gz misskey-174cd3e97c6721fdb2ed5776cd6a96af275e2160.tar.bz2 misskey-174cd3e97c6721fdb2ed5776cd6a96af275e2160.zip | |
[Test] Add some drive tests
| -rw-r--r-- | test/api.js | 114 |
1 files changed, 114 insertions, 0 deletions
diff --git a/test/api.js b/test/api.js index 678d4ff5c8..70a38e71c6 100644 --- a/test/api.js +++ b/test/api.js @@ -816,6 +816,114 @@ describe('API', () => { }); })); }); + + describe('drive/folders/update', () => { + it('ドライブのフォルダの名前を更新できる', () => new Promise(async (done) => { + const me = await insertSakurako(); + const folder = await insertDriveFolder(); + request('/drive/folders/update', { + folder_id: folder._id.toString(), + name: 'new name' + }, me).then(res => { + res.should.have.status(200); + res.body.should.be.a('object'); + res.body.should.have.property('name').eql('new name'); + done(); + }); + })); + + it('ドライブのフォルダの親フォルダを更新できる', () => new Promise(async (done) => { + const me = await insertSakurako(); + const folder = await insertDriveFolder(); + const parentFolder = await insertDriveFolder(); + request('/drive/folders/update', { + folder_id: folder._id.toString(), + parent_id: parentFolder._id.toString() + }, me).then(res => { + res.should.have.status(200); + res.body.should.be.a('object'); + res.body.should.have.property('parent_id').eql(parentFolder._id.toString()); + done(); + }); + })); + + it('ドライブのフォルダが循環するような構造にできない', () => new Promise(async (done) => { + const me = await insertSakurako(); + const folder = await insertDriveFolder(); + const parentFolder = await insertDriveFolder({ + parent_id: folder._id + }); + request('/drive/folders/update', { + folder_id: folder._id.toString(), + parent_id: parentFolder._id.toString() + }, me).then(res => { + res.should.have.status(400); + done(); + }); + })); + + it('ドライブのフォルダが循環するような構造にできない(再帰的)', () => new Promise(async (done) => { + const me = await insertSakurako(); + const folderA = await insertDriveFolder(); + const folderB = await insertDriveFolder({ + parent_id: folderA._id + }); + const folderC = await insertDriveFolder({ + parent_id: folderB._id + }); + request('/drive/folders/update', { + folder_id: folderA._id.toString(), + parent_id: folderC._id.toString() + }, me).then(res => { + res.should.have.status(400); + done(); + }); + })); + + it('存在しない親フォルダを設定できない', () => new Promise(async (done) => { + const me = await insertSakurako(); + const folder = await insertDriveFolder(); + request('/drive/folders/update', { + folder_id: folder._id.toString(), + parent_id: '000000000000000000000000' + }, me).then(res => { + res.should.have.status(400); + done(); + }); + })); + + it('不正な親フォルダIDで怒られる', () => new Promise(async (done) => { + const me = await insertSakurako(); + const folder = await insertDriveFolder(); + request('/drive/folders/update', { + folder_id: folder._id.toString(), + parent_id: 'kyoppie' + }, me).then(res => { + res.should.have.status(400); + done(); + }); + })); + + it('存在しないフォルダを更新できない', () => new Promise(async (done) => { + const me = await insertSakurako(); + request('/drive/folders/update', { + folder_id: '000000000000000000000000' + }, me).then(res => { + res.should.have.status(400); + done(); + }); + })); + + it('不正なフォルダIDで怒られる', () => new Promise(async (done) => { + const me = await insertSakurako(); + request('/drive/folders/update', { + folder_id: 'kyoppie' + }, me).then(res => { + res.should.have.status(400); + done(); + }); + })); + }); }); async function insertSakurako(opts) { @@ -841,3 +949,9 @@ async function insertDriveFile(opts) { name: 'strawberry-pasta.png' }, opts)); } + +async function insertDriveFolder(opts) { + return await db.get('drive_folders').insert(Object.assign({ + name: 'my folder' + }), opts); +} |