Merge pull request #12609 from strapi/CONTENT-10/e2e-tests

CM: Add e2e tests for layout updates
This commit is contained in:
Gustav Hansen 2022-02-23 14:31:21 +01:00 committed by GitHub
commit fb9cbc1a23
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -0,0 +1,244 @@
'use strict';
const merge = require('lodash/merge');
// Helpers.
const { createTestBuilder } = require('../../../../../../test/helpers/builder');
const { createStrapiInstance } = require('../../../../../../test/helpers/strapi');
const form = require('../../../../../../test/helpers/generators');
const { createAuthRequest } = require('../../../../../../test/helpers/request');
const builder = createTestBuilder();
let strapi;
let rq;
const restart = async () => {
await strapi.destroy();
strapi = await createStrapiInstance();
rq = await createAuthRequest({ strapi });
};
const FIXTURE_DEFAULT_LAYOUT = [
[
{
name: 'title',
size: 6,
},
{
name: 'date',
size: 4,
},
],
[
{
name: 'jsonField',
size: 12,
},
],
[
{
name: 'content',
size: 12,
},
],
];
describe('Content Manager - Update Layout', () => {
beforeAll(async () => {
await builder.addContentTypes([form.article]).build();
strapi = await createStrapiInstance();
rq = await createAuthRequest({ strapi });
});
afterAll(async () => {
await strapi.destroy();
await builder.cleanup();
});
test('Fetch default layout', async () => {
const { body } = await rq({
url: '/content-manager/content-types/api::article.article/configuration',
method: 'GET',
});
expect(body.data.contentType.layouts.edit).toStrictEqual(FIXTURE_DEFAULT_LAYOUT);
});
test('Update field size', async () => {
const transformation = [
[
{
name: 'title',
size: 8,
},
{
name: 'date',
size: 4,
},
],
];
const payload = merge([], FIXTURE_DEFAULT_LAYOUT, transformation);
await rq({
url: '/content-manager/content-types/api::article.article/configuration',
method: 'PUT',
body: {
layouts: {
edit: payload,
editRelations: [],
list: [],
},
},
});
const { body } = await rq({
url: '/content-manager/content-types/api::article.article/configuration',
method: 'GET',
});
const expectation = merge([], FIXTURE_DEFAULT_LAYOUT, transformation);
expect(body.data.contentType.layouts.edit).toStrictEqual(expectation);
});
test('Update field size with server restart and invalid JSON size', async () => {
const transformation = [
[
{
name: 'title',
size: 8,
},
{
name: 'date',
size: 4,
},
],
[
{
name: 'jsonField',
size: 6,
},
],
];
const payload = merge([], FIXTURE_DEFAULT_LAYOUT, transformation);
await rq({
url: '/content-manager/content-types/api::article.article/configuration',
method: 'PUT',
body: {
layouts: {
edit: payload,
editRelations: [],
list: [],
},
},
});
await restart();
const { body } = await rq({
url: '/content-manager/content-types/api::article.article/configuration',
method: 'GET',
});
const expectation = [
[
{
name: 'title',
size: 8,
},
{
name: 'date',
size: 4,
},
],
[
{
name: 'content',
size: 12,
},
],
[
{
name: 'jsonField',
size: 12,
},
],
];
expect(body.data.contentType.layouts.edit).toStrictEqual(expectation);
});
test('Update field size with server restart and invalid date size', async () => {
const transformation = [
[
{
name: 'title',
size: 12,
},
{
name: 'date',
size: 14,
},
],
];
const payload = merge([], FIXTURE_DEFAULT_LAYOUT, transformation);
await rq({
url: '/content-manager/content-types/api::article.article/configuration',
method: 'PUT',
body: {
layouts: {
edit: payload,
editRelations: [],
list: [],
},
},
});
await restart();
const { body } = await rq({
url: '/content-manager/content-types/api::article.article/configuration',
method: 'GET',
});
const expectation = [
[
{
name: 'title',
size: 12,
},
],
[
{
name: 'jsonField',
size: 12,
},
],
[
{
name: 'content',
size: 12,
},
],
[
{
name: 'date',
size: 4,
},
],
];
expect(body.data.contentType.layouts.edit).toStrictEqual(expectation);
});
});