Skip to content
This repository was archived by the owner on Mar 13, 2025. It is now read-only.

Commit b1c58c7

Browse files
committed
Correct the tests
1 parent 55c8582 commit b1c58c7

File tree

7 files changed

+203
-122
lines changed

7 files changed

+203
-122
lines changed

src/common/constants.js

Lines changed: 51 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -10,26 +10,35 @@ const topResources = {
1010
index: config.get('ES.ACHIEVEMENT_PROVIDER_INDEX'),
1111
type: config.get('ES.ACHIEVEMENT_PROVIDER_TYPE'),
1212
enrich: {
13-
policyName: config.get('ES.ENRICHMENT.achievementprovider.enrichPolicyName')
13+
policyName: config.get('ES.ENRICHMENT.achievementprovider.enrichPolicyName'),
14+
enrichFields: ['id', 'achievementsProviderId', 'name', 'uri', 'certifierId', 'certifiedDate', 'created', 'updated', 'createdBy', 'updatedBy']
1415
}
1516
},
1617
attribute: {
1718
index: config.get('ES.ATTRIBUTE_INDEX'),
1819
type: config.get('ES.ATTRIBUTE_TYPE'),
1920
enrich: {
20-
policyName: config.get('ES.ENRICHMENT.attribute.enrichPolicyName')
21+
policyName: config.get('ES.ENRICHMENT.attribute.enrichPolicyName'),
22+
enrichFields: ['id', 'name', 'attributeGroupId', 'created', 'updated', 'createdBy', 'updatedBy']
2123
},
2224
ingest: {
2325
pipeline: {
24-
id: config.get('ES.ENRICHMENT.attributegroup.pipelineId')
26+
id: config.get('ES.ENRICHMENT.attributegroup.pipelineId'),
27+
processors: [{
28+
policyName: config.get('ES.ENRICHMENT.attributegroup.enrichPolicyName'),
29+
field: 'attributegroupId',
30+
targetField: 'attributegroup',
31+
isArray: false
32+
}]
2533
}
2634
}
2735
},
2836
attributegroup: {
2937
index: config.get('ES.ATTRIBUTE_GROUP_INDEX'),
3038
type: config.get('ES.ATTRIBUTE_GROUP_TYPE'),
3139
enrich: {
32-
policyName: config.get('ES.ENRICHMENT.attributegroup.enrichPolicyName')
40+
policyName: config.get('ES.ENRICHMENT.attributegroup.enrichPolicyName'),
41+
enrichFields: ['id', 'organizationId', 'name']
3342
}
3443
},
3544
organization: {
@@ -40,34 +49,67 @@ const topResources = {
4049
index: config.get('ES.ROLE_INDEX'),
4150
type: config.get('ES.ROLE_TYPE'),
4251
enrich: {
43-
policyName: config.get('ES.ENRICHMENT.role.enrichPolicyName')
52+
policyName: config.get('ES.ENRICHMENT.role.enrichPolicyName'),
53+
enrichFields: ['id', 'name', 'created', 'updated', 'createdBy', 'updatedBy']
4454
}
4555
},
4656
skill: {
4757
index: config.get('ES.SKILL_INDEX'),
4858
type: config.get('ES.SKILL_TYPE'),
4959
enrich: {
50-
policyName: config.get('ES.ENRICHMENT.skill.enrichPolicyName')
60+
policyName: config.get('ES.ENRICHMENT.skill.enrichPolicyName'),
61+
enrichFields: ['id', 'skillProviderId', 'name', 'externalId', 'uri', 'created', 'updated', 'createdBy', 'updatedBy']
5162
},
5263
ingest: {
5364
pipeline: {
54-
id: config.get('ES.ENRICHMENT.skillprovider.pipelineId')
65+
id: config.get('ES.ENRICHMENT.skillprovider.pipelineId'),
66+
processors: [{
67+
policyName: config.get('ES.ENRICHMENT.skillprovider.enrichPolicyName'),
68+
field: 'skillProviderId',
69+
targetField: 'skillprovider',
70+
isArray: false
71+
}]
5572
}
5673
}
5774
},
5875
skillprovider: {
5976
index: config.get('ES.SKILL_PROVIDER_INDEX'),
6077
type: config.get('ES.SKILL_PROVIDER_TYPE'),
6178
enrich: {
62-
policyName: config.get('ES.ENRICHMENT.skillprovider.enrichPolicyName')
79+
policyName: config.get('ES.ENRICHMENT.skillprovider.enrichPolicyName'),
80+
enrichFields: ['id', 'name']
6381
}
6482
},
6583
user: {
6684
index: config.get('ES.USER_INDEX'),
6785
type: config.get('ES.USER_TYPE'),
6886
ingest: {
6987
pipeline: {
70-
id: config.get('ES.ENRICHMENT.user.pipelineId')
88+
id: config.get('ES.ENRICHMENT.user.pipelineId'),
89+
processors: [{
90+
policyName: config.get('ES.ENRICHMENT.achievementprovider.enrichPolicyName'),
91+
field: 'achievementsProviderId',
92+
targetField: config.get('ES.USER_ACHIEVEMENT_PROPERTY_NAME'),
93+
isArray: true
94+
},
95+
{
96+
policyName: config.get('ES.ENRICHMENT.attribute.enrichPolicyName'),
97+
field: 'attributeId',
98+
targetField: config.get('ES.USER_ATTRIBUTE_PROPERTY_NAME'),
99+
isArray: true
100+
},
101+
{
102+
policyName: config.get('ES.ENRICHMENT.role.enrichPolicyName'),
103+
field: 'roleId',
104+
targetField: config.get('ES.USER_ROLE_PROPERTY_NAME'),
105+
isArray: true
106+
},
107+
{
108+
policyName: config.get('ES.ENRICHMENT.skill.enrichPolicyName'),
109+
field: 'skillId',
110+
targetField: config.get('ES.USER_SKILL_PROPERTY_NAME'),
111+
isArray: true
112+
}]
71113
}
72114
}
73115
}

test/common/init-es.js

Lines changed: 79 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212
* node src/init-es force
1313
*/
1414

15-
const config = require('config')
1615
const _ = require('lodash')
1716
const logger = require('../../src/common/logger')
1817
const helper = require('../../src/common/helper')
@@ -33,17 +32,19 @@ const init = async (isForce) => {
3332
if (isForce) {
3433
await clearES()
3534
}
35+
const processors = {}
3636
for (const key in topResources) {
3737
const exists = await client.indices.exists({ index: topResources[key].index })
38+
const top = topResources[key]
3839
if (exists.body) {
39-
logger.info(`The index ${topResources[key].index} exists.`)
40+
logger.info(`The index ${top.index} exists.`)
4041
} else {
41-
logger.info(`The index ${topResources[key].index} will be created.`)
42+
logger.info(`The index ${top.index} will be created.`)
4243
await client.indices.create({
43-
index: topResources[key].index,
44+
index: top.index,
4445
body: {
4546
mappings: {
46-
properties: _(topResources[key].mappingFields).map(p => [p, { type: 'keyword' }]).fromPairs()
47+
properties: _(_.get(top, 'enrich.enrichFields', [])).map(p => [p, { type: 'keyword' }]).fromPairs()
4748
}
4849
}
4950
})
@@ -66,66 +67,90 @@ const init = async (isForce) => {
6667
}
6768
}
6869
}
69-
}
70-
const processors = []
71-
for (const key in userResources) {
72-
logger.info(`The enrich policy ${key}-policy will be created.`)
73-
const top = topResources[userResources[key].relateTopResource]
74-
await client.enrich.putPolicy({
75-
name: top.enrichPolicy,
76-
body: {
77-
match: {
78-
indices: top.index,
79-
match_field: 'id',
80-
enrich_fields: top.mappingFields
81-
}
82-
}
83-
})
84-
await client.enrich.executePolicy({ name: top.enrichPolicy })
85-
processors.push({
86-
foreach: {
87-
field: userResources[key].propertyName,
88-
ignore_missing: true,
89-
processor: {
90-
enrich: {
91-
policy_name: top.enrichPolicy,
92-
ignore_missing: true,
93-
field: `_ingest._value.${userResources[key].relateKey}`,
94-
target_field: '_ingest._value'
70+
if (top['enrich']) {
71+
logger.info(`The enrich policy ${top.enrich.policyName} will be created.`)
72+
await client.enrich.putPolicy({
73+
name: top.enrich.policyName,
74+
body: {
75+
match: {
76+
indices: top.index,
77+
match_field: 'id',
78+
enrich_fields: top.enrich.enrichFields
9579
}
9680
}
81+
})
82+
await client.enrich.executePolicy({ name: top.enrich.policyName })
83+
}
84+
if (top['ingest']) {
85+
_.each(top.ingest.pipeline.processors, processor => {
86+
if (!processors[top.ingest.pipeline.id]) {
87+
processors[top.ingest.pipeline.id] = []
88+
}
89+
if (processor.isArray) {
90+
processors[top.ingest.pipeline.id].push({
91+
foreach: {
92+
field: processor.targetField,
93+
ignore_missing: true,
94+
processor: {
95+
enrich: {
96+
policy_name: processor.policyName,
97+
ignore_missing: true,
98+
field: `_ingest._value.${processor.field}`,
99+
target_field: '_ingest._value'
100+
}
101+
}
102+
}
103+
})
104+
} else {
105+
processors[top.ingest.pipeline.id].push({
106+
enrich: {
107+
policy_name: processor.policyName,
108+
ignore_missing: true,
109+
field: processor.field,
110+
target_field: processor.targetField
111+
}
112+
})
113+
}
114+
})
115+
}
116+
}
117+
118+
for (const key in processors) {
119+
logger.info(`The pipeline ${key} will be created.`)
120+
await client.ingest.putPipeline({
121+
id: key,
122+
body: {
123+
processors: processors[key]
97124
}
98125
})
99126
}
100-
101-
logger.info(`The pipeline ${config.ES.ENRICH_USER_PIPELINE_NAME} will be created.`)
102-
await client.ingest.putPipeline({
103-
id: config.ES.ENRICH_USER_PIPELINE_NAME,
104-
body: {
105-
processors
106-
}
107-
})
108127
}
109128

110129
/**
111130
* Delete elastic search index
112131
*/
113132
const clearES = async () => {
114-
try {
115-
logger.info(`Delete pipeline ${config.ES.ENRICH_USER_PIPELINE_NAME} if any.`)
116-
await client.ingest.deletePipeline({ id: config.ES.ENRICH_USER_PIPELINE_NAME })
117-
} catch (err) {
118-
// ignore
133+
for (const key in topResources) {
134+
if (topResources[key].ingest) {
135+
try {
136+
logger.info(`Delete pipeline ${topResources[key].ingest.pipeline.id} if any.`)
137+
await client.ingest.deletePipeline({ id: topResources[key].ingest.pipeline.id })
138+
} catch (err) {
139+
// ignore
140+
}
141+
}
119142
}
120-
for (const key in userResources) {
121-
try {
122-
const policyName = topResources[userResources[key].relateTopResource].enrichPolicy
123-
logger.info(`Delete enrich policy ${policyName} if any.`)
124-
await client.enrich.deletePolicy({
125-
name: policyName
126-
})
127-
} catch (err) {
128-
// ignore
143+
for (const key in topResources) {
144+
if (topResources[key].enrich) {
145+
try {
146+
const policyName = topResources[key].enrich.policyName
147+
logger.info(`Delete enrich policy ${policyName} if any.`)
148+
await client.enrich.deletePolicy({
149+
name: policyName
150+
})
151+
} catch (err) {
152+
// ignore
153+
}
129154
}
130155
}
131156
for (const key in topResources) {
@@ -145,7 +170,7 @@ if (!module.parent) {
145170
logger.info('done')
146171
process.exit()
147172
}).catch((e) => {
148-
logger.error(e)
173+
logger.logFullError(e)
149174
process.exit()
150175
})
151176
}

0 commit comments

Comments
 (0)