strapi/packages/core/upload/tests/admin/folder-structure.test.api.js

92 lines
2.4 KiB
JavaScript
Raw Normal View History

'use strict';
const { createTestBuilder } = require('../../../../../test/helpers/builder');
const { createStrapiInstance } = require('../../../../../test/helpers/strapi');
const { createAuthRequest } = require('../../../../../test/helpers/request');
let strapi;
let rq;
2022-08-08 15:50:34 +02:00
const data = {
folders: [],
};
const createFolder = async (name, parent = null) => {
const res = await rq({
method: 'POST',
url: '/upload/folders',
body: { name, parent },
});
return res.body.data;
};
describe('Folder structure', () => {
const builder = createTestBuilder();
beforeAll(async () => {
strapi = await createStrapiInstance();
rq = await createAuthRequest({ strapi });
2022-05-05 18:55:00 +02:00
// delete all possibly existing folders
const res = await rq({
method: 'GET',
2022-05-19 14:47:23 +02:00
url: '/upload/folders',
2022-05-05 18:55:00 +02:00
});
await rq({
method: 'POST',
url: '/upload/actions/bulk-delete',
body: {
2022-08-08 23:33:39 +02:00
folderIds: res.body.data.map((f) => f.id),
2022-05-05 18:55:00 +02:00
},
});
const rootFolder1 = await createFolder('folder1');
const rootFolder2 = await createFolder('folder2');
const nestedFolder1a = await createFolder('folder1A', rootFolder1.id);
const nestedFolder1b = await createFolder('folder1B', rootFolder1.id);
const nestedFolder1a1 = await createFolder('folder1A1', nestedFolder1a.id);
data.folders.push(rootFolder1, rootFolder2, nestedFolder1a, nestedFolder1b, nestedFolder1a1);
});
afterAll(async () => {
await rq({
method: 'POST',
2022-04-26 11:23:07 +02:00
url: '/upload/actions/bulk-delete',
body: {
2022-08-08 23:33:39 +02:00
folderIds: data.folders.map((f) => f.id),
},
});
await strapi.destroy();
await builder.cleanup();
});
describe('Read', () => {
test('get structure', async () => {
const res = await rq({
method: 'GET',
url: '/upload/folder-structure',
});
expect(res.statusCode).toBe(200);
expect(res.body).toMatchObject({
data: [
{
children: [
{
children: [{ children: [], id: expect.anything(), name: 'folder1A1' }],
id: expect.anything(),
name: 'folder1A',
},
{ children: [], id: expect.anything(), name: 'folder1B' },
],
id: expect.anything(),
name: 'folder1',
},
{ children: [], id: expect.anything(), name: 'folder2' },
],
});
});
});
});