emberflow 1.4.81 → 1.4.83
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/index-utils.d.ts +5 -5
- package/lib/index-utils.js +10 -5
- package/lib/index-utils.js.map +1 -1
- package/lib/index.js +7 -7
- package/lib/index.js.map +1 -1
- package/lib/logics/patch-logics.js +4 -15
- package/lib/logics/patch-logics.js.map +1 -1
- package/lib/logics/view-logics.d.ts +3 -3
- package/lib/logics/view-logics.js +14 -11
- package/lib/logics/view-logics.js.map +1 -1
- package/lib/tests/index-utils.test.js +26 -23
- package/lib/tests/index-utils.test.js.map +1 -1
- package/lib/tests/index.test.js +5 -5
- package/lib/tests/index.test.js.map +1 -1
- package/lib/tests/logics/patch-logics.test.d.ts +1 -0
- package/lib/tests/logics/patch-logics.test.js +439 -0
- package/lib/tests/logics/patch-logics.test.js.map +1 -0
- package/lib/tests/logics/view-logics.test.js +110 -34
- package/lib/tests/logics/view-logics.test.js.map +1 -1
- package/lib/tests/utils/distribution.test.js +2 -2
- package/lib/tests/utils/distribution.test.js.map +1 -1
- package/lib/types.d.ts +1 -1
- package/lib/utils/bill-protect.d.ts +2 -2
- package/lib/utils/bill-protect.js.map +1 -1
- package/lib/utils/distribution.d.ts +1 -1
- package/lib/utils/distribution.js +2 -2
- package/lib/utils/distribution.js.map +1 -1
- package/lib/utils/forms.d.ts +2 -2
- package/lib/utils/pubsub.d.ts +1 -1
- package/package.json +4 -4
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"patch-logics.test.js","sourceRoot":"","sources":["../../../src/tests/logics/patch-logics.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -221,6 +221,7 @@ describe("createViewLogicFn", () => {
|
|
|
221
221
|
});
|
|
222
222
|
});
|
|
223
223
|
const targetVersion = "1.0.0";
|
|
224
|
+
const appVersion = "1.0.0";
|
|
224
225
|
it("should log error document does not have @id", async () => {
|
|
225
226
|
jest.spyOn(console, "error").mockImplementation();
|
|
226
227
|
const logicFn = viewLogics.createViewLogicFn(vd4);
|
|
@@ -232,7 +233,7 @@ describe("createViewLogicFn", () => {
|
|
|
232
233
|
},
|
|
233
234
|
priority: "normal",
|
|
234
235
|
};
|
|
235
|
-
const result = await logicFn[1](logicResultDoc, targetVersion);
|
|
236
|
+
const result = await logicFn[1](logicResultDoc, targetVersion, appVersion);
|
|
236
237
|
expect(result.documents.length).toEqual(0);
|
|
237
238
|
expect(console.error).toHaveBeenCalledWith("Document does not have an @id attribute");
|
|
238
239
|
});
|
|
@@ -248,13 +249,13 @@ describe("createViewLogicFn", () => {
|
|
|
248
249
|
},
|
|
249
250
|
priority: "normal",
|
|
250
251
|
};
|
|
251
|
-
const result = await logicFn[1](logicResultDoc, targetVersion);
|
|
252
|
+
const result = await logicFn[1](logicResultDoc, targetVersion, appVersion);
|
|
252
253
|
expect(result.documents.length).toEqual(0);
|
|
253
254
|
expect(console.error).toHaveBeenCalledWith("srcPath should not have a placeholder");
|
|
254
255
|
});
|
|
255
256
|
it("should create @views doc", async () => {
|
|
256
257
|
let logicFn = viewLogics.createViewLogicFn(vd1);
|
|
257
|
-
let result = await logicFn[1](createLogicResultDoc, targetVersion);
|
|
258
|
+
let result = await logicFn[1](createLogicResultDoc, targetVersion, appVersion);
|
|
258
259
|
expect(result.documents.length).toEqual(1);
|
|
259
260
|
expect(result.documents[0]).toHaveProperty("action", "merge");
|
|
260
261
|
expect(result.documents[0]).toHaveProperty("dstPath", "users/1234/@views/users+1234");
|
|
@@ -264,7 +265,7 @@ describe("createViewLogicFn", () => {
|
|
|
264
265
|
"destEntity": "friend",
|
|
265
266
|
});
|
|
266
267
|
logicFn = viewLogics.createViewLogicFn(vd2);
|
|
267
|
-
result = await logicFn[1](Object.assign(Object.assign({}, createLogicResultDoc), { dstPath: "users/1234/posts/987#followers[1234]" }), targetVersion);
|
|
268
|
+
result = await logicFn[1](Object.assign(Object.assign({}, createLogicResultDoc), { dstPath: "users/1234/posts/987#followers[1234]" }), targetVersion, appVersion);
|
|
268
269
|
expect(result.documents.length).toEqual(2);
|
|
269
270
|
expect(result.documents[0]).toHaveProperty("action", "merge");
|
|
270
271
|
expect(result.documents[0])
|
|
@@ -281,7 +282,7 @@ describe("createViewLogicFn", () => {
|
|
|
281
282
|
"@followers": "arr(+1234)",
|
|
282
283
|
});
|
|
283
284
|
logicFn = viewLogics.createViewLogicFn(vd3);
|
|
284
|
-
result = await logicFn[1](Object.assign(Object.assign({}, createLogicResultDoc), { dstPath: "servers/123#createdBy" }), targetVersion);
|
|
285
|
+
result = await logicFn[1](Object.assign(Object.assign({}, createLogicResultDoc), { dstPath: "servers/123#createdBy" }), targetVersion, appVersion);
|
|
285
286
|
expect(result.documents.length).toEqual(1);
|
|
286
287
|
expect(result.documents[0]).toHaveProperty("action", "merge");
|
|
287
288
|
expect(result.documents[0])
|
|
@@ -295,12 +296,12 @@ describe("createViewLogicFn", () => {
|
|
|
295
296
|
});
|
|
296
297
|
it("should delete @views doc", async () => {
|
|
297
298
|
let logicFn = viewLogics.createViewLogicFn(vd1);
|
|
298
|
-
let result = await logicFn[1](deleteLogicResultDoc, targetVersion);
|
|
299
|
+
let result = await logicFn[1](deleteLogicResultDoc, targetVersion, appVersion);
|
|
299
300
|
expect(result.documents.length).toEqual(1);
|
|
300
301
|
expect(result.documents[0]).toHaveProperty("action", "delete");
|
|
301
302
|
expect(result.documents[0]).toHaveProperty("dstPath", "users/1234/@views/users+1234");
|
|
302
303
|
logicFn = viewLogics.createViewLogicFn(vd2);
|
|
303
|
-
result = await logicFn[1](Object.assign(Object.assign({}, deleteLogicResultDoc), { dstPath: "users/1234/posts/987#followers[1234]" }), targetVersion);
|
|
304
|
+
result = await logicFn[1](Object.assign(Object.assign({}, deleteLogicResultDoc), { dstPath: "users/1234/posts/987#followers[1234]" }), targetVersion, appVersion);
|
|
304
305
|
expect(result.documents.length).toEqual(2);
|
|
305
306
|
expect(result.documents[0]).toHaveProperty("action", "delete");
|
|
306
307
|
expect(result.documents[0])
|
|
@@ -311,7 +312,7 @@ describe("createViewLogicFn", () => {
|
|
|
311
312
|
"@followers": "arr(-1234)",
|
|
312
313
|
});
|
|
313
314
|
logicFn = viewLogics.createViewLogicFn(vd3);
|
|
314
|
-
result = await logicFn[1](Object.assign(Object.assign({}, deleteLogicResultDoc), { dstPath: "servers/123#createdBy" }), targetVersion);
|
|
315
|
+
result = await logicFn[1](Object.assign(Object.assign({}, deleteLogicResultDoc), { dstPath: "servers/123#createdBy" }), targetVersion, appVersion);
|
|
315
316
|
expect(result.documents.length).toEqual(1);
|
|
316
317
|
expect(result.documents[0]).toHaveProperty("action", "delete");
|
|
317
318
|
expect(result.documents[0])
|
|
@@ -331,7 +332,7 @@ describe("createViewLogicFn", () => {
|
|
|
331
332
|
// Create the logic function using the viewDefinition
|
|
332
333
|
const logicFn = viewLogics.createViewLogicFn(vd1);
|
|
333
334
|
// Call the logic function with the test action
|
|
334
|
-
const result = await logicFn[0](mergeLogicResultDoc, targetVersion);
|
|
335
|
+
const result = await logicFn[0](mergeLogicResultDoc, targetVersion, appVersion);
|
|
335
336
|
expect(colGetMock).toHaveBeenCalledTimes(1);
|
|
336
337
|
expect(docUpdateMock).not.toHaveBeenCalled();
|
|
337
338
|
expect(result).toBeDefined();
|
|
@@ -353,7 +354,7 @@ describe("createViewLogicFn", () => {
|
|
|
353
354
|
// Create the logic function using the viewDefinition
|
|
354
355
|
const logicFn = viewLogics.createViewLogicFn(vd1);
|
|
355
356
|
// Call the logic function with the test action
|
|
356
|
-
const result = await logicFn[0](newDeleteLogicResultDoc, targetVersion);
|
|
357
|
+
const result = await logicFn[0](newDeleteLogicResultDoc, targetVersion, appVersion);
|
|
357
358
|
expect(colGetMock).toHaveBeenCalledTimes(1);
|
|
358
359
|
expect(docUpdateMock).not.toHaveBeenCalled();
|
|
359
360
|
expect(result).toBeDefined();
|
|
@@ -389,7 +390,7 @@ describe("createViewLogicFn", () => {
|
|
|
389
390
|
// Create the logic function using the viewDefinition
|
|
390
391
|
const logicFn = viewLogics.createViewLogicFn(vd1);
|
|
391
392
|
// Call the logic function with the test action
|
|
392
|
-
const result = await logicFn[0](mergeLogicResultDoc, targetVersion);
|
|
393
|
+
const result = await logicFn[0](mergeLogicResultDoc, targetVersion, appVersion);
|
|
393
394
|
expect(colGetMock).toHaveBeenCalledTimes(1);
|
|
394
395
|
expect(docSpy).toHaveBeenCalledWith("users/1234/@views/users+456+friends+1234");
|
|
395
396
|
expect(docSpy).toHaveBeenCalledWith("users/1234/@views/users+789+friends+1234");
|
|
@@ -530,7 +531,7 @@ describe("createViewLogicFn", () => {
|
|
|
530
531
|
// Create the logic function using the viewDefinition
|
|
531
532
|
const logicFn = viewLogics.createViewLogicFn(vd1);
|
|
532
533
|
// Call the logic function with the test action
|
|
533
|
-
const result = await logicFn[0](mergeLogicResultDoc, targetVersion);
|
|
534
|
+
const result = await logicFn[0](mergeLogicResultDoc, targetVersion, appVersion);
|
|
534
535
|
expect(result).toBeDefined();
|
|
535
536
|
expect(result.documents).toBeDefined();
|
|
536
537
|
expect(result.documents.length).toEqual(2);
|
|
@@ -547,7 +548,7 @@ describe("createViewLogicFn", () => {
|
|
|
547
548
|
// Create the logic function using the viewDefinition
|
|
548
549
|
const logicFn2 = viewLogics.createViewLogicFn(vd2);
|
|
549
550
|
// Call the logic function with the test action
|
|
550
|
-
const result2 = await logicFn2[0](mergeLogicResultDoc, targetVersion);
|
|
551
|
+
const result2 = await logicFn2[0](mergeLogicResultDoc, targetVersion, appVersion);
|
|
551
552
|
// Add your expectations here, e.g., result.documents should have the correct properties and values
|
|
552
553
|
expect(result2).toBeDefined();
|
|
553
554
|
expect(result2.documents).toBeDefined();
|
|
@@ -568,7 +569,7 @@ describe("createViewLogicFn", () => {
|
|
|
568
569
|
expect(document).toHaveProperty("action", "merge");
|
|
569
570
|
expect(document).toHaveProperty("dstPath", "users/890/posts/654+followers[1234]");
|
|
570
571
|
expect(document.doc).toEqual({ "name": "John Doe", "@updatedByViewDefinitionAt": expect.any(Timestamp) });
|
|
571
|
-
const resultDelete = await logicFn[0](deleteLogicResultDoc, targetVersion);
|
|
572
|
+
const resultDelete = await logicFn[0](deleteLogicResultDoc, targetVersion, appVersion);
|
|
572
573
|
expect(resultDelete).toBeDefined();
|
|
573
574
|
expect(resultDelete.documents).toBeDefined();
|
|
574
575
|
expect(resultDelete.documents.length).toEqual(2);
|
|
@@ -581,7 +582,7 @@ describe("createViewLogicFn", () => {
|
|
|
581
582
|
// Create the logic function using the viewDefinition
|
|
582
583
|
const logicFn3 = viewLogics.createViewLogicFn(vd3);
|
|
583
584
|
// Call the logic function with the test action
|
|
584
|
-
const result3 = await logicFn3[0](userLogicResultDoc, targetVersion);
|
|
585
|
+
const result3 = await logicFn3[0](userLogicResultDoc, targetVersion, appVersion);
|
|
585
586
|
expect(result3).toBeDefined();
|
|
586
587
|
expect(result3.documents).toBeDefined();
|
|
587
588
|
expect(result3.documents.length).toEqual(2);
|
|
@@ -616,7 +617,7 @@ describe("createViewLogicFn", () => {
|
|
|
616
617
|
},
|
|
617
618
|
priority: "normal",
|
|
618
619
|
};
|
|
619
|
-
const result = await logicFn[1](logicResultDoc, targetVersion);
|
|
620
|
+
const result = await logicFn[1](logicResultDoc, targetVersion, appVersion);
|
|
620
621
|
expect(result.documents[0].dstPath).toBe("topics/topic21/orders/order123/menus/menuItem789/@views/topics+topic21+prepAreas+prepArea2+menus+prepAreaMenuItem34");
|
|
621
622
|
});
|
|
622
623
|
it("should correctly map placeholders from dstPath into srcPath", async () => {
|
|
@@ -640,7 +641,7 @@ describe("createViewLogicFn", () => {
|
|
|
640
641
|
"topicId": "topic22",
|
|
641
642
|
},
|
|
642
643
|
};
|
|
643
|
-
const result = await logicFn[1](logicResultDoc, targetVersion);
|
|
644
|
+
const result = await logicFn[1](logicResultDoc, targetVersion, appVersion);
|
|
644
645
|
expect(result.documents[0].dstPath).toBe("topics/topic22/prepAreas/prepArea2/menus/menuItem789/@views/topics+topic21+prepAreas+prepArea2+menus+prepAreaMenuItem34+orderItem");
|
|
645
646
|
});
|
|
646
647
|
it("should return an error if srcPath has a placeholder", async () => {
|
|
@@ -663,7 +664,7 @@ describe("createViewLogicFn", () => {
|
|
|
663
664
|
"@id": "menuItem789",
|
|
664
665
|
},
|
|
665
666
|
};
|
|
666
|
-
const result = await logicFn[1](logicResultDoc, targetVersion);
|
|
667
|
+
const result = await logicFn[1](logicResultDoc, targetVersion, appVersion);
|
|
667
668
|
expect(result.status).toBe("error");
|
|
668
669
|
expect(result.message).toBe("srcPath should not have a placeholder");
|
|
669
670
|
});
|
|
@@ -795,7 +796,7 @@ describe("createViewLogicFn", () => {
|
|
|
795
796
|
}],
|
|
796
797
|
});
|
|
797
798
|
const logicFn = viewLogics.createViewLogicFn(vd1);
|
|
798
|
-
const result = await logicFn[0](mergeLogicResultDoc, targetVersion);
|
|
799
|
+
const result = await logicFn[0](mergeLogicResultDoc, targetVersion, appVersion);
|
|
799
800
|
expect(result).toBeDefined();
|
|
800
801
|
expect(result.documents).toBeDefined();
|
|
801
802
|
expect(result.documents.length).toEqual(2);
|
|
@@ -820,6 +821,11 @@ describe("createViewLogicFn", () => {
|
|
|
820
821
|
id: "users+456+friends+1234+prop1",
|
|
821
822
|
ref: {
|
|
822
823
|
path: "users/1234/@views/users+456+friends+1234",
|
|
824
|
+
parent: {
|
|
825
|
+
parent: {
|
|
826
|
+
id: "1234",
|
|
827
|
+
},
|
|
828
|
+
},
|
|
823
829
|
},
|
|
824
830
|
data: () => {
|
|
825
831
|
return {
|
|
@@ -831,6 +837,11 @@ describe("createViewLogicFn", () => {
|
|
|
831
837
|
id: "users+789+friends+1234+prop1[propId1]",
|
|
832
838
|
ref: {
|
|
833
839
|
path: "users/1234/@views/users+789+friends+1234",
|
|
840
|
+
parent: {
|
|
841
|
+
parent: {
|
|
842
|
+
id: "1234",
|
|
843
|
+
},
|
|
844
|
+
},
|
|
834
845
|
},
|
|
835
846
|
data: () => {
|
|
836
847
|
return {
|
|
@@ -841,7 +852,7 @@ describe("createViewLogicFn", () => {
|
|
|
841
852
|
}],
|
|
842
853
|
});
|
|
843
854
|
const logicFn = viewLogics.createViewLogicFn(vd1);
|
|
844
|
-
const result = await logicFn[0](mergeLogicResultDoc, targetVersion);
|
|
855
|
+
const result = await logicFn[0](mergeLogicResultDoc, targetVersion, appVersion);
|
|
845
856
|
expect(result).toBeDefined();
|
|
846
857
|
expect(result.documents).toBeDefined();
|
|
847
858
|
expect(result.documents.length).toEqual(2);
|
|
@@ -852,6 +863,57 @@ describe("createViewLogicFn", () => {
|
|
|
852
863
|
expect(document).toHaveProperty("action", "delete");
|
|
853
864
|
expect(document).toHaveProperty("dstPath", "users/1234/@views/users+789+friends+1234");
|
|
854
865
|
});
|
|
866
|
+
it("should create delete logicDoc if viewDoc path destProp id is not equal to source id", async () => {
|
|
867
|
+
docGetMock.mockResolvedValue({
|
|
868
|
+
data: () => {
|
|
869
|
+
return {
|
|
870
|
+
"@viewsAlreadyBuilt+friend": false,
|
|
871
|
+
};
|
|
872
|
+
},
|
|
873
|
+
exists: true,
|
|
874
|
+
});
|
|
875
|
+
dbGetAllMock = jest.fn().mockImplementation((...refs) => {
|
|
876
|
+
return Promise.resolve(refs.map((ref) => ({
|
|
877
|
+
exists: true,
|
|
878
|
+
data: () => ({
|
|
879
|
+
"prop1": {
|
|
880
|
+
"@id": "5678",
|
|
881
|
+
"age": 20,
|
|
882
|
+
"name": "John Doe",
|
|
883
|
+
},
|
|
884
|
+
}),
|
|
885
|
+
ref: ref,
|
|
886
|
+
})));
|
|
887
|
+
});
|
|
888
|
+
jest.spyOn(admin.firestore(), "getAll").mockImplementation(dbGetAllMock);
|
|
889
|
+
colGetMock.mockResolvedValueOnce({
|
|
890
|
+
docs: [{
|
|
891
|
+
id: "users+456+friends+1234+prop1",
|
|
892
|
+
ref: {
|
|
893
|
+
path: "users/1234/@views/users+456+friends+1234",
|
|
894
|
+
parent: {
|
|
895
|
+
parent: {
|
|
896
|
+
id: "1234",
|
|
897
|
+
},
|
|
898
|
+
},
|
|
899
|
+
},
|
|
900
|
+
data: () => {
|
|
901
|
+
return {
|
|
902
|
+
"path": "users/456/friends/1234#prop1",
|
|
903
|
+
"srcProps": ["age", "avatar", "name"],
|
|
904
|
+
};
|
|
905
|
+
},
|
|
906
|
+
}],
|
|
907
|
+
});
|
|
908
|
+
const logicFn = viewLogics.createViewLogicFn(vd1);
|
|
909
|
+
const result = await logicFn[0](mergeLogicResultDoc, targetVersion, appVersion);
|
|
910
|
+
expect(result).toBeDefined();
|
|
911
|
+
expect(result.documents).toBeDefined();
|
|
912
|
+
expect(result.documents.length).toEqual(1);
|
|
913
|
+
const document = result.documents[0];
|
|
914
|
+
expect(document).toHaveProperty("action", "delete");
|
|
915
|
+
expect(document).toHaveProperty("dstPath", "users/1234/@views/users+456+friends+1234");
|
|
916
|
+
});
|
|
855
917
|
it("should only execute 50 @views per batch, then queue the succeeding ones", async () => {
|
|
856
918
|
docGetMock.mockResolvedValue({
|
|
857
919
|
data: () => {
|
|
@@ -894,12 +956,12 @@ describe("createViewLogicFn", () => {
|
|
|
894
956
|
});
|
|
895
957
|
const queueRunViewLogicsSpy = jest.spyOn(viewLogics, "queueRunViewLogics").mockResolvedValue();
|
|
896
958
|
const logicFn = viewLogics.createViewLogicFn(vd1);
|
|
897
|
-
const result = await logicFn[0](mergeLogicResultDoc, targetVersion);
|
|
959
|
+
const result = await logicFn[0](mergeLogicResultDoc, targetVersion, appVersion);
|
|
898
960
|
expect(result).toBeDefined();
|
|
899
961
|
expect(result.documents).toBeDefined();
|
|
900
962
|
expect(result.documents.length).toEqual(50);
|
|
901
963
|
expect(queueRunViewLogicsSpy).toHaveBeenCalledTimes(1);
|
|
902
|
-
expect(queueRunViewLogicsSpy).toHaveBeenNthCalledWith(1, targetVersion, [mergeLogicResultDoc], "50thViewId");
|
|
964
|
+
expect(queueRunViewLogicsSpy).toHaveBeenNthCalledWith(1, targetVersion, appVersion, [mergeLogicResultDoc], "50thViewId");
|
|
903
965
|
});
|
|
904
966
|
it("should be able to process succeeding batches of @views", async () => {
|
|
905
967
|
docGetMock.mockResolvedValueOnce({
|
|
@@ -925,6 +987,11 @@ describe("createViewLogicFn", () => {
|
|
|
925
987
|
id: "users+456+friends+1234+prop1",
|
|
926
988
|
ref: {
|
|
927
989
|
path: "users/1234/@views/users+456+friends+1234",
|
|
990
|
+
parent: {
|
|
991
|
+
parent: {
|
|
992
|
+
id: "1234",
|
|
993
|
+
},
|
|
994
|
+
},
|
|
928
995
|
},
|
|
929
996
|
data: () => {
|
|
930
997
|
return {
|
|
@@ -936,6 +1003,11 @@ describe("createViewLogicFn", () => {
|
|
|
936
1003
|
id: "users+789+friends+1234+prop1[propId1]",
|
|
937
1004
|
ref: {
|
|
938
1005
|
path: "users/1234/@views/users+789+friends+1234",
|
|
1006
|
+
parent: {
|
|
1007
|
+
parent: {
|
|
1008
|
+
id: "1234",
|
|
1009
|
+
},
|
|
1010
|
+
},
|
|
939
1011
|
},
|
|
940
1012
|
data: () => {
|
|
941
1013
|
return {
|
|
@@ -976,14 +1048,14 @@ describe("createViewLogicFn", () => {
|
|
|
976
1048
|
});
|
|
977
1049
|
it("should return finished logicResult with 2 documents", async () => {
|
|
978
1050
|
jest.spyOn(paths_1._mockable, "doesPathExists").mockResolvedValue(false);
|
|
979
|
-
const result = await logicFn[1](logicResultDoc, targetVersion);
|
|
1051
|
+
const result = await logicFn[1](logicResultDoc, targetVersion, appVersion);
|
|
980
1052
|
expect(result.name).toBe("menuItemIngredient Dst-to-Src");
|
|
981
1053
|
expect(result.status).toBe("finished");
|
|
982
1054
|
expect(result.timeFinished).toBe(undefined);
|
|
983
1055
|
});
|
|
984
1056
|
it("should create @syncCreateView in global collection", async () => {
|
|
985
1057
|
jest.spyOn(paths_1._mockable, "doesPathExists").mockResolvedValue(false);
|
|
986
|
-
const result = await logicFn[1](logicResultDoc, targetVersion);
|
|
1058
|
+
const result = await logicFn[1](logicResultDoc, targetVersion, appVersion);
|
|
987
1059
|
expect(result.documents[1].dstPath).toBe("@syncCreateViews/topics+topic21+menus+menu1+ingredients");
|
|
988
1060
|
expect(result.documents[1].doc).toEqual({
|
|
989
1061
|
"destEntity": "menuItemIngredient",
|
|
@@ -996,7 +1068,7 @@ describe("createViewLogicFn", () => {
|
|
|
996
1068
|
const invalidLogicResultDoc = Object.assign(Object.assign({}, logicResultDoc), { dstPath: invalidPath });
|
|
997
1069
|
jest.spyOn(paths_1._mockable, "doesPathExists").mockResolvedValue(false);
|
|
998
1070
|
const errorSpy = jest.spyOn(console, "error").mockImplementation();
|
|
999
|
-
const result = await logicFn[1](invalidLogicResultDoc, targetVersion);
|
|
1071
|
+
const result = await logicFn[1](invalidLogicResultDoc, targetVersion, appVersion);
|
|
1000
1072
|
expect(errorSpy).toHaveBeenCalledWith("invalid syncCreate dstPath, topics/topic21/menus/menu1#ingredients");
|
|
1001
1073
|
expect(result.documents.length).toEqual(1);
|
|
1002
1074
|
expect(result.documents[0].dstPath).not.toBe("@syncCreateViews/topics+topic21+menus+menu1+ingredients");
|
|
@@ -1004,7 +1076,7 @@ describe("createViewLogicFn", () => {
|
|
|
1004
1076
|
it("should not create @syncCreateView in global collection if the a doc with same docId is already created", async () => {
|
|
1005
1077
|
const infoSpy = jest.spyOn(console, "info").mockImplementation();
|
|
1006
1078
|
jest.spyOn(paths_1._mockable, "doesPathExists").mockResolvedValue(true);
|
|
1007
|
-
const result = await logicFn[1](logicResultDoc, targetVersion);
|
|
1079
|
+
const result = await logicFn[1](logicResultDoc, targetVersion, appVersion);
|
|
1008
1080
|
expect(infoSpy).toHaveBeenCalledWith("@syncCreateViews/topics+topic21+menus+menu1+ingredients already exists — skipping creation.");
|
|
1009
1081
|
expect(result.documents.length).toEqual(1);
|
|
1010
1082
|
expect(result.documents[0].dstPath).not.toBe("@syncCreateViews/topics+topic21+menus+menu1+ingredients");
|
|
@@ -1060,13 +1132,13 @@ describe("createViewLogicFn", () => {
|
|
|
1060
1132
|
.mockResolvedValueOnce(true);
|
|
1061
1133
|
paths_1._mockable.doesPathExists = doesPathExistsMock;
|
|
1062
1134
|
it("should auto create source document if there is a matching path in @syncCreateViews", async () => {
|
|
1063
|
-
const result = await logicFn[0](logicResultDoc, targetVersion);
|
|
1135
|
+
const result = await logicFn[0](logicResultDoc, targetVersion, appVersion);
|
|
1064
1136
|
expect(result.documents.length).toBe(2);
|
|
1065
1137
|
expect(result.documents[0].dstPath).toBe(`${dstPath1}/ingredient1`);
|
|
1066
1138
|
expect(result.documents[0].doc).toBe(logicResultDoc.doc);
|
|
1067
1139
|
});
|
|
1068
1140
|
it("should manually create @view document for each newly created views", async () => {
|
|
1069
|
-
const result = await logicFn[0](logicResultDoc, targetVersion);
|
|
1141
|
+
const result = await logicFn[0](logicResultDoc, targetVersion, appVersion);
|
|
1070
1142
|
const atViewsCollectionPath = `${srcCollection}/ingredient1/@views`;
|
|
1071
1143
|
expect(result.documents[1].dstPath).toBe(`${atViewsCollectionPath}/topics+topic21+menus+menu1+ingredients+ingredient1`);
|
|
1072
1144
|
expect(result.documents[1].doc).toEqual({
|
|
@@ -1084,7 +1156,7 @@ describe("createViewLogicFn", () => {
|
|
|
1084
1156
|
options: { syncCreate: true },
|
|
1085
1157
|
version: "1.0.0",
|
|
1086
1158
|
});
|
|
1087
|
-
const result = await logicFnPropView[0](logicResultDoc, targetVersion);
|
|
1159
|
+
const result = await logicFnPropView[0](logicResultDoc, targetVersion, appVersion);
|
|
1088
1160
|
expect(result.documents.length).toBe(3);
|
|
1089
1161
|
expect(result.documents[2].dstPath).toBe("topics/topic21/preparationAreas/prepArea1/menus/menu1");
|
|
1090
1162
|
expect(result.documents[2].instructions).toEqual({
|
|
@@ -1110,6 +1182,7 @@ describe("queueRunViewLogics", () => {
|
|
|
1110
1182
|
]));
|
|
1111
1183
|
});
|
|
1112
1184
|
const targetVersion = "1.0.0";
|
|
1185
|
+
const appVersion = "1.0.0";
|
|
1113
1186
|
it("should queue docs to run view logics", async () => {
|
|
1114
1187
|
const doc1 = {
|
|
1115
1188
|
action: "merge",
|
|
@@ -1117,9 +1190,9 @@ describe("queueRunViewLogics", () => {
|
|
|
1117
1190
|
doc: { name: "test-doc-name-merge" },
|
|
1118
1191
|
dstPath: "users/test-user-id/documents/doc1",
|
|
1119
1192
|
};
|
|
1120
|
-
await viewLogics.queueRunViewLogics(targetVersion, [doc1]);
|
|
1193
|
+
await viewLogics.queueRunViewLogics(targetVersion, appVersion, [doc1]);
|
|
1121
1194
|
expect(findMatchingViewLogicsSpy).toHaveBeenCalled();
|
|
1122
|
-
expect(publishMessageSpy).toHaveBeenCalledWith({ json: { "doc": doc1,
|
|
1195
|
+
expect(publishMessageSpy).toHaveBeenCalledWith({ json: { "doc": doc1, targetVersion, appVersion } });
|
|
1123
1196
|
});
|
|
1124
1197
|
});
|
|
1125
1198
|
describe("onMessageViewLogicsQueue", () => {
|
|
@@ -1190,12 +1263,15 @@ describe("onMessageViewLogicsQueue", () => {
|
|
|
1190
1263
|
doc: { name: "test-doc-name-updated" },
|
|
1191
1264
|
dstPath: `users/${userId}`,
|
|
1192
1265
|
};
|
|
1266
|
+
const targetVersion = "1.0.0";
|
|
1267
|
+
const appVersion = "1.0.0";
|
|
1193
1268
|
const event = {
|
|
1194
1269
|
data: {
|
|
1195
1270
|
message: {
|
|
1196
1271
|
json: {
|
|
1197
1272
|
doc: doc1,
|
|
1198
|
-
targetVersion
|
|
1273
|
+
targetVersion,
|
|
1274
|
+
appVersion,
|
|
1199
1275
|
},
|
|
1200
1276
|
},
|
|
1201
1277
|
},
|
|
@@ -1221,7 +1297,7 @@ describe("onMessageViewLogicsQueue", () => {
|
|
|
1221
1297
|
execTime: expect.any(Number),
|
|
1222
1298
|
};
|
|
1223
1299
|
const result = await viewLogics.onMessageViewLogicsQueue(event);
|
|
1224
|
-
expect(runViewLogicsSpy).toHaveBeenCalledWith(doc1,
|
|
1300
|
+
expect(runViewLogicsSpy).toHaveBeenCalledWith(doc1, targetVersion, appVersion, undefined);
|
|
1225
1301
|
const expectedMetricExecutions = (0, index_utils_1.convertLogicResultsToMetricExecutions)([...viewLogicsResult, distributeFnLogicResult]);
|
|
1226
1302
|
expect(createMetricExecutionSpy).toHaveBeenCalledWith(expectedMetricExecutions);
|
|
1227
1303
|
expect(expandConsolidateAndGroupByDstPathSpy).toHaveBeenCalled();
|
|
@@ -1229,7 +1305,7 @@ describe("onMessageViewLogicsQueue", () => {
|
|
|
1229
1305
|
// Since the array is cleared in the function, we can't check its content directly if it's the same reference
|
|
1230
1306
|
// But we know it was called with the flattened documents
|
|
1231
1307
|
expect(calledWith).toBeDefined();
|
|
1232
|
-
expect(distributeSpy).toHaveBeenCalledWith(expandConsolidateResult, true);
|
|
1308
|
+
expect(distributeSpy).toHaveBeenCalledWith(expandConsolidateResult, appVersion, true);
|
|
1233
1309
|
expect(trackProcessedIdsMock).toHaveBeenCalledWith(index_1.VIEW_LOGICS_TOPIC_NAME, event.id);
|
|
1234
1310
|
expect(result).toEqual("Processed view logics");
|
|
1235
1311
|
});
|