From d4be22e25fb5220306d6fc174be703c3e91ce9df Mon Sep 17 00:00:00 2001 From: yoution Date: Tue, 7 Jan 2020 22:26:28 +0800 Subject: [PATCH] New Fields for Project Templates --- migrations/elasticsearch_sync.js | 6 ++++++ src/services/ProcessorServiceProjectTemplate.js | 2 ++ test/data/project.template/project.action.create.json | 2 +- test/e2e/processor.metadata.index.test.js | 10 ++++++++++ 4 files changed, 19 insertions(+), 1 deletion(-) diff --git a/migrations/elasticsearch_sync.js b/migrations/elasticsearch_sync.js index 655f6e5..162fd24 100644 --- a/migrations/elasticsearch_sync.js +++ b/migrations/elasticsearch_sync.js @@ -359,6 +359,12 @@ function getRequestBody (indexName) { type: 'string', index: 'not_analyzed' }, + subCategory: { + type: 'string' + }, + metadata: { + type: 'object' + }, name: { type: 'string' }, diff --git a/src/services/ProcessorServiceProjectTemplate.js b/src/services/ProcessorServiceProjectTemplate.js index dc3330e..89eda98 100644 --- a/src/services/ProcessorServiceProjectTemplate.js +++ b/src/services/ProcessorServiceProjectTemplate.js @@ -58,6 +58,8 @@ function createSchema () { name: Joi.string().max(255).required(), key: Joi.string().max(45).required(), category: Joi.string().max(45).required(), + subCategory: Joi.string().max(45).empty(null), + metadata: Joi.object(), icon: Joi.string().max(255).required(), question: Joi.string().max(255).required(), info: Joi.string().max(255).required(), diff --git a/test/data/project.template/project.action.create.json b/test/data/project.template/project.action.create.json index aa1cfc1..42b5d8d 100644 --- a/test/data/project.template/project.action.create.json +++ b/test/data/project.template/project.action.create.json @@ -1 +1 @@ -{"topic":"project.action.create","originator":"project-api","timestamp":"2019-06-21T02:00:27.369Z","mime-type":"application/json","payload":{"resource":"project.template","createdAt":"2019-06-21T02:00:27.263Z","updatedAt":"2019-06-21T02:00:27.264Z","disabled":false,"hidden":false,"id":1,"name":"new name","key":"new key 2","category":"app","icon":"http://example.com/icon1.ico","question":"question 1","info":"info 1","aliases":["key-1","key_1"],"scope":{"scope1":"scope 1"},"phases":{"phase1":"phase 1"},"createdBy":40051333,"updatedBy":40051333,"form":null,"planConfig":null,"priceConfig":null,"deletedAt":null,"deletedBy":null}} \ No newline at end of file +{"topic":"project.action.create","originator":"project-api","timestamp":"2019-06-21T02:00:27.369Z","mime-type":"application/json","payload":{"resource":"project.template","createdAt":"2019-06-21T02:00:27.263Z","updatedAt":"2019-06-21T02:00:27.264Z","disabled":false,"hidden":false,"id":1,"name":"new name","key":"new key 2","metadata":{},"subCategory":"app","category":"app","icon":"http://example.com/icon1.ico","question":"question 1","info":"info 1","aliases":["key-1","key_1"],"scope":{"scope1":"scope 1"},"phases":{"phase1":"phase 1"},"createdBy":40051333,"updatedBy":40051333,"form":null,"planConfig":null,"priceConfig":null,"deletedAt":null,"deletedBy":null}} diff --git a/test/e2e/processor.metadata.index.test.js b/test/e2e/processor.metadata.index.test.js index ea47583..0dd714b 100644 --- a/test/e2e/processor.metadata.index.test.js +++ b/test/e2e/processor.metadata.index.test.js @@ -423,6 +423,16 @@ describe('TC Project Template Topic Tests', () => { _.keys(_.omit(projectTemplateCreatedMessage.payload, ['resource']))) }) + it('create project template add subCategory and metadata correctly', async () => { + await ProcessorService.create(projectTemplateCreatedMessage) + const data = await testHelper.getMetadataESData(metadataId) + let projectTemplate = _.find(data.projectTemplates, { id: projectTemplateId }) + expect(projectTemplate).to.have.property('subCategory') + expect(projectTemplate).to.have.property('metadata') + expect(projectTemplate.subCategory).to.eql('app') + expect(projectTemplate.metadata).to.eql({}) + }) + it('create project template message - already exists', async () => { await ProcessorService.create(projectTemplateCreatedMessage) const data = await testHelper.getMetadataESData(metadataId)