parent
4fca80400b
commit
0a7d696a37
2 changed files with 17 additions and 1 deletions
|
@ -83,7 +83,9 @@ export default define(meta, async (ps, user) => {
|
|||
if (ps.name) folder.name = ps.name;
|
||||
|
||||
if (ps.parentId !== undefined) {
|
||||
if (ps.parentId === null) {
|
||||
if (ps.parentId.equals(folder._id)) {
|
||||
throw new ApiError(meta.errors.recursiveNesting);
|
||||
} else if (ps.parentId === null) {
|
||||
folder.parentId = null;
|
||||
} else {
|
||||
// Get parent folder
|
||||
|
|
14
test/api.ts
14
test/api.ts
|
@ -1141,6 +1141,20 @@ describe('API', () => {
|
|||
expect(res).have.status(400);
|
||||
}));
|
||||
|
||||
it('フォルダが循環するような構造にできない(自身)', async(async () => {
|
||||
const arisugawa = await signup({ username: 'arisugawa' });
|
||||
const folderA = (await request('/drive/folders/create', {
|
||||
name: 'test'
|
||||
}, arisugawa)).body;
|
||||
|
||||
const res = await request('/drive/folders/update', {
|
||||
folderId: folderA.id,
|
||||
parentId: folderA.id
|
||||
}, arisugawa);
|
||||
|
||||
expect(res).have.status(400);
|
||||
}));
|
||||
|
||||
it('存在しない親フォルダを設定できない', async(async () => {
|
||||
const alice = await signup({ username: 'alice' });
|
||||
const folder = (await request('/drive/folders/create', {
|
||||
|
|
Loading…
Reference in a new issue