@contrail/flexplm 1.1.64 → 1.1.66
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/entity-processor/base-entity-processor.js +3 -0
- package/lib/entity-processor/base-entity-processor.spec.js +79 -0
- package/package.json +2 -2
- package/src/entity-processor/base-entity-processor.spec.ts +338 -249
- package/src/entity-processor/base-entity-processor.ts +486 -483
- package/src/publish/mockData.ts +4560 -4560
- package/src/util/flexplm-connect.ts +199 -199
|
@@ -280,6 +280,9 @@ class BaseEntityProcessor {
|
|
|
280
280
|
const flexPayload = (payload) ? payload[0] : undefined;
|
|
281
281
|
let outboundEntityUpdates = undefined;
|
|
282
282
|
if (flexPayload && 'OK' === flexPayload.status) {
|
|
283
|
+
if (flexPayload.data && !flexPayload.data?.flexPLMObjectClass) {
|
|
284
|
+
flexPayload.data.flexPLMObjectClass = flexPayload.objectClass;
|
|
285
|
+
}
|
|
283
286
|
const inboundData = await this.getTransformedData(flexPayload);
|
|
284
287
|
outboundEntityUpdates = await this.getUpdatesForEntity(event.newData, inboundData);
|
|
285
288
|
}
|
|
@@ -91,6 +91,85 @@ describe('BaseEntityProcessor', () => {
|
|
|
91
91
|
expect(getUpdatesForEntitySpy).toBeCalledTimes(0);
|
|
92
92
|
expect(updates).toBeUndefined();
|
|
93
93
|
});
|
|
94
|
+
it('should set flexPLMObjectClass when data exists but flexPLMObjectClass is missing', async () => {
|
|
95
|
+
const btep = new TestBaseEntityProcessor(config, dc, mapFileUtil, 'test');
|
|
96
|
+
const event = { newData: { id: '123' } };
|
|
97
|
+
const flexResponse = {
|
|
98
|
+
data: {
|
|
99
|
+
payload: [
|
|
100
|
+
{
|
|
101
|
+
status: 'OK',
|
|
102
|
+
objectClass: 'Material',
|
|
103
|
+
data: {
|
|
104
|
+
name: 'Test Material'
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
]
|
|
108
|
+
}
|
|
109
|
+
};
|
|
110
|
+
const getTransformedDataSpy = jest.spyOn(btep, 'getTransformedData').mockReturnValue(Promise.resolve({}));
|
|
111
|
+
const returnValue = {
|
|
112
|
+
name: 'Test'
|
|
113
|
+
};
|
|
114
|
+
const getUpdatesForEntitySpy = jest.spyOn(btep, 'getUpdatesForEntity').mockReturnValue(Promise.resolve(returnValue));
|
|
115
|
+
await btep.getOutboundEntityUpdates(event, flexResponse);
|
|
116
|
+
expect(flexResponse.data.payload[0].data['flexPLMObjectClass']).toBe('Material');
|
|
117
|
+
expect(getTransformedDataSpy).toBeCalledTimes(1);
|
|
118
|
+
expect(getTransformedDataSpy).toBeCalledWith(flexResponse.data.payload[0]);
|
|
119
|
+
expect(getUpdatesForEntitySpy).toBeCalledTimes(1);
|
|
120
|
+
});
|
|
121
|
+
it('should not override existing flexPLMObjectClass', async () => {
|
|
122
|
+
const btep = new TestBaseEntityProcessor(config, dc, mapFileUtil, 'test');
|
|
123
|
+
const event = { newData: { id: '123' } };
|
|
124
|
+
const flexResponse = {
|
|
125
|
+
data: {
|
|
126
|
+
payload: [
|
|
127
|
+
{
|
|
128
|
+
status: 'OK',
|
|
129
|
+
objectClass: 'Material',
|
|
130
|
+
data: {
|
|
131
|
+
name: 'Test Material',
|
|
132
|
+
flexPLMObjectClass: 'ExistingClass'
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
]
|
|
136
|
+
}
|
|
137
|
+
};
|
|
138
|
+
const getTransformedDataSpy = jest.spyOn(btep, 'getTransformedData').mockReturnValue(Promise.resolve({}));
|
|
139
|
+
const returnValue = {
|
|
140
|
+
name: 'Test'
|
|
141
|
+
};
|
|
142
|
+
const getUpdatesForEntitySpy = jest.spyOn(btep, 'getUpdatesForEntity').mockReturnValue(Promise.resolve(returnValue));
|
|
143
|
+
await btep.getOutboundEntityUpdates(event, flexResponse);
|
|
144
|
+
expect(flexResponse.data.payload[0].data.flexPLMObjectClass).toBe('ExistingClass');
|
|
145
|
+
expect(getTransformedDataSpy).toBeCalledTimes(1);
|
|
146
|
+
expect(getTransformedDataSpy).toBeCalledWith(flexResponse.data.payload[0]);
|
|
147
|
+
expect(getUpdatesForEntitySpy).toBeCalledTimes(1);
|
|
148
|
+
});
|
|
149
|
+
it('should handle when data is null or undefined', async () => {
|
|
150
|
+
const btep = new TestBaseEntityProcessor(config, dc, mapFileUtil, 'test');
|
|
151
|
+
const event = { newData: { id: '123' } };
|
|
152
|
+
const flexResponse = {
|
|
153
|
+
data: {
|
|
154
|
+
payload: [
|
|
155
|
+
{
|
|
156
|
+
status: 'OK',
|
|
157
|
+
objectClass: 'Material',
|
|
158
|
+
data: null
|
|
159
|
+
}
|
|
160
|
+
]
|
|
161
|
+
}
|
|
162
|
+
};
|
|
163
|
+
const getTransformedDataSpy = jest.spyOn(btep, 'getTransformedData').mockReturnValue(Promise.resolve({}));
|
|
164
|
+
const returnValue = {
|
|
165
|
+
name: 'Test'
|
|
166
|
+
};
|
|
167
|
+
const getUpdatesForEntitySpy = jest.spyOn(btep, 'getUpdatesForEntity').mockReturnValue(Promise.resolve(returnValue));
|
|
168
|
+
await btep.getOutboundEntityUpdates(event, flexResponse);
|
|
169
|
+
expect(getTransformedDataSpy).toBeCalledTimes(1);
|
|
170
|
+
expect(getTransformedDataSpy).toBeCalledWith(flexResponse.data.payload[0]);
|
|
171
|
+
expect(getUpdatesForEntitySpy).toBeCalledTimes(1);
|
|
172
|
+
});
|
|
94
173
|
});
|
|
95
174
|
describe('queryEntityWithSubType', () => {
|
|
96
175
|
const config = {};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@contrail/flexplm",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.66",
|
|
4
4
|
"description": "Library used for integration with flexplm.",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"types": "lib/index.d.ts",
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
"test-coverage": "jest --coverage"
|
|
15
15
|
},
|
|
16
16
|
"keywords": [],
|
|
17
|
-
"author": "",
|
|
17
|
+
"author": "VibeIQ",
|
|
18
18
|
"license": "ISC",
|
|
19
19
|
"devDependencies": {
|
|
20
20
|
"@types/jest": "^29.5.2",
|