From b11623d365b66583e9050c4710ed08baa1f23eb1 Mon Sep 17 00:00:00 2001 From: Convly Date: Tue, 10 May 2022 06:58:25 +0200 Subject: [PATCH] Allow setting CT's config from the CTB services --- .../server/tests/api/basic.test.e2e.js | 19 +++++++++++++++++-- .../schema-builder/component-builder.js | 1 + .../schema-builder/content-type-builder.js | 1 + .../server/services/schema-builder/index.js | 2 ++ .../services/schema-builder/schema-handler.js | 1 + 5 files changed, 22 insertions(+), 2 deletions(-) diff --git a/packages/core/content-manager/server/tests/api/basic.test.e2e.js b/packages/core/content-manager/server/tests/api/basic.test.e2e.js index b14cdb779a..7258c037a1 100644 --- a/packages/core/content-manager/server/tests/api/basic.test.e2e.js +++ b/packages/core/content-manager/server/tests/api/basic.test.e2e.js @@ -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; diff --git a/packages/core/content-type-builder/server/services/schema-builder/component-builder.js b/packages/core/content-type-builder/server/services/schema-builder/component-builder.js index 89ac4a2a42..eb8aa7c3fd 100644 --- a/packages/core/content-type-builder/server/services/schema-builder/component-builder.js +++ b/packages/core/content-type-builder/server/services/schema-builder/component-builder.js @@ -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) { diff --git a/packages/core/content-type-builder/server/services/schema-builder/content-type-builder.js b/packages/core/content-type-builder/server/services/schema-builder/content-type-builder.js index 849d65f92b..311aa7a0a5 100644 --- a/packages/core/content-type-builder/server/services/schema-builder/content-type-builder.js +++ b/packages/core/content-type-builder/server/services/schema-builder/content-type-builder.js @@ -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 => { diff --git a/packages/core/content-type-builder/server/services/schema-builder/index.js b/packages/core/content-type-builder/server/services/schema-builder/index.js index 1825216f43..3d7240bced 100644 --- a/packages/core/content-type-builder/server/services/schema-builder/index.js +++ b/packages/core/content-type-builder/server/services/schema-builder/index.js @@ -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, }; }); diff --git a/packages/core/content-type-builder/server/services/schema-builder/schema-handler.js b/packages/core/content-type-builder/server/services/schema-builder/schema-handler.js index 391dc1cd66..fba87f26df 100644 --- a/packages/core/content-type-builder/server/services/schema-builder/schema-handler.js +++ b/packages/core/content-type-builder/server/services/schema-builder/schema-handler.js @@ -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 } );