emberflow 1.4.47 → 1.4.49

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.
@@ -138,107 +138,75 @@ describe("versionCompare", () => {
138
138
  });
139
139
  });
140
140
  describe("runPatchLogics", () => {
141
+ const dstPath = "users/userId";
141
142
  let queueRunViewLogicsSpy;
142
143
  let runTransactionSpy;
143
144
  let createMetricExecutionSpy;
144
145
  let distributeFnTransactionalSpy;
145
- const userLogicFn1 = jest.fn().mockResolvedValue({
146
- status: "finished",
147
- documents: [],
148
- });
149
- const userLogicFn2Result = {
150
- status: "finished",
151
- documents: [{
152
- "action": "merge",
153
- "doc": {
154
- firstName: "John",
155
- },
156
- "dstPath": "users/userId",
157
- }],
158
- };
159
- const userLogicFn2 = jest.fn().mockResolvedValue(userLogicFn2Result);
160
- const additionalUserLogicFn2Result = {
161
- status: "finished",
162
- documents: [
163
- {
164
- "action": "merge",
165
- "doc": {
166
- lastName: "Doe",
167
- },
168
- "dstPath": "users/userId",
169
- },
170
- ],
171
- };
172
- const additionalUserLogicFn2 = jest.fn().mockResolvedValue(additionalUserLogicFn2Result);
173
- const userLogicFn2p5Result = {
174
- status: "finished",
175
- documents: [{
176
- "action": "merge",
177
- "doc": {
178
- fullName: "John Doe",
179
- },
180
- "dstPath": "users/userId",
181
- }],
182
- };
183
- const userLogicFn2p5 = jest.fn().mockResolvedValue(userLogicFn2p5Result);
184
- const userLogicFn2p7 = jest.fn().mockResolvedValue({
185
- status: "finished",
186
- documents: [],
187
- });
188
- const topicLogicFn1 = jest.fn().mockResolvedValue({
189
- status: "finished",
190
- documents: [],
146
+ // declare globally for test file scope
147
+ let userLogicFn2Result;
148
+ let additionalUserLogicFn2Result;
149
+ let userLogicFn2p5Result;
150
+ let userLogicFn1;
151
+ let userLogicFn2;
152
+ let additionalUserLogicFn2;
153
+ let userLogicFn2p5;
154
+ let userLogicFn2p7;
155
+ let topicLogicFn1;
156
+ let userLogicFn3;
157
+ let patchLogicConfigs;
158
+ beforeEach(() => {
159
+ // Recreate result objects — so tests never share references
160
+ userLogicFn2Result = {
161
+ name: "userLogicFn2",
162
+ status: "finished",
163
+ documents: [{
164
+ action: "create",
165
+ doc: { firstName: "John", lastName: "Doe" },
166
+ dstPath: "users/userId/friends/friendId",
167
+ }],
168
+ };
169
+ additionalUserLogicFn2Result = {
170
+ name: "additionalUserLogicFn2",
171
+ status: "finished",
172
+ documents: [{
173
+ action: "create",
174
+ doc: { firstName: "Maria", lastName: "Doe" },
175
+ dstPath: "users/userId/friends/friendId2",
176
+ }],
177
+ };
178
+ userLogicFn2p5Result = {
179
+ name: "userLogicFn2p5",
180
+ status: "finished",
181
+ documents: [{
182
+ action: "merge",
183
+ doc: { token: "New title" },
184
+ dstPath: "users/userId/todos/todoId#title",
185
+ }],
186
+ };
187
+ // Recreate mocks
188
+ userLogicFn1 = jest.fn().mockResolvedValue({ status: "finished", documents: [] });
189
+ userLogicFn2 = jest.fn().mockResolvedValue(userLogicFn2Result);
190
+ additionalUserLogicFn2 = jest.fn().mockResolvedValue(additionalUserLogicFn2Result);
191
+ userLogicFn2p5 = jest.fn().mockResolvedValue(userLogicFn2p5Result);
192
+ userLogicFn2p7 = jest.fn().mockResolvedValue({ status: "finished", documents: [] });
193
+ topicLogicFn1 = jest.fn().mockResolvedValue({ status: "finished", documents: [] });
194
+ userLogicFn3 = jest.fn().mockResolvedValue({ status: "finished", documents: [] });
195
+ patchLogicConfigs = [
196
+ { name: "User Patch Version 1", entity: "user", patchLogicFn: userLogicFn1, version: "1.0.0" },
197
+ { name: "User Patch Version 2", entity: "user", patchLogicFn: userLogicFn2, version: "2.0.0" },
198
+ { name: "Additional User Patch Version 2", entity: "user", patchLogicFn: additionalUserLogicFn2, version: "2.0.0" },
199
+ { name: "User Patch Version 2.5", entity: "user", patchLogicFn: userLogicFn2p5, addtlFilterFn: (d) => d["@prod"], version: "2.5.0" },
200
+ { name: "User Patch Version 2.7", entity: "user", patchLogicFn: userLogicFn2p7, addtlFilterFn: (d) => !d["@prod"], version: "2.7.0" },
201
+ { name: "Topic Patch Version 1", entity: "topic", patchLogicFn: topicLogicFn1, version: "1.0.0" },
202
+ { name: "User Patch Version 3", entity: "user", patchLogicFn: userLogicFn3, version: "3.0.0" },
203
+ ];
191
204
  });
192
- const userLogicFn3 = jest.fn().mockResolvedValue({
193
- status: "finished",
194
- documents: [],
205
+ test("example test using global result", async () => {
206
+ var _a, _b;
207
+ await userLogicFn2(); // runs mock
208
+ expect((_b = (_a = userLogicFn2Result === null || userLogicFn2Result === void 0 ? void 0 : userLogicFn2Result.documents) === null || _a === void 0 ? void 0 : _a[0].doc) === null || _b === void 0 ? void 0 : _b.firstName).toBe("John");
195
209
  });
196
- const patchLogicConfigs = [
197
- {
198
- name: "User Patch Version 1",
199
- entity: "user",
200
- patchLogicFn: userLogicFn1,
201
- version: "1.0.0",
202
- },
203
- {
204
- name: "User Patch Version 2",
205
- entity: "user",
206
- patchLogicFn: userLogicFn2,
207
- version: "2.0.0",
208
- },
209
- {
210
- name: "Additional User Patch Version 2",
211
- entity: "user",
212
- patchLogicFn: additionalUserLogicFn2,
213
- version: "2.0.0",
214
- },
215
- {
216
- name: "User Patch Version 2.5",
217
- entity: "user",
218
- patchLogicFn: userLogicFn2p5,
219
- addtlFilterFn: (data) => data["@prod"],
220
- version: "2.5.0",
221
- },
222
- {
223
- name: "User Patch Version 2.7",
224
- entity: "user",
225
- patchLogicFn: userLogicFn2p7,
226
- addtlFilterFn: (data) => !data["@prod"],
227
- version: "2.7.0",
228
- },
229
- {
230
- name: "Topic Patch Version 1",
231
- entity: "topic",
232
- patchLogicFn: topicLogicFn1,
233
- version: "1.0.0",
234
- },
235
- {
236
- name: "User Patch Version 3",
237
- entity: "user",
238
- patchLogicFn: userLogicFn3,
239
- version: "3.0.0",
240
- },
241
- ];
242
210
  const dataVersion = "1.0.0";
243
211
  const appVersion = "2.9.0";
244
212
  const txnResult1 = {
@@ -260,6 +228,7 @@ describe("runPatchLogics", () => {
260
228
  }),
261
229
  };
262
230
  beforeEach(() => {
231
+ jest.clearAllMocks();
263
232
  jest.spyOn(indexUtils, "createMetricLogicDoc").mockResolvedValue();
264
233
  jest.spyOn(admin.firestore(), "doc").mockReturnValue({
265
234
  get: jest.fn().mockResolvedValue({
@@ -281,37 +250,43 @@ describe("runPatchLogics", () => {
281
250
  .mockImplementationOnce(async (callback) => callback(txnResult2));
282
251
  distributeFnTransactionalSpy = jest.spyOn(indexUtils, "distributeFnTransactional")
283
252
  .mockResolvedValueOnce([
253
+ Object.assign(Object.assign({}, userLogicFn2Result.documents[0]), { doc: Object.assign(Object.assign({}, userLogicFn2Result.documents[0].doc), { dataVersion: "2.0.0" }) }),
254
+ Object.assign(Object.assign({}, userLogicFn2p5Result.documents[0]), { doc: Object.assign(Object.assign({}, userLogicFn2p5Result.documents[0].doc), { dataVersion: "2.0.0" }) }),
284
255
  {
285
- action: "merge",
286
- dstPath: "users/userId",
287
- doc: {
288
- "firstName": "John",
289
- "lastName": "Doe",
290
- "@dataVersion": "2.0.0",
291
- },
256
+ action: "merge", dstPath,
257
+ doc: { dataVersion: "2.0.0" },
292
258
  },
293
259
  ]).mockResolvedValueOnce([
294
260
  {
295
- action: "merge",
296
- dstPath: "users/userId",
297
- doc: {
298
- "fullName": "John Doe",
299
- "@dataVersion": "2.5.0",
300
- },
261
+ "action": "merge",
262
+ "doc": { token: "New title", dataVersion: "2.5.0" },
263
+ "dstPath": "users/userId/todos/todoId#title",
264
+ },
265
+ {
266
+ "action": "merge",
267
+ "doc": { dataVersion: "2.5.0" },
268
+ "dstPath": "users/userId/todos/todoId",
269
+ },
270
+ {
271
+ action: "merge", dstPath,
272
+ doc: { dataVersion: "2.5.0" },
301
273
  },
302
274
  ]);
303
275
  });
304
276
  afterEach(() => {
305
277
  jest.restoreAllMocks();
306
278
  });
279
+ const dataVersionLogicResultDoc = {
280
+ action: "merge",
281
+ doc: { "@dataVersion": "2.0.0" },
282
+ dstPath,
283
+ };
307
284
  it("should appropriately group the matched logics by version then run transactions for each group", async () => {
308
- const dstPath = "users/userId";
309
285
  (0, index_1.initializeEmberFlow)(projectConfig, admin, db_structure_1.dbStructure, db_structure_1.Entity, security_1.securityConfigs, validators_1.validatorConfigs, [], patchLogicConfigs);
310
286
  await patchLogics.runPatchLogics(appVersion, dstPath);
311
287
  expect(runTransactionSpy).toHaveBeenCalledTimes(2); // for version 2.0.0 and 2.5.0
312
288
  });
313
289
  it("should run all patch logics between dataVersion and appVersion", async () => {
314
- const dstPath = "users/userId";
315
290
  (0, index_1.initializeEmberFlow)(projectConfig, admin, db_structure_1.dbStructure, db_structure_1.Entity, security_1.securityConfigs, validators_1.validatorConfigs, [], patchLogicConfigs);
316
291
  await patchLogics.runPatchLogics(appVersion, dstPath);
317
292
  expect(userLogicFn1).not.toHaveBeenCalled(); // below data version
@@ -323,63 +298,80 @@ describe("runPatchLogics", () => {
323
298
  expect(userLogicFn3).not.toHaveBeenCalled(); // ahead the app version
324
299
  });
325
300
  it("should distribute all consolidated logic result docs", async () => {
326
- const dstPath = "users/userId";
327
301
  (0, index_1.initializeEmberFlow)(projectConfig, admin, db_structure_1.dbStructure, db_structure_1.Entity, security_1.securityConfigs, validators_1.validatorConfigs, [], patchLogicConfigs);
328
302
  await patchLogics.runPatchLogics(appVersion, dstPath);
329
303
  expect(distributeFnTransactionalSpy).toHaveBeenCalledTimes(2);
330
304
  expect(distributeFnTransactionalSpy).toHaveBeenNthCalledWith(1, txnResult1, [
331
- Object.assign(Object.assign({}, userLogicFn2Result), { documents: [Object.assign(Object.assign({}, userLogicFn2Result.documents[0]), { "doc": Object.assign(Object.assign({}, userLogicFn2Result.documents[0].doc), { "@dataVersion": "2.0.0" }) })], transactional: true, execTime: expect.any(Number) }),
305
+ Object.assign(Object.assign({}, userLogicFn2Result), { documents: [Object.assign(Object.assign({}, userLogicFn2Result.documents[0]), { "doc": Object.assign(Object.assign({}, userLogicFn2Result.documents[0].doc), { "@dataVersion": "2.0.0" }) }), dataVersionLogicResultDoc], transactional: true, execTime: expect.any(Number) }),
332
306
  Object.assign(Object.assign({}, additionalUserLogicFn2Result), { documents: [
333
307
  Object.assign(Object.assign({}, additionalUserLogicFn2Result.documents[0]), { "doc": Object.assign(Object.assign({}, additionalUserLogicFn2Result.documents[0].doc), { "@dataVersion": "2.0.0" }) }),
308
+ dataVersionLogicResultDoc,
334
309
  ], transactional: true, execTime: expect.any(Number) }),
335
310
  ]);
336
311
  expect(distributeFnTransactionalSpy).toHaveBeenNthCalledWith(2, txnResult2, [
337
- Object.assign(Object.assign({}, userLogicFn2p5Result), { documents: [Object.assign(Object.assign({}, userLogicFn2p5Result.documents[0]), { "doc": Object.assign(Object.assign({}, userLogicFn2p5Result.documents[0].doc), { "@dataVersion": "2.5.0" }) })], execTime: expect.any(Number), transactional: true }),
312
+ Object.assign(Object.assign({}, userLogicFn2p5Result), { documents: [Object.assign(Object.assign({}, userLogicFn2p5Result.documents[0]), { "doc": Object.assign({}, userLogicFn2p5Result.documents[0].doc) }), {
313
+ "action": "merge",
314
+ "doc": { "@dataVersion": "2.5.0" },
315
+ "dstPath": "users/userId/todos/todoId",
316
+ }, {
317
+ "action": "merge", dstPath,
318
+ "doc": { "@dataVersion": "2.5.0" },
319
+ }], execTime: expect.any(Number), transactional: true }),
338
320
  ]);
339
321
  expect(queueRunViewLogicsSpy).toHaveBeenCalledTimes(2);
340
322
  });
341
323
  it("should run createMetricExecution per group patch", async () => {
342
- const dstPath = "users/userId";
343
324
  (0, index_1.initializeEmberFlow)(projectConfig, admin, db_structure_1.dbStructure, db_structure_1.Entity, security_1.securityConfigs, validators_1.validatorConfigs, [], patchLogicConfigs);
344
325
  await patchLogics.runPatchLogics(appVersion, dstPath);
345
326
  expect(createMetricExecutionSpy).toHaveBeenCalledTimes(2);
346
327
  // version 2.0.0
347
328
  expect(createMetricExecutionSpy).toHaveBeenNthCalledWith(1, [{
348
- execTime: expect.any(Number),
349
- status: "finished",
350
- timeFinished: expect.any(Timestamp),
351
- documents: [{ "action": "merge", "doc": { "firstName": "John", "@dataVersion": "2.0.0" }, "dstPath": "users/userId" }],
352
- transactional: true,
329
+ "name": "userLogicFn2",
330
+ "execTime": expect.any(Number),
331
+ "status": "finished",
332
+ "timeFinished": expect.any(Timestamp),
333
+ "documents": [Object.assign(Object.assign({}, userLogicFn2Result.documents[0]), { "doc": Object.assign(Object.assign({}, userLogicFn2Result.documents[0].doc), { "@dataVersion": "2.0.0" }) }), dataVersionLogicResultDoc],
334
+ "transactional": true,
353
335
  },
354
336
  {
355
- execTime: expect.any(Number),
356
- status: "finished",
357
- timeFinished: expect.any(Timestamp),
358
- documents: [{ action: "merge", doc: { "lastName": "Doe", "@dataVersion": "2.0.0" }, dstPath: "users/userId" }],
359
- transactional: true,
337
+ "name": "additionalUserLogicFn2",
338
+ "execTime": expect.any(Number),
339
+ "status": "finished",
340
+ "timeFinished": expect.any(Timestamp),
341
+ "documents": [
342
+ Object.assign(Object.assign({}, additionalUserLogicFn2Result.documents[0]), { "doc": Object.assign(Object.assign({}, additionalUserLogicFn2Result.documents[0].doc), { "@dataVersion": "2.0.0" }) }),
343
+ dataVersionLogicResultDoc,
344
+ ],
345
+ "transactional": true,
360
346
  },
361
347
  {
362
348
  execTime: expect.any(Number),
363
349
  status: "finished",
364
350
  name: "runPatchLogics",
365
351
  documents: [],
366
- },
367
- ]);
352
+ },]);
368
353
  // version 2.5.0
369
354
  expect(createMetricExecutionSpy).toHaveBeenNthCalledWith(2, [{
370
- execTime: expect.any(Number),
371
- status: "finished",
372
- timeFinished: expect.any(Timestamp),
373
- documents: [{ action: "merge", doc: { "fullName": "John Doe", "@dataVersion": "2.5.0" }, dstPath: "users/userId" }],
374
- transactional: true,
355
+ "name": "userLogicFn2p5",
356
+ "execTime": expect.any(Number),
357
+ "status": "finished",
358
+ "timeFinished": expect.any(Timestamp),
359
+ "documents": [Object.assign(Object.assign({}, userLogicFn2p5Result.documents[0]), { "doc": Object.assign({}, userLogicFn2p5Result.documents[0].doc) }), {
360
+ "action": "merge",
361
+ "doc": { "@dataVersion": "2.5.0" },
362
+ "dstPath": "users/userId/todos/todoId",
363
+ }, {
364
+ "action": "merge", dstPath,
365
+ "doc": { "@dataVersion": "2.5.0" },
366
+ }],
367
+ "transactional": true,
375
368
  },
376
369
  {
377
370
  execTime: expect.any(Number),
378
371
  status: "finished",
379
372
  name: "runPatchLogics",
380
373
  documents: [],
381
- },
382
- ]);
374
+ },]);
383
375
  });
384
376
  });
385
377
  describe("onMessageRunPatchLogicsQueue", () => {
@@ -1 +1 @@
1
- {"version":3,"file":"patch-logis.test.js","sourceRoot":"","sources":["../../../src/tests/logics/patch-logis.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"patch-logis.test.js","sourceRoot":"","sources":["../../../src/tests/logics/patch-logis.test.ts"],"names":[],"mappings":"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"}