Allow setting CT's config from the CTB services

This commit is contained in:
Convly 2022-05-10 06:58:25 +02:00
parent 132def5d57
commit b11623d365
5 changed files with 22 additions and 2 deletions

View File

@ -1,5 +1,7 @@
'use strict';
const { omit } = require('lodash/fp');
const { createStrapiInstance } = require('../../../../../../test/helpers/strapi');
const { createTestBuilder } = require('../../../../../../test/helpers/builder');
const { createAuthRequest } = require('../../../../../../test/helpers/request');
@ -22,6 +24,16 @@ const product = {
minLength: 4,
maxLength: 30,
},
hiddenAttribute: {
type: 'string',
},
},
config: {
attributes: {
hiddenAttribute: {
hidden: true,
},
},
},
displayName: 'Product',
singularName: 'product',
@ -47,6 +59,7 @@ describe('CM API - Basic', () => {
const product = {
name: 'Product 1',
description: 'Product description',
hiddenAttribute: 'Secret value',
};
const res = await rq({
method: 'POST',
@ -55,7 +68,8 @@ describe('CM API - Basic', () => {
});
expect(res.statusCode).toBe(200);
expect(res.body).toMatchObject(product);
expect(res.body).toMatchObject(omit('hiddenAttribute', product));
expect(res.body).not.toHaveProperty('hiddenAttribute');
expect(res.body.publishedAt).toBeUndefined();
data.products.push(res.body);
});
@ -84,6 +98,7 @@ describe('CM API - Basic', () => {
const product = {
name: 'Product 1 updated',
description: 'Updated Product description',
hiddenAttribute: 'Secret value',
};
const res = await rq({
method: 'PUT',
@ -92,7 +107,7 @@ describe('CM API - Basic', () => {
});
expect(res.statusCode).toBe(200);
expect(res.body).toMatchObject(product);
expect(res.body).toMatchObject(omit('hiddenAttribute', product));
expect(res.body.id).toEqual(data.products[0].id);
expect(res.body.publishedAt).toBeUndefined();
data.products[0] = res.body;

View File

@ -54,6 +54,7 @@ module.exports = function createComponentBuilder() {
.set(['info', 'icon'], infos.icon)
.set(['info', 'description'], infos.description)
.set('pluginOptions', infos.pluginOptions)
.set('config', infos.config)
.setAttributes(this.convertAttributes(infos.attributes));
if (this.components.size === 0) {

View File

@ -105,6 +105,7 @@ module.exports = function createComponentBuilder() {
})
.set('options', { draftAndPublish: infos.draftAndPublish || false })
.set('pluginOptions', infos.pluginOptions)
.set('config', infos.config)
.setAttributes(this.convertAttributes(infos.attributes));
Object.keys(infos.attributes).forEach(key => {

View File

@ -25,6 +25,7 @@ module.exports = function createBuilder() {
filename: compo.__filename__,
dir: join(strapi.dirs.components, compo.category),
schema: compo.__schema__,
config: compo.config,
};
});
@ -47,6 +48,7 @@ module.exports = function createBuilder() {
filename: 'schema.json',
dir,
schema: contentType.__schema__,
config: contentType.config,
};
});

View File

@ -231,6 +231,7 @@ module.exports = function createSchemaHandler(infos) {
options: state.schema.options,
pluginOptions: state.schema.pluginOptions,
attributes: state.schema.attributes,
config: state.schema.config,
},
{ spaces: 2 }
);