|
19 | 19 | */ |
20 | 20 |
|
21 | 21 | import { |
| 22 | + cacheIndexes, |
22 | 23 | getFeatureServiceRelatedRecords, |
23 | 24 | templatize, |
24 | 25 | deleteViewProps, |
@@ -556,15 +557,15 @@ describe("Module `featureServiceHelpers`: utility functions for feature-service |
556 | 557 | it("should not fail with undefined", () => { |
557 | 558 | let fieldInfos: any = {}; |
558 | 559 | const layer: any = undefined; |
559 | | - fieldInfos = cacheFieldInfos(layer, fieldInfos, true); |
| 560 | + fieldInfos = cacheFieldInfos(layer, fieldInfos, true, false); |
560 | 561 | expect(layer).toBeUndefined(); |
561 | 562 | expect(fieldInfos).toEqual({}); |
562 | 563 | }); |
563 | 564 |
|
564 | 565 | it("should not fail without key properties on the layer", () => { |
565 | 566 | let fieldInfos: any = {}; |
566 | 567 | const layer: any = {}; |
567 | | - fieldInfos = cacheFieldInfos(layer, fieldInfos, false); |
| 568 | + fieldInfos = cacheFieldInfos(layer, fieldInfos, false, false); |
568 | 569 | expect(layer).toEqual({}); |
569 | 570 | expect(fieldInfos).toEqual({}); |
570 | 571 | }); |
@@ -676,12 +677,56 @@ describe("Module `featureServiceHelpers`: utility functions for feature-service |
676 | 677 | }, |
677 | 678 | }; |
678 | 679 |
|
679 | | - fieldInfos = cacheFieldInfos(layer, fieldInfos, false); |
| 680 | + fieldInfos = cacheFieldInfos(layer, fieldInfos, false, true); |
680 | 681 | expect(layer).toEqual(expectedLayer); |
681 | 682 | expect(fieldInfos).toEqual(expectedFieldInfos); |
682 | 683 | }); |
683 | 684 | }); |
684 | 685 |
|
| 686 | + describe("cacheIndexes", () => { |
| 687 | + it("should cache specific indexes and remove them from the layer", () => { |
| 688 | + const layer = { |
| 689 | + id: "0", |
| 690 | + objectIdField: "objectid", |
| 691 | + globalIdField: "globalid", |
| 692 | + indexes: [ |
| 693 | + { |
| 694 | + isUnique: true, |
| 695 | + fields: "B", |
| 696 | + indexType: "", |
| 697 | + name: "B_Unique", |
| 698 | + }, |
| 699 | + { |
| 700 | + isUnique: true, |
| 701 | + fields: "objectid", |
| 702 | + indexType: "", |
| 703 | + name: "C_objectid", |
| 704 | + }, |
| 705 | + { |
| 706 | + isUnique: false, |
| 707 | + fields: "A", |
| 708 | + indexType: "FullText", |
| 709 | + name: "A _ FullText", |
| 710 | + }, |
| 711 | + ], |
| 712 | + } as any; |
| 713 | + |
| 714 | + const id = "0"; |
| 715 | + let fieldInfos: any = {}; |
| 716 | + fieldInfos[id] = {}; |
| 717 | + fieldInfos = cacheIndexes(layer, fieldInfos); |
| 718 | + |
| 719 | + const expectedLayer = { |
| 720 | + id: "0", |
| 721 | + objectIdField: "objectid", |
| 722 | + globalIdField: "globalid", |
| 723 | + }; |
| 724 | + expect(layer).toEqual(expectedLayer); |
| 725 | + expect(fieldInfos["0"].indexes.length).toEqual(2); |
| 726 | + expect(fieldInfos["0"].indexes[1].name).toEqual("A_FullText"); |
| 727 | + }); |
| 728 | + }); |
| 729 | + |
685 | 730 | describe("cacheContingentValues", () => { |
686 | 731 | it("should get contingent values from feature service properties", () => { |
687 | 732 | const id = "0"; |
@@ -3607,7 +3652,7 @@ describe("Module `featureServiceHelpers`: utility functions for feature-service |
3607 | 3652 | const layer1 = mockItems.getAGOLLayerOrTable(1, "ROW Permit Comment", "Table", [ |
3608 | 3653 | mockItems.createAGOLRelationship(0, 1, "esriRelRoleDestination"), |
3609 | 3654 | ]); |
3610 | | - const fieldInfos = cacheFieldInfos(layer1, cacheFieldInfos(layer0, {}, false), false); |
| 3655 | + const fieldInfos = cacheFieldInfos(layer1, cacheFieldInfos(layer0, {}, false, false), false, false); |
3611 | 3656 |
|
3612 | 3657 | Object.keys(fieldInfos).forEach((k) => { |
3613 | 3658 | fieldInfos[k].sourceFields[1].visible = false; |
|
0 commit comments