@itwin/grouping-mapping-widget 0.9.0 → 0.9.2

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.
Files changed (85) hide show
  1. package/lib/cjs/test/GroupPropertyUtils.test.js +61 -1
  2. package/lib/cjs/test/GroupPropertyUtils.test.js.map +1 -1
  3. package/lib/cjs/test/GroupingMappingCustomUI.test.js +44 -53
  4. package/lib/cjs/test/GroupingMappingCustomUI.test.js.map +1 -1
  5. package/lib/cjs/test/QueryBuilder.test.js +30 -2
  6. package/lib/cjs/test/QueryBuilder.test.js.map +1 -1
  7. package/lib/cjs/test/QueryBuilder.testdata.js +471 -7
  8. package/lib/cjs/test/QueryBuilder.testdata.js.map +1 -1
  9. package/lib/cjs/test/QueryBuilderTestData.d.ts +3 -1
  10. package/lib/cjs/test/QueryBuilderTestData.js.map +1 -1
  11. package/lib/cjs/widget/components/GroupAction.js +2 -21
  12. package/lib/cjs/widget/components/GroupAction.js.map +1 -1
  13. package/lib/cjs/widget/components/GroupPropertyUtils.js +2 -1
  14. package/lib/cjs/widget/components/GroupPropertyUtils.js.map +1 -1
  15. package/lib/cjs/widget/components/GroupQueryBuilderContainer.d.ts +3 -2
  16. package/lib/cjs/widget/components/GroupQueryBuilderContainer.js +38 -45
  17. package/lib/cjs/widget/components/GroupQueryBuilderContainer.js.map +1 -1
  18. package/lib/cjs/widget/components/Grouping.js +1 -1
  19. package/lib/cjs/widget/components/Grouping.js.map +1 -1
  20. package/lib/cjs/widget/components/Grouping.scss +1 -1
  21. package/lib/cjs/widget/components/QueryBuilder.d.ts +35 -21
  22. package/lib/cjs/widget/components/QueryBuilder.js +153 -181
  23. package/lib/cjs/widget/components/QueryBuilder.js.map +1 -1
  24. package/lib/cjs/widget/components/context/PropertyGridWrapperContext.d.ts +15 -0
  25. package/lib/cjs/widget/components/context/{GroupQueryBuilderContext.js → PropertyGridWrapperContext.js} +13 -9
  26. package/lib/cjs/widget/components/context/PropertyGridWrapperContext.js.map +1 -0
  27. package/lib/cjs/widget/components/property-grid/PropertyGrid.d.ts +1 -1
  28. package/lib/cjs/widget/components/property-grid/PropertyGrid.js +2 -2
  29. package/lib/cjs/widget/components/property-grid/PropertyGrid.js.map +1 -1
  30. package/lib/cjs/widget/components/property-grid/PropertyGridWrapper.d.ts +10 -4
  31. package/lib/cjs/widget/components/property-grid/PropertyGridWrapper.js +18 -8
  32. package/lib/cjs/widget/components/property-grid/PropertyGridWrapper.js.map +1 -1
  33. package/lib/cjs/widget/components/property-grid/PropertyView.d.ts +1 -1
  34. package/lib/cjs/widget/components/property-grid/PropertyView.js +46 -60
  35. package/lib/cjs/widget/components/property-grid/PropertyView.js.map +1 -1
  36. package/lib/cjs/widget/components/viewerUtils.js +1 -3
  37. package/lib/cjs/widget/components/viewerUtils.js.map +1 -1
  38. package/lib/esm/test/GroupPropertyUtils.test.js +61 -1
  39. package/lib/esm/test/GroupPropertyUtils.test.js.map +1 -1
  40. package/lib/esm/test/GroupingMappingCustomUI.test.js +45 -54
  41. package/lib/esm/test/GroupingMappingCustomUI.test.js.map +1 -1
  42. package/lib/esm/test/QueryBuilder.test.js +31 -3
  43. package/lib/esm/test/QueryBuilder.test.js.map +1 -1
  44. package/lib/esm/test/QueryBuilder.testdata.js +471 -7
  45. package/lib/esm/test/QueryBuilder.testdata.js.map +1 -1
  46. package/lib/esm/test/QueryBuilderTestData.d.ts +3 -1
  47. package/lib/esm/test/QueryBuilderTestData.js.map +1 -1
  48. package/lib/esm/widget/components/GroupAction.js +2 -21
  49. package/lib/esm/widget/components/GroupAction.js.map +1 -1
  50. package/lib/esm/widget/components/GroupPropertyUtils.js +2 -1
  51. package/lib/esm/widget/components/GroupPropertyUtils.js.map +1 -1
  52. package/lib/esm/widget/components/GroupQueryBuilderContainer.d.ts +3 -2
  53. package/lib/esm/widget/components/GroupQueryBuilderContainer.js +34 -25
  54. package/lib/esm/widget/components/GroupQueryBuilderContainer.js.map +1 -1
  55. package/lib/esm/widget/components/Grouping.js +1 -1
  56. package/lib/esm/widget/components/Grouping.js.map +1 -1
  57. package/lib/esm/widget/components/Grouping.scss +1 -1
  58. package/lib/esm/widget/components/QueryBuilder.d.ts +35 -21
  59. package/lib/esm/widget/components/QueryBuilder.js +153 -181
  60. package/lib/esm/widget/components/QueryBuilder.js.map +1 -1
  61. package/lib/esm/widget/components/context/PropertyGridWrapperContext.d.ts +15 -0
  62. package/lib/esm/widget/components/context/{GroupQueryBuilderContext.js → PropertyGridWrapperContext.js} +11 -8
  63. package/lib/esm/widget/components/context/PropertyGridWrapperContext.js.map +1 -0
  64. package/lib/esm/widget/components/property-grid/PropertyGrid.d.ts +1 -1
  65. package/lib/esm/widget/components/property-grid/PropertyGrid.js +2 -2
  66. package/lib/esm/widget/components/property-grid/PropertyGrid.js.map +1 -1
  67. package/lib/esm/widget/components/property-grid/PropertyGridWrapper.d.ts +10 -4
  68. package/lib/esm/widget/components/property-grid/PropertyGridWrapper.js +16 -6
  69. package/lib/esm/widget/components/property-grid/PropertyGridWrapper.js.map +1 -1
  70. package/lib/esm/widget/components/property-grid/PropertyView.d.ts +1 -1
  71. package/lib/esm/widget/components/property-grid/PropertyView.js +32 -30
  72. package/lib/esm/widget/components/property-grid/PropertyView.js.map +1 -1
  73. package/lib/esm/widget/components/viewerUtils.js +1 -3
  74. package/lib/esm/widget/components/viewerUtils.js.map +1 -1
  75. package/package.json +2 -2
  76. package/lib/cjs/api/GroupQueryBuilderApi.d.ts +0 -15
  77. package/lib/cjs/api/GroupQueryBuilderApi.js +0 -27
  78. package/lib/cjs/api/GroupQueryBuilderApi.js.map +0 -1
  79. package/lib/cjs/widget/components/context/GroupQueryBuilderContext.d.ts +0 -16
  80. package/lib/cjs/widget/components/context/GroupQueryBuilderContext.js.map +0 -1
  81. package/lib/esm/api/GroupQueryBuilderApi.d.ts +0 -15
  82. package/lib/esm/api/GroupQueryBuilderApi.js +0 -23
  83. package/lib/esm/api/GroupQueryBuilderApi.js.map +0 -1
  84. package/lib/esm/widget/components/context/GroupQueryBuilderContext.d.ts +0 -16
  85. package/lib/esm/widget/components/context/GroupQueryBuilderContext.js.map +0 -1
@@ -301,7 +301,7 @@ describe("Group properties utilities", () => {
301
301
  const structPropertyClass = PropertyFieldsHelpers_1.createTestPropertyInfo({ classInfo: { id: "0", label: "", name: "Struct:Class" } });
302
302
  const structContentFieldDescription = {
303
303
  valueFormat: presentation_common_1.PropertyValueFormat.Struct,
304
- typeName: "NestedContentFieldType",
304
+ typeName: "StructType",
305
305
  members: [{
306
306
  name: "prop1",
307
307
  label: "prop one",
@@ -329,6 +329,66 @@ describe("Group properties utilities", () => {
329
329
  ];
330
330
  chai_1.assert.deepEqual(result, expectedResult);
331
331
  });
332
+ it("handle simple nested structs correctly", () => {
333
+ const structPropertyClass = PropertyFieldsHelpers_1.createTestPropertyInfo({ classInfo: { id: "0", label: "", name: "Struct:Class" } });
334
+ const structContentFieldDescription = {
335
+ valueFormat: presentation_common_1.PropertyValueFormat.Struct,
336
+ typeName: "StructType",
337
+ members: [{
338
+ name: "prop1",
339
+ label: "prop one",
340
+ type: {
341
+ typeName: "string",
342
+ valueFormat: presentation_common_1.PropertyValueFormat.Primitive,
343
+ },
344
+ },
345
+ {
346
+ name: "struct1",
347
+ label: "struct1",
348
+ type: {
349
+ typeName: "string",
350
+ valueFormat: presentation_common_1.PropertyValueFormat.Struct,
351
+ members: [{
352
+ name: "prop2",
353
+ label: "prop 2",
354
+ type: {
355
+ typeName: "string",
356
+ valueFormat: presentation_common_1.PropertyValueFormat.Primitive,
357
+ },
358
+ }],
359
+ },
360
+ }],
361
+ };
362
+ const simpleStructField = PropertyFieldsHelpers_1.createTestPropertiesContentField({ properties: [{ property: structPropertyClass }], type: structContentFieldDescription });
363
+ const result = GroupPropertyUtils_1.convertPresentationFields([simpleStructField]);
364
+ const expectedResult = [
365
+ {
366
+ displayLabel: "prop one",
367
+ sourceSchema: "*",
368
+ sourceClassName: "*",
369
+ ecPropertyTraversal: ["PropertyName", "prop1"],
370
+ propertyType: insights_client_1.DataType.String,
371
+ primitiveNavigationClass: "",
372
+ actualECClassName: "Struct:Class",
373
+ parentPropertyClassName: undefined,
374
+ key: "undefined|Struct:Class|PropertyName|prop1",
375
+ categoryLabel: "Test Category",
376
+ },
377
+ {
378
+ displayLabel: "prop 2",
379
+ sourceSchema: "*",
380
+ sourceClassName: "*",
381
+ ecPropertyTraversal: ["PropertyName", "struct1", "prop2"],
382
+ propertyType: insights_client_1.DataType.String,
383
+ primitiveNavigationClass: "",
384
+ actualECClassName: "Struct:Class",
385
+ parentPropertyClassName: undefined,
386
+ key: "undefined|Struct:Class|PropertyName|struct1|prop2",
387
+ categoryLabel: "Test Category",
388
+ },
389
+ ];
390
+ chai_1.assert.deepEqual(result, expectedResult);
391
+ });
332
392
  it("handle primitive navigation (Model)", () => {
333
393
  const modelClassInfo = PropertyFieldsHelpers_1.createTestECClassInfo({ name: "BisCore:Element", label: "Element" });
334
394
  const navigationClassInfo = PropertyFieldsHelpers_1.createTestECClassInfo({ name: "BisCore:ModelContainsElements", label: "ModelContainsElements" });
@@ -1 +1 @@
1
- {"version":3,"file":"GroupPropertyUtils.test.js","sourceRoot":"","sources":["../../../src/test/GroupPropertyUtils.test.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\nimport type { ECProperty } from \"@itwin/insights-client\";\nimport { DataType } from \"@itwin/insights-client\";\nimport type { PropertyMetaData } from \"../widget/components/GroupPropertyUtils\";\nimport { convertPresentationFields, convertToECProperties, findProperties} from \"../widget/components/GroupPropertyUtils\";\nimport { createTestECClassInfo, createTestNestedContentField, createTestPropertiesContentField, createTestPropertyInfo, createTestRelatedClassInfo } from \"./PropertyFieldsHelpers\";\nimport { assert, expect } from \"chai\";\nimport type { NavigationPropertyInfo, StructTypeDescription } from \"@itwin/presentation-common\";\nimport { PropertyValueFormat, RelationshipMeaning } from \"@itwin/presentation-common\";\n\ndescribe(\"Group properties utilities\", () => {\n it(\"one primitive string property\", () => {\n const propertyFields = [createTestPropertiesContentField({ properties: [{ property: createTestPropertyInfo() }] })];\n\n const result = convertPresentationFields(propertyFields);\n\n const expectedResult: PropertyMetaData[] = [\n {\n displayLabel: \"Properties Field\",\n sourceSchema: \"*\",\n sourceClassName: \"*\",\n ecPropertyTraversal: [\"PropertyName\"],\n propertyType: DataType.String,\n primitiveNavigationClass: \"\",\n actualECClassName: \"SchemaName:ClassName\",\n parentPropertyClassName: undefined,\n key: \"undefined|SchemaName:ClassName|PropertyName\",\n categoryLabel: \"Test Category\",\n },\n ];\n\n assert.deepEqual(result, expectedResult);\n });\n\n it(\"multiple primitive properies of different types\", () => {\n const testProperties = [createTestPropertyInfo({ name: \"propString\" }),\n createTestPropertyInfo({ name: \"propInt\", type: \"int\" }),\n createTestPropertyInfo({ name: \"propBool\", type: \"boolean\" }),\n createTestPropertyInfo({ name: \"propEnum\", type: \"enum\" }),\n createTestPropertyInfo({ name: \"propLong\", type: \"long\" }),\n createTestPropertyInfo({ name: \"propNumber\", type: \"number\" }),\n ];\n const propertyFields = testProperties.map((p) => createTestPropertiesContentField({ properties: [{ property: p }] }));\n\n const result = convertPresentationFields(propertyFields);\n\n const expectedResult: PropertyMetaData[] = [\n {\n displayLabel: \"Properties Field\",\n sourceSchema: \"*\",\n sourceClassName: \"*\",\n ecPropertyTraversal: [\"propString\"],\n propertyType: DataType.String,\n primitiveNavigationClass: \"\",\n actualECClassName: \"SchemaName:ClassName\",\n parentPropertyClassName: undefined,\n key: \"undefined|SchemaName:ClassName|propString\",\n categoryLabel: \"Test Category\",\n },\n {\n displayLabel: \"Properties Field\",\n sourceSchema: \"*\",\n sourceClassName: \"*\",\n ecPropertyTraversal: [\"propInt\"],\n propertyType: DataType.Integer,\n primitiveNavigationClass: \"\",\n actualECClassName: \"SchemaName:ClassName\",\n parentPropertyClassName: undefined,\n key: \"undefined|SchemaName:ClassName|propInt\",\n categoryLabel: \"Test Category\",\n },\n {\n displayLabel: \"Properties Field\",\n sourceSchema: \"*\",\n sourceClassName: \"*\",\n ecPropertyTraversal: [\"propBool\"],\n propertyType: DataType.Boolean,\n primitiveNavigationClass: \"\",\n actualECClassName: \"SchemaName:ClassName\",\n parentPropertyClassName: undefined,\n key: \"undefined|SchemaName:ClassName|propBool\",\n categoryLabel: \"Test Category\",\n },\n {\n displayLabel: \"Properties Field\",\n sourceSchema: \"*\",\n sourceClassName: \"*\",\n ecPropertyTraversal: [\"propEnum\"],\n propertyType: DataType.Integer,\n primitiveNavigationClass: \"\",\n actualECClassName: \"SchemaName:ClassName\",\n parentPropertyClassName: undefined,\n key: \"undefined|SchemaName:ClassName|propEnum\",\n categoryLabel: \"Test Category\",\n },\n {\n displayLabel: \"Properties Field\",\n sourceSchema: \"*\",\n sourceClassName: \"*\",\n ecPropertyTraversal: [\"propLong\"],\n propertyType: DataType.Integer,\n primitiveNavigationClass: \"\",\n actualECClassName: \"SchemaName:ClassName\",\n parentPropertyClassName: undefined,\n key: \"undefined|SchemaName:ClassName|propLong\",\n categoryLabel: \"Test Category\",\n },\n {\n displayLabel: \"Properties Field\",\n sourceSchema: \"*\",\n sourceClassName: \"*\",\n ecPropertyTraversal: [\"propNumber\"],\n propertyType: DataType.Number,\n primitiveNavigationClass: \"\",\n actualECClassName: \"SchemaName:ClassName\",\n parentPropertyClassName: undefined,\n key: \"undefined|SchemaName:ClassName|propNumber\",\n categoryLabel: \"Test Category\",\n },\n ];\n\n assert.deepEqual(result, expectedResult);\n });\n\n it(\"one BisCore:ElementOwnsUniqueAspect nested property\", () => {\n const propertiesField = createTestPropertiesContentField({\n properties: [{ property: createTestPropertyInfo({ name: \"prop1\" }) }],\n });\n\n const nestedAspectField = createTestNestedContentField({\n nestedFields: [propertiesField],\n relationshipMeaning: RelationshipMeaning.SameInstance,\n pathToPrimaryClass: [\n createTestRelatedClassInfo({\n sourceClassInfo: createTestECClassInfo({ name: \"Some:UniqueAspect\" }),\n relationshipInfo: createTestECClassInfo({ name: \"BisCore:ElementOwnsUniqueAspect\" }),\n targetClassInfo: createTestECClassInfo({ name: \"Schema:Class\" }),\n isForwardRelationship: false,\n isPolymorphicRelationship: true,\n }),\n ],\n });\n\n const result = convertPresentationFields([nestedAspectField]);\n\n const expectedResult: PropertyMetaData[] = [\n {\n displayLabel: \"Properties Field\",\n sourceSchema: \"SchemaName\",\n sourceClassName: \"ClassName\",\n ecPropertyTraversal: [\"prop1\"],\n propertyType: DataType.String,\n primitiveNavigationClass: \"\",\n actualECClassName: \"SchemaName:ClassName\",\n parentPropertyClassName: \"SchemaName:ClassName\",\n key: \"SchemaName:ClassName|SchemaName:ClassName|prop1\",\n categoryLabel: \"Test Category\",\n },\n ];\n\n assert.deepEqual(result, expectedResult);\n\n });\n\n it(\"one BisCore:ElementOwnsMultiAspects nested property\", () => {\n\n const propertiesField = createTestPropertiesContentField({\n properties: [{ property: createTestPropertyInfo({ name: \"prop1\" }) }],\n });\n\n const nestedAspectField = createTestNestedContentField({\n nestedFields: [propertiesField],\n relationshipMeaning: RelationshipMeaning.SameInstance,\n pathToPrimaryClass: [\n createTestRelatedClassInfo({\n sourceClassInfo: createTestECClassInfo({ name: \"Some:MultiAspect\" }),\n relationshipInfo: createTestECClassInfo({ name: \"BisCore:ElementOwnsMultiAspects\" }),\n targetClassInfo: createTestECClassInfo({ name: \"Schema:Class\" }),\n isForwardRelationship: false,\n isPolymorphicRelationship: true,\n }),\n ],\n });\n\n const result = convertPresentationFields([nestedAspectField]);\n\n const expectedResult: PropertyMetaData[] = [\n {\n displayLabel: \"Properties Field\",\n sourceSchema: \"SchemaName\",\n sourceClassName: \"ClassName\",\n ecPropertyTraversal: [\"prop1\"],\n propertyType: DataType.String,\n primitiveNavigationClass: \"\",\n actualECClassName: \"SchemaName:ClassName\",\n parentPropertyClassName: \"SchemaName:ClassName\",\n key: \"SchemaName:ClassName|SchemaName:ClassName|prop1\",\n categoryLabel: \"Test Category\",\n },\n ];\n\n assert.deepEqual(result, expectedResult);\n\n });\n\n it(\"one BisCore:GeometricElement3dHasTypeDefinition nested property\", () => {\n\n const propertiesField = createTestPropertiesContentField({\n properties: [{ property: createTestPropertyInfo({ name: \"prop1\" }) }],\n });\n\n const nestedAspectField = createTestNestedContentField({\n nestedFields: [propertiesField],\n relationshipMeaning: RelationshipMeaning.RelatedInstance,\n pathToPrimaryClass: [\n createTestRelatedClassInfo({\n sourceClassInfo: createTestECClassInfo({ name: \"Schema:SomeType\" }),\n relationshipInfo: createTestECClassInfo({ name: \"BisCore:GeometricElement3dHasTypeDefinition\" }),\n targetClassInfo: createTestECClassInfo({ name: \"Schema:Class\" }),\n isForwardRelationship: false,\n isPolymorphicRelationship: true,\n }),\n ],\n });\n\n const result = convertPresentationFields([nestedAspectField]);\n\n const expectedResult: PropertyMetaData[] = [\n {\n actualECClassName: \"SchemaName:ClassName\",\n categoryLabel: \"Test Category\",\n displayLabel: \"Properties Field\",\n ecPropertyTraversal: [\"TypeDefinition\", \"prop1\"],\n key: \"SchemaName:ClassName|SchemaName:ClassName|TypeDefinition|prop1\",\n parentPropertyClassName: \"SchemaName:ClassName\",\n primitiveNavigationClass: \"\",\n propertyType: DataType.String,\n sourceClassName: \"*\",\n sourceSchema: \"*\",\n },\n ];\n\n assert.deepEqual(result, expectedResult);\n\n });\n\n it(\"generate proper external source metadata\", () => {\n\n const propertyName = createTestPropertyInfo({ name: \"name\" });\n const propertyPath = createTestPropertyInfo({ name: \"path\" });\n const repositoryProperties = createTestPropertiesContentField({\n properties: [{ property: propertyName }, { property: propertyPath }],\n });\n\n const nestedExternalSource = createTestNestedContentField({\n nestedFields: [repositoryProperties],\n contentClassInfo: { name: \"BisCore:RepositoryLink\", id: \"\", label: \"\" },\n relationshipMeaning: RelationshipMeaning.SameInstance,\n pathToPrimaryClass: [\n createTestRelatedClassInfo({\n sourceClassInfo: createTestECClassInfo({ name: \"BisCore:ExternalSourceIsInRepository\" }),\n relationshipInfo: createTestECClassInfo({ name: \"BisCore:RepositoryLink\" }),\n targetClassInfo: createTestECClassInfo({ name: \"BisCore:ExternalSource\" }),\n isForwardRelationship: false,\n isPolymorphicRelationship: true,\n }),\n createTestRelatedClassInfo({\n sourceClassInfo: createTestECClassInfo({ name: \"BisCore:ElementIsFromSource\" }),\n relationshipInfo: createTestECClassInfo({ name: \"BisCore:ExternalSource\" }),\n targetClassInfo: createTestECClassInfo({ name: \"BisCore:ExternalSourceAspect\" }),\n isForwardRelationship: false,\n isPolymorphicRelationship: true,\n }),\n ],\n });\n\n const propertiesField = createTestPropertiesContentField({\n properties: [{ property: createTestPropertyInfo({ name: \"Identifier\" }) }],\n });\n\n const nestedSourceAspectField = createTestNestedContentField({\n nestedFields: [propertiesField, nestedExternalSource],\n relationshipMeaning: RelationshipMeaning.SameInstance,\n pathToPrimaryClass: [\n createTestRelatedClassInfo({\n sourceClassInfo: createTestECClassInfo({ name: \"BisCore:ExternalSourceAspect\" }),\n relationshipInfo: createTestECClassInfo({ name: \"BisCore:ElementOwnsMultiAspects\" }),\n targetClassInfo: createTestECClassInfo({ name: \"Schema:Class\" }),\n isForwardRelationship: false,\n isPolymorphicRelationship: true,\n }),\n ],\n });\n\n const result = convertPresentationFields([nestedSourceAspectField]);\n\n const expectedResult: PropertyMetaData[] = [\n {\n displayLabel: \"Properties Field\",\n sourceSchema: \"SchemaName\",\n sourceClassName: \"ClassName\",\n ecPropertyTraversal: [\"Identifier\"],\n propertyType: DataType.String,\n primitiveNavigationClass: \"\",\n actualECClassName: \"SchemaName:ClassName\",\n parentPropertyClassName: \"SchemaName:ClassName\",\n key: \"SchemaName:ClassName|SchemaName:ClassName|Identifier\",\n categoryLabel: \"Test Category\",\n },\n {\n displayLabel: \"Properties Field\",\n sourceSchema: \"SchemaName\",\n sourceClassName: \"ClassName\",\n ecPropertyTraversal: [\"Source\", \"Repository\", \"name\"],\n propertyType: DataType.String,\n primitiveNavigationClass: \"\",\n actualECClassName: \"SchemaName:ClassName\",\n parentPropertyClassName: \"BisCore:RepositoryLink\",\n key: \"BisCore:RepositoryLink|SchemaName:ClassName|Source|Repository|name\",\n categoryLabel: \"Test Category\",\n },\n {\n displayLabel: \"Properties Field\",\n sourceSchema: \"SchemaName\",\n sourceClassName: \"ClassName\",\n ecPropertyTraversal: [\"Source\", \"Repository\", \"path\"],\n propertyType: DataType.String,\n primitiveNavigationClass: \"\",\n actualECClassName: \"SchemaName:ClassName\",\n parentPropertyClassName: \"BisCore:RepositoryLink\",\n key: \"BisCore:RepositoryLink|SchemaName:ClassName|Source|Repository|path\",\n categoryLabel: \"Test Category\",\n },\n ];\n\n assert.deepEqual(result, expectedResult);\n\n });\n\n it(\"handle simple structs correctly\", () => {\n const structPropertyClass = createTestPropertyInfo({ classInfo: { id: \"0\", label: \"\", name: \"Struct:Class\" } });\n\n const structContentFieldDescription: StructTypeDescription = {\n valueFormat: PropertyValueFormat.Struct,\n typeName: \"NestedContentFieldType\",\n members: [{\n name: \"prop1\",\n label: \"prop one\",\n type: {\n typeName: \"string\",\n valueFormat: PropertyValueFormat.Primitive,\n },\n }],\n };\n const simpleStructField = createTestPropertiesContentField({ properties: [{ property: structPropertyClass }], type: structContentFieldDescription });\n\n const result = convertPresentationFields([simpleStructField]);\n\n const expectedResult: PropertyMetaData[] = [\n {\n displayLabel: \"prop one\",\n sourceSchema: \"*\",\n sourceClassName: \"*\",\n ecPropertyTraversal: [\"PropertyName\", \"prop1\"],\n propertyType: DataType.String,\n primitiveNavigationClass: \"\",\n actualECClassName: \"Struct:Class\",\n parentPropertyClassName: undefined,\n key: \"undefined|Struct:Class|PropertyName|prop1\",\n categoryLabel: \"Test Category\",\n },\n ];\n\n assert.deepEqual(result, expectedResult);\n }\n );\n\n it(\"handle primitive navigation (Model)\", () => {\n const modelClassInfo = createTestECClassInfo({ name: \"BisCore:Element\", label: \"Element\" });\n const navigationClassInfo = createTestECClassInfo({ name: \"BisCore:ModelContainsElements\", label: \"ModelContainsElements\" });\n\n const navigationPropertyInfo: NavigationPropertyInfo = {\n classInfo: navigationClassInfo,\n isForwardRelationship: false,\n // Target class does not matter\n targetClassInfo: createTestECClassInfo(),\n isTargetPolymorphic: true,\n\n };\n\n const modelPropertyInfo = createTestPropertyInfo({ name: \"Model\", classInfo: modelClassInfo, type: \"long\", navigationPropertyInfo });\n\n const simpleModelField = createTestPropertiesContentField({ label: \"Model\", properties: [{ property: modelPropertyInfo }] });\n\n const result = convertPresentationFields([simpleModelField]);\n\n const expectedResult: PropertyMetaData[] = [\n {\n displayLabel: \"Model\",\n sourceSchema: \"*\",\n sourceClassName: \"*\",\n ecPropertyTraversal: [\"Model\"],\n propertyType: DataType.String,\n primitiveNavigationClass: \"BisCore:ModelContainsElements\",\n actualECClassName: \"BisCore:Element\",\n parentPropertyClassName: undefined,\n key: \"undefined|BisCore:Element|Model\",\n categoryLabel: \"Test Category\",\n },\n ];\n\n assert.deepEqual(result, expectedResult);\n }\n );\n\n it(\"convert PropertyMetaData non primitive navigation into ECProperty\", () => {\n const propertyMetaData: PropertyMetaData = {\n displayLabel: \"A Property\",\n sourceSchema: \"Schema\",\n sourceClassName: \"Class\",\n ecPropertyTraversal: [\"PropertyName\", \"SecondProperty\"],\n propertyType: DataType.String,\n primitiveNavigationClass: \"\",\n actualECClassName: \"SchemaName:ClassName\",\n parentPropertyClassName: undefined,\n key: \"undefined|SchemaName:ClassName|PropertyName\",\n categoryLabel: \"Test Category\",\n };\n\n const result = convertToECProperties(propertyMetaData);\n\n const expectedResult: ECProperty[] = [\n {\n ecSchemaName: \"Schema\",\n ecClassName: \"Class\",\n ecPropertyType: DataType.String,\n ecPropertyName: \"PropertyName.SecondProperty\",\n },\n ];\n\n assert.deepEqual(result, expectedResult);\n });\n\n it(\"convert Model PropertyMetaData primitive navigation into ECProperty\", () => {\n const propertyMetaData: PropertyMetaData = {\n displayLabel: \"Model\",\n sourceSchema: \"*\",\n sourceClassName: \"*\",\n ecPropertyTraversal: [\n \"Model\",\n ],\n propertyType: DataType.String,\n primitiveNavigationClass: \"BisCore:ModelContainsElements\",\n actualECClassName: \"BisCore:Element\",\n key: \"undefined|BisCore:Element|Model\",\n categoryLabel: \"Selected Item\",\n parentPropertyClassName: undefined,\n };\n\n const result = convertToECProperties(propertyMetaData);\n\n const expectedResult: ECProperty[] = [\n {\n ecSchemaName: \"*\",\n ecClassName: \"*\",\n ecPropertyType: DataType.String,\n ecPropertyName: \"Model.ModeledElement.UserLabel\",\n },\n {\n ecSchemaName: \"*\",\n ecClassName: \"*\",\n ecPropertyType: DataType.String,\n ecPropertyName: \"Model.ModeledElement.CodeValue\",\n },\n ];\n\n assert.deepEqual(result, expectedResult);\n });\n\n it(\"convert Category PropertyMetaData primitive navigation into ECProperty\", () => {\n const propertyMetaData: PropertyMetaData = {\n displayLabel: \"Category\",\n sourceSchema: \"*\",\n sourceClassName: \"*\",\n ecPropertyTraversal: [\n \"Category\",\n ],\n propertyType: DataType.String,\n primitiveNavigationClass: \"BisCore:GeometricElement3dIsInCategory\",\n actualECClassName: \"BisCore:GeometricElement3d\",\n key: \"undefined|BisCore:GeometricElement3d|Category\",\n categoryLabel: \"Selected Item\",\n parentPropertyClassName: undefined,\n };\n\n const result = convertToECProperties(propertyMetaData);\n\n const expectedResult: ECProperty[] = [\n {\n ecSchemaName: \"*\",\n ecClassName: \"*\",\n ecPropertyType: DataType.String,\n ecPropertyName: \"Category.UserLabel\",\n },\n {\n ecSchemaName: \"*\",\n ecClassName: \"*\",\n ecPropertyType: DataType.String,\n ecPropertyName: \"Category.CodeValue\",\n },\n ];\n\n assert.deepEqual(result, expectedResult);\n });\n\n it(\"convert Physical Material PropertyMetaData primitive navigation into an ECProperty\", () => {\n const propertyMetaData: PropertyMetaData = {\n displayLabel: \"Physical Material\",\n sourceSchema: \"*\",\n sourceClassName: \"*\",\n ecPropertyTraversal: [\n \"PhysicalMaterial\",\n ],\n propertyType: DataType.String,\n primitiveNavigationClass: \"BisCore:PhysicalElementIsOfPhysicalMaterial\",\n actualECClassName: \"BisCore:PhysicalElement\",\n key: \"undefined|BisCore:PhysicalElement|PhysicalMaterial\",\n categoryLabel: \"Selected Item\",\n parentPropertyClassName: undefined,\n };\n\n const result = convertToECProperties(propertyMetaData);\n\n const expectedResult: ECProperty[] = [\n {\n ecSchemaName: \"*\",\n ecClassName: \"*\",\n ecPropertyType: DataType.String,\n ecPropertyName: \"PhysicalMaterial.UserLabel\",\n },\n {\n ecSchemaName: \"*\",\n ecClassName: \"*\",\n ecPropertyType: DataType.String,\n ecPropertyName: \"PhysicalMaterial.CodeValue\",\n },\n ];\n\n assert.deepEqual(result, expectedResult);\n });\n\n it(\"find properties correctly\", () => {\n\n const propertiesMetaData: PropertyMetaData[] = [\n {\n displayLabel: \"Properties Field\",\n sourceSchema: \"*\",\n sourceClassName: \"*\",\n ecPropertyTraversal: [\"propString\"],\n propertyType: DataType.String,\n primitiveNavigationClass: \"\",\n actualECClassName: \"SchemaName:ClassName\",\n parentPropertyClassName: undefined,\n key: \"undefined|SchemaName:ClassName|propString\",\n categoryLabel: \"Test Category\",\n },\n {\n displayLabel: \"Properties Field\",\n sourceSchema: \"*\",\n sourceClassName: \"*\",\n ecPropertyTraversal: [\"propInt\"],\n propertyType: DataType.Integer,\n primitiveNavigationClass: \"\",\n actualECClassName: \"SchemaName:ClassName\",\n parentPropertyClassName: undefined,\n key: \"undefined|SchemaName:ClassName|propInt\",\n categoryLabel: \"Test Category\",\n },\n ];\n\n const ecProperties: ECProperty[] = [\n {\n ecSchemaName: \"*\",\n ecClassName: \"*\",\n ecPropertyType: DataType.String,\n ecPropertyName: \"propString\",\n },\n {\n ecSchemaName: \"*\",\n ecClassName: \"*\",\n ecPropertyType: DataType.Integer,\n ecPropertyName: \"propInt\",\n },\n ];\n\n const result = findProperties(ecProperties, propertiesMetaData);\n\n assert.deepEqual(result, propertiesMetaData);\n\n });\n\n it(\"can find properties generated from a single property\", () => {\n\n const propertiesMetaData: PropertyMetaData[] = [{\n displayLabel: \"Model\",\n sourceSchema: \"*\",\n sourceClassName: \"*\",\n ecPropertyTraversal: [\n \"Model\",\n ],\n propertyType: DataType.String,\n primitiveNavigationClass: \"BisCore:ModelContainsElements\",\n actualECClassName: \"BisCore:Element\",\n key: \"undefined|BisCore:Element|Model\",\n categoryLabel: \"Selected Item\",\n parentPropertyClassName: undefined,\n }];\n\n const ecProperties: ECProperty[] = [\n {\n ecSchemaName: \"*\",\n ecClassName: \"*\",\n ecPropertyType: DataType.String,\n ecPropertyName: \"Model.ModeledElement.UserLabel\",\n },\n {\n ecSchemaName: \"*\",\n ecClassName: \"*\",\n ecPropertyType: DataType.String,\n ecPropertyName: \"Model.ModeledElement.CodeValue\",\n },\n ];\n\n const result = findProperties(ecProperties, propertiesMetaData);\n assert.deepEqual(result, propertiesMetaData);\n\n });\n\n it(\"cannot find properties generated from a single property in the wrong order\", () => {\n\n const propertiesMetaData: PropertyMetaData[] = [{\n displayLabel: \"Model\",\n sourceSchema: \"*\",\n sourceClassName: \"*\",\n ecPropertyTraversal: [\n \"Model\",\n ],\n propertyType: DataType.String,\n primitiveNavigationClass: \"BisCore:ModelContainsElements\",\n actualECClassName: \"BisCore:Element\",\n key: \"undefined|BisCore:Element|Model\",\n categoryLabel: \"Selected Item\",\n parentPropertyClassName: undefined,\n }];\n\n const ecProperties: ECProperty[] = [\n {\n ecSchemaName: \"*\",\n ecClassName: \"*\",\n ecPropertyType: DataType.String,\n ecPropertyName: \"Model.ModeledElement.CodeValue\",\n },\n {\n ecSchemaName: \"*\",\n ecClassName: \"*\",\n ecPropertyType: DataType.String,\n ecPropertyName: \"Model.ModeledElement.UserLabel\",\n },\n ];\n\n const result = findProperties(ecProperties, propertiesMetaData);\n expect(result).to.be.of.length(0);\n });\n\n});\n"]}
1
+ {"version":3,"file":"GroupPropertyUtils.test.js","sourceRoot":"","sources":["../../../src/test/GroupPropertyUtils.test.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\nimport type { ECProperty } from \"@itwin/insights-client\";\nimport { DataType } from \"@itwin/insights-client\";\nimport type { PropertyMetaData } from \"../widget/components/GroupPropertyUtils\";\nimport { convertPresentationFields, convertToECProperties, findProperties } from \"../widget/components/GroupPropertyUtils\";\nimport { createTestECClassInfo, createTestNestedContentField, createTestPropertiesContentField, createTestPropertyInfo, createTestRelatedClassInfo } from \"./PropertyFieldsHelpers\";\nimport { assert, expect } from \"chai\";\nimport type { NavigationPropertyInfo, StructTypeDescription } from \"@itwin/presentation-common\";\nimport { PropertyValueFormat, RelationshipMeaning } from \"@itwin/presentation-common\";\n\ndescribe(\"Group properties utilities\", () => {\n it(\"one primitive string property\", () => {\n const propertyFields = [createTestPropertiesContentField({ properties: [{ property: createTestPropertyInfo() }] })];\n\n const result = convertPresentationFields(propertyFields);\n\n const expectedResult: PropertyMetaData[] = [\n {\n displayLabel: \"Properties Field\",\n sourceSchema: \"*\",\n sourceClassName: \"*\",\n ecPropertyTraversal: [\"PropertyName\"],\n propertyType: DataType.String,\n primitiveNavigationClass: \"\",\n actualECClassName: \"SchemaName:ClassName\",\n parentPropertyClassName: undefined,\n key: \"undefined|SchemaName:ClassName|PropertyName\",\n categoryLabel: \"Test Category\",\n },\n ];\n\n assert.deepEqual(result, expectedResult);\n });\n\n it(\"multiple primitive properies of different types\", () => {\n const testProperties = [createTestPropertyInfo({ name: \"propString\" }),\n createTestPropertyInfo({ name: \"propInt\", type: \"int\" }),\n createTestPropertyInfo({ name: \"propBool\", type: \"boolean\" }),\n createTestPropertyInfo({ name: \"propEnum\", type: \"enum\" }),\n createTestPropertyInfo({ name: \"propLong\", type: \"long\" }),\n createTestPropertyInfo({ name: \"propNumber\", type: \"number\" }),\n ];\n const propertyFields = testProperties.map((p) => createTestPropertiesContentField({ properties: [{ property: p }] }));\n\n const result = convertPresentationFields(propertyFields);\n\n const expectedResult: PropertyMetaData[] = [\n {\n displayLabel: \"Properties Field\",\n sourceSchema: \"*\",\n sourceClassName: \"*\",\n ecPropertyTraversal: [\"propString\"],\n propertyType: DataType.String,\n primitiveNavigationClass: \"\",\n actualECClassName: \"SchemaName:ClassName\",\n parentPropertyClassName: undefined,\n key: \"undefined|SchemaName:ClassName|propString\",\n categoryLabel: \"Test Category\",\n },\n {\n displayLabel: \"Properties Field\",\n sourceSchema: \"*\",\n sourceClassName: \"*\",\n ecPropertyTraversal: [\"propInt\"],\n propertyType: DataType.Integer,\n primitiveNavigationClass: \"\",\n actualECClassName: \"SchemaName:ClassName\",\n parentPropertyClassName: undefined,\n key: \"undefined|SchemaName:ClassName|propInt\",\n categoryLabel: \"Test Category\",\n },\n {\n displayLabel: \"Properties Field\",\n sourceSchema: \"*\",\n sourceClassName: \"*\",\n ecPropertyTraversal: [\"propBool\"],\n propertyType: DataType.Boolean,\n primitiveNavigationClass: \"\",\n actualECClassName: \"SchemaName:ClassName\",\n parentPropertyClassName: undefined,\n key: \"undefined|SchemaName:ClassName|propBool\",\n categoryLabel: \"Test Category\",\n },\n {\n displayLabel: \"Properties Field\",\n sourceSchema: \"*\",\n sourceClassName: \"*\",\n ecPropertyTraversal: [\"propEnum\"],\n propertyType: DataType.Integer,\n primitiveNavigationClass: \"\",\n actualECClassName: \"SchemaName:ClassName\",\n parentPropertyClassName: undefined,\n key: \"undefined|SchemaName:ClassName|propEnum\",\n categoryLabel: \"Test Category\",\n },\n {\n displayLabel: \"Properties Field\",\n sourceSchema: \"*\",\n sourceClassName: \"*\",\n ecPropertyTraversal: [\"propLong\"],\n propertyType: DataType.Integer,\n primitiveNavigationClass: \"\",\n actualECClassName: \"SchemaName:ClassName\",\n parentPropertyClassName: undefined,\n key: \"undefined|SchemaName:ClassName|propLong\",\n categoryLabel: \"Test Category\",\n },\n {\n displayLabel: \"Properties Field\",\n sourceSchema: \"*\",\n sourceClassName: \"*\",\n ecPropertyTraversal: [\"propNumber\"],\n propertyType: DataType.Number,\n primitiveNavigationClass: \"\",\n actualECClassName: \"SchemaName:ClassName\",\n parentPropertyClassName: undefined,\n key: \"undefined|SchemaName:ClassName|propNumber\",\n categoryLabel: \"Test Category\",\n },\n ];\n\n assert.deepEqual(result, expectedResult);\n });\n\n it(\"one BisCore:ElementOwnsUniqueAspect nested property\", () => {\n const propertiesField = createTestPropertiesContentField({\n properties: [{ property: createTestPropertyInfo({ name: \"prop1\" }) }],\n });\n\n const nestedAspectField = createTestNestedContentField({\n nestedFields: [propertiesField],\n relationshipMeaning: RelationshipMeaning.SameInstance,\n pathToPrimaryClass: [\n createTestRelatedClassInfo({\n sourceClassInfo: createTestECClassInfo({ name: \"Some:UniqueAspect\" }),\n relationshipInfo: createTestECClassInfo({ name: \"BisCore:ElementOwnsUniqueAspect\" }),\n targetClassInfo: createTestECClassInfo({ name: \"Schema:Class\" }),\n isForwardRelationship: false,\n isPolymorphicRelationship: true,\n }),\n ],\n });\n\n const result = convertPresentationFields([nestedAspectField]);\n\n const expectedResult: PropertyMetaData[] = [\n {\n displayLabel: \"Properties Field\",\n sourceSchema: \"SchemaName\",\n sourceClassName: \"ClassName\",\n ecPropertyTraversal: [\"prop1\"],\n propertyType: DataType.String,\n primitiveNavigationClass: \"\",\n actualECClassName: \"SchemaName:ClassName\",\n parentPropertyClassName: \"SchemaName:ClassName\",\n key: \"SchemaName:ClassName|SchemaName:ClassName|prop1\",\n categoryLabel: \"Test Category\",\n },\n ];\n\n assert.deepEqual(result, expectedResult);\n\n });\n\n it(\"one BisCore:ElementOwnsMultiAspects nested property\", () => {\n\n const propertiesField = createTestPropertiesContentField({\n properties: [{ property: createTestPropertyInfo({ name: \"prop1\" }) }],\n });\n\n const nestedAspectField = createTestNestedContentField({\n nestedFields: [propertiesField],\n relationshipMeaning: RelationshipMeaning.SameInstance,\n pathToPrimaryClass: [\n createTestRelatedClassInfo({\n sourceClassInfo: createTestECClassInfo({ name: \"Some:MultiAspect\" }),\n relationshipInfo: createTestECClassInfo({ name: \"BisCore:ElementOwnsMultiAspects\" }),\n targetClassInfo: createTestECClassInfo({ name: \"Schema:Class\" }),\n isForwardRelationship: false,\n isPolymorphicRelationship: true,\n }),\n ],\n });\n\n const result = convertPresentationFields([nestedAspectField]);\n\n const expectedResult: PropertyMetaData[] = [\n {\n displayLabel: \"Properties Field\",\n sourceSchema: \"SchemaName\",\n sourceClassName: \"ClassName\",\n ecPropertyTraversal: [\"prop1\"],\n propertyType: DataType.String,\n primitiveNavigationClass: \"\",\n actualECClassName: \"SchemaName:ClassName\",\n parentPropertyClassName: \"SchemaName:ClassName\",\n key: \"SchemaName:ClassName|SchemaName:ClassName|prop1\",\n categoryLabel: \"Test Category\",\n },\n ];\n\n assert.deepEqual(result, expectedResult);\n\n });\n\n it(\"one BisCore:GeometricElement3dHasTypeDefinition nested property\", () => {\n\n const propertiesField = createTestPropertiesContentField({\n properties: [{ property: createTestPropertyInfo({ name: \"prop1\" }) }],\n });\n\n const nestedAspectField = createTestNestedContentField({\n nestedFields: [propertiesField],\n relationshipMeaning: RelationshipMeaning.RelatedInstance,\n pathToPrimaryClass: [\n createTestRelatedClassInfo({\n sourceClassInfo: createTestECClassInfo({ name: \"Schema:SomeType\" }),\n relationshipInfo: createTestECClassInfo({ name: \"BisCore:GeometricElement3dHasTypeDefinition\" }),\n targetClassInfo: createTestECClassInfo({ name: \"Schema:Class\" }),\n isForwardRelationship: false,\n isPolymorphicRelationship: true,\n }),\n ],\n });\n\n const result = convertPresentationFields([nestedAspectField]);\n\n const expectedResult: PropertyMetaData[] = [\n {\n actualECClassName: \"SchemaName:ClassName\",\n categoryLabel: \"Test Category\",\n displayLabel: \"Properties Field\",\n ecPropertyTraversal: [\"TypeDefinition\", \"prop1\"],\n key: \"SchemaName:ClassName|SchemaName:ClassName|TypeDefinition|prop1\",\n parentPropertyClassName: \"SchemaName:ClassName\",\n primitiveNavigationClass: \"\",\n propertyType: DataType.String,\n sourceClassName: \"*\",\n sourceSchema: \"*\",\n },\n ];\n\n assert.deepEqual(result, expectedResult);\n\n });\n\n it(\"generate proper external source metadata\", () => {\n\n const propertyName = createTestPropertyInfo({ name: \"name\" });\n const propertyPath = createTestPropertyInfo({ name: \"path\" });\n const repositoryProperties = createTestPropertiesContentField({\n properties: [{ property: propertyName }, { property: propertyPath }],\n });\n\n const nestedExternalSource = createTestNestedContentField({\n nestedFields: [repositoryProperties],\n contentClassInfo: { name: \"BisCore:RepositoryLink\", id: \"\", label: \"\" },\n relationshipMeaning: RelationshipMeaning.SameInstance,\n pathToPrimaryClass: [\n createTestRelatedClassInfo({\n sourceClassInfo: createTestECClassInfo({ name: \"BisCore:ExternalSourceIsInRepository\" }),\n relationshipInfo: createTestECClassInfo({ name: \"BisCore:RepositoryLink\" }),\n targetClassInfo: createTestECClassInfo({ name: \"BisCore:ExternalSource\" }),\n isForwardRelationship: false,\n isPolymorphicRelationship: true,\n }),\n createTestRelatedClassInfo({\n sourceClassInfo: createTestECClassInfo({ name: \"BisCore:ElementIsFromSource\" }),\n relationshipInfo: createTestECClassInfo({ name: \"BisCore:ExternalSource\" }),\n targetClassInfo: createTestECClassInfo({ name: \"BisCore:ExternalSourceAspect\" }),\n isForwardRelationship: false,\n isPolymorphicRelationship: true,\n }),\n ],\n });\n\n const propertiesField = createTestPropertiesContentField({\n properties: [{ property: createTestPropertyInfo({ name: \"Identifier\" }) }],\n });\n\n const nestedSourceAspectField = createTestNestedContentField({\n nestedFields: [propertiesField, nestedExternalSource],\n relationshipMeaning: RelationshipMeaning.SameInstance,\n pathToPrimaryClass: [\n createTestRelatedClassInfo({\n sourceClassInfo: createTestECClassInfo({ name: \"BisCore:ExternalSourceAspect\" }),\n relationshipInfo: createTestECClassInfo({ name: \"BisCore:ElementOwnsMultiAspects\" }),\n targetClassInfo: createTestECClassInfo({ name: \"Schema:Class\" }),\n isForwardRelationship: false,\n isPolymorphicRelationship: true,\n }),\n ],\n });\n\n const result = convertPresentationFields([nestedSourceAspectField]);\n\n const expectedResult: PropertyMetaData[] = [\n {\n displayLabel: \"Properties Field\",\n sourceSchema: \"SchemaName\",\n sourceClassName: \"ClassName\",\n ecPropertyTraversal: [\"Identifier\"],\n propertyType: DataType.String,\n primitiveNavigationClass: \"\",\n actualECClassName: \"SchemaName:ClassName\",\n parentPropertyClassName: \"SchemaName:ClassName\",\n key: \"SchemaName:ClassName|SchemaName:ClassName|Identifier\",\n categoryLabel: \"Test Category\",\n },\n {\n displayLabel: \"Properties Field\",\n sourceSchema: \"SchemaName\",\n sourceClassName: \"ClassName\",\n ecPropertyTraversal: [\"Source\", \"Repository\", \"name\"],\n propertyType: DataType.String,\n primitiveNavigationClass: \"\",\n actualECClassName: \"SchemaName:ClassName\",\n parentPropertyClassName: \"BisCore:RepositoryLink\",\n key: \"BisCore:RepositoryLink|SchemaName:ClassName|Source|Repository|name\",\n categoryLabel: \"Test Category\",\n },\n {\n displayLabel: \"Properties Field\",\n sourceSchema: \"SchemaName\",\n sourceClassName: \"ClassName\",\n ecPropertyTraversal: [\"Source\", \"Repository\", \"path\"],\n propertyType: DataType.String,\n primitiveNavigationClass: \"\",\n actualECClassName: \"SchemaName:ClassName\",\n parentPropertyClassName: \"BisCore:RepositoryLink\",\n key: \"BisCore:RepositoryLink|SchemaName:ClassName|Source|Repository|path\",\n categoryLabel: \"Test Category\",\n },\n ];\n\n assert.deepEqual(result, expectedResult);\n\n });\n\n it(\"handle simple structs correctly\", () => {\n const structPropertyClass = createTestPropertyInfo({ classInfo: { id: \"0\", label: \"\", name: \"Struct:Class\" } });\n\n const structContentFieldDescription: StructTypeDescription = {\n valueFormat: PropertyValueFormat.Struct,\n typeName: \"StructType\",\n members: [{\n name: \"prop1\",\n label: \"prop one\",\n type: {\n typeName: \"string\",\n valueFormat: PropertyValueFormat.Primitive,\n },\n }],\n };\n const simpleStructField = createTestPropertiesContentField({ properties: [{ property: structPropertyClass }], type: structContentFieldDescription });\n\n const result = convertPresentationFields([simpleStructField]);\n\n const expectedResult: PropertyMetaData[] = [\n {\n displayLabel: \"prop one\",\n sourceSchema: \"*\",\n sourceClassName: \"*\",\n ecPropertyTraversal: [\"PropertyName\", \"prop1\"],\n propertyType: DataType.String,\n primitiveNavigationClass: \"\",\n actualECClassName: \"Struct:Class\",\n parentPropertyClassName: undefined,\n key: \"undefined|Struct:Class|PropertyName|prop1\",\n categoryLabel: \"Test Category\",\n },\n ];\n\n assert.deepEqual(result, expectedResult);\n }\n );\n\n it(\"handle simple nested structs correctly\", () => {\n const structPropertyClass = createTestPropertyInfo({ classInfo: { id: \"0\", label: \"\", name: \"Struct:Class\" } });\n\n const structContentFieldDescription: StructTypeDescription = {\n valueFormat: PropertyValueFormat.Struct,\n typeName: \"StructType\",\n members: [{\n name: \"prop1\",\n label: \"prop one\",\n type: {\n typeName: \"string\",\n valueFormat: PropertyValueFormat.Primitive,\n },\n },\n {\n name: \"struct1\",\n label: \"struct1\",\n type: {\n typeName: \"string\",\n valueFormat: PropertyValueFormat.Struct,\n members: [{\n name: \"prop2\",\n label: \"prop 2\",\n type: {\n typeName: \"string\",\n valueFormat: PropertyValueFormat.Primitive,\n },\n }],\n },\n }],\n };\n\n const simpleStructField = createTestPropertiesContentField({ properties: [{ property: structPropertyClass }], type: structContentFieldDescription });\n\n const result = convertPresentationFields([simpleStructField]);\n\n const expectedResult: PropertyMetaData[] = [\n {\n displayLabel: \"prop one\",\n sourceSchema: \"*\",\n sourceClassName: \"*\",\n ecPropertyTraversal: [\"PropertyName\", \"prop1\"],\n propertyType: DataType.String,\n primitiveNavigationClass: \"\",\n actualECClassName: \"Struct:Class\",\n parentPropertyClassName: undefined,\n key: \"undefined|Struct:Class|PropertyName|prop1\",\n categoryLabel: \"Test Category\",\n },\n {\n displayLabel: \"prop 2\",\n sourceSchema: \"*\",\n sourceClassName: \"*\",\n ecPropertyTraversal: [\"PropertyName\", \"struct1\", \"prop2\"],\n propertyType: DataType.String,\n primitiveNavigationClass: \"\",\n actualECClassName: \"Struct:Class\",\n parentPropertyClassName: undefined,\n key: \"undefined|Struct:Class|PropertyName|struct1|prop2\",\n categoryLabel: \"Test Category\",\n },\n ];\n\n assert.deepEqual(result, expectedResult);\n }\n );\n\n it(\"handle primitive navigation (Model)\", () => {\n const modelClassInfo = createTestECClassInfo({ name: \"BisCore:Element\", label: \"Element\" });\n const navigationClassInfo = createTestECClassInfo({ name: \"BisCore:ModelContainsElements\", label: \"ModelContainsElements\" });\n\n const navigationPropertyInfo: NavigationPropertyInfo = {\n classInfo: navigationClassInfo,\n isForwardRelationship: false,\n // Target class does not matter\n targetClassInfo: createTestECClassInfo(),\n isTargetPolymorphic: true,\n\n };\n\n const modelPropertyInfo = createTestPropertyInfo({ name: \"Model\", classInfo: modelClassInfo, type: \"long\", navigationPropertyInfo });\n\n const simpleModelField = createTestPropertiesContentField({ label: \"Model\", properties: [{ property: modelPropertyInfo }] });\n\n const result = convertPresentationFields([simpleModelField]);\n\n const expectedResult: PropertyMetaData[] = [\n {\n displayLabel: \"Model\",\n sourceSchema: \"*\",\n sourceClassName: \"*\",\n ecPropertyTraversal: [\"Model\"],\n propertyType: DataType.String,\n primitiveNavigationClass: \"BisCore:ModelContainsElements\",\n actualECClassName: \"BisCore:Element\",\n parentPropertyClassName: undefined,\n key: \"undefined|BisCore:Element|Model\",\n categoryLabel: \"Test Category\",\n },\n ];\n\n assert.deepEqual(result, expectedResult);\n }\n );\n\n it(\"convert PropertyMetaData non primitive navigation into ECProperty\", () => {\n const propertyMetaData: PropertyMetaData = {\n displayLabel: \"A Property\",\n sourceSchema: \"Schema\",\n sourceClassName: \"Class\",\n ecPropertyTraversal: [\"PropertyName\", \"SecondProperty\"],\n propertyType: DataType.String,\n primitiveNavigationClass: \"\",\n actualECClassName: \"SchemaName:ClassName\",\n parentPropertyClassName: undefined,\n key: \"undefined|SchemaName:ClassName|PropertyName\",\n categoryLabel: \"Test Category\",\n };\n\n const result = convertToECProperties(propertyMetaData);\n\n const expectedResult: ECProperty[] = [\n {\n ecSchemaName: \"Schema\",\n ecClassName: \"Class\",\n ecPropertyType: DataType.String,\n ecPropertyName: \"PropertyName.SecondProperty\",\n },\n ];\n\n assert.deepEqual(result, expectedResult);\n });\n\n it(\"convert Model PropertyMetaData primitive navigation into ECProperty\", () => {\n const propertyMetaData: PropertyMetaData = {\n displayLabel: \"Model\",\n sourceSchema: \"*\",\n sourceClassName: \"*\",\n ecPropertyTraversal: [\n \"Model\",\n ],\n propertyType: DataType.String,\n primitiveNavigationClass: \"BisCore:ModelContainsElements\",\n actualECClassName: \"BisCore:Element\",\n key: \"undefined|BisCore:Element|Model\",\n categoryLabel: \"Selected Item\",\n parentPropertyClassName: undefined,\n };\n\n const result = convertToECProperties(propertyMetaData);\n\n const expectedResult: ECProperty[] = [\n {\n ecSchemaName: \"*\",\n ecClassName: \"*\",\n ecPropertyType: DataType.String,\n ecPropertyName: \"Model.ModeledElement.UserLabel\",\n },\n {\n ecSchemaName: \"*\",\n ecClassName: \"*\",\n ecPropertyType: DataType.String,\n ecPropertyName: \"Model.ModeledElement.CodeValue\",\n },\n ];\n\n assert.deepEqual(result, expectedResult);\n });\n\n it(\"convert Category PropertyMetaData primitive navigation into ECProperty\", () => {\n const propertyMetaData: PropertyMetaData = {\n displayLabel: \"Category\",\n sourceSchema: \"*\",\n sourceClassName: \"*\",\n ecPropertyTraversal: [\n \"Category\",\n ],\n propertyType: DataType.String,\n primitiveNavigationClass: \"BisCore:GeometricElement3dIsInCategory\",\n actualECClassName: \"BisCore:GeometricElement3d\",\n key: \"undefined|BisCore:GeometricElement3d|Category\",\n categoryLabel: \"Selected Item\",\n parentPropertyClassName: undefined,\n };\n\n const result = convertToECProperties(propertyMetaData);\n\n const expectedResult: ECProperty[] = [\n {\n ecSchemaName: \"*\",\n ecClassName: \"*\",\n ecPropertyType: DataType.String,\n ecPropertyName: \"Category.UserLabel\",\n },\n {\n ecSchemaName: \"*\",\n ecClassName: \"*\",\n ecPropertyType: DataType.String,\n ecPropertyName: \"Category.CodeValue\",\n },\n ];\n\n assert.deepEqual(result, expectedResult);\n });\n\n it(\"convert Physical Material PropertyMetaData primitive navigation into an ECProperty\", () => {\n const propertyMetaData: PropertyMetaData = {\n displayLabel: \"Physical Material\",\n sourceSchema: \"*\",\n sourceClassName: \"*\",\n ecPropertyTraversal: [\n \"PhysicalMaterial\",\n ],\n propertyType: DataType.String,\n primitiveNavigationClass: \"BisCore:PhysicalElementIsOfPhysicalMaterial\",\n actualECClassName: \"BisCore:PhysicalElement\",\n key: \"undefined|BisCore:PhysicalElement|PhysicalMaterial\",\n categoryLabel: \"Selected Item\",\n parentPropertyClassName: undefined,\n };\n\n const result = convertToECProperties(propertyMetaData);\n\n const expectedResult: ECProperty[] = [\n {\n ecSchemaName: \"*\",\n ecClassName: \"*\",\n ecPropertyType: DataType.String,\n ecPropertyName: \"PhysicalMaterial.UserLabel\",\n },\n {\n ecSchemaName: \"*\",\n ecClassName: \"*\",\n ecPropertyType: DataType.String,\n ecPropertyName: \"PhysicalMaterial.CodeValue\",\n },\n ];\n\n assert.deepEqual(result, expectedResult);\n });\n\n it(\"find properties correctly\", () => {\n\n const propertiesMetaData: PropertyMetaData[] = [\n {\n displayLabel: \"Properties Field\",\n sourceSchema: \"*\",\n sourceClassName: \"*\",\n ecPropertyTraversal: [\"propString\"],\n propertyType: DataType.String,\n primitiveNavigationClass: \"\",\n actualECClassName: \"SchemaName:ClassName\",\n parentPropertyClassName: undefined,\n key: \"undefined|SchemaName:ClassName|propString\",\n categoryLabel: \"Test Category\",\n },\n {\n displayLabel: \"Properties Field\",\n sourceSchema: \"*\",\n sourceClassName: \"*\",\n ecPropertyTraversal: [\"propInt\"],\n propertyType: DataType.Integer,\n primitiveNavigationClass: \"\",\n actualECClassName: \"SchemaName:ClassName\",\n parentPropertyClassName: undefined,\n key: \"undefined|SchemaName:ClassName|propInt\",\n categoryLabel: \"Test Category\",\n },\n ];\n\n const ecProperties: ECProperty[] = [\n {\n ecSchemaName: \"*\",\n ecClassName: \"*\",\n ecPropertyType: DataType.String,\n ecPropertyName: \"propString\",\n },\n {\n ecSchemaName: \"*\",\n ecClassName: \"*\",\n ecPropertyType: DataType.Integer,\n ecPropertyName: \"propInt\",\n },\n ];\n\n const result = findProperties(ecProperties, propertiesMetaData);\n\n assert.deepEqual(result, propertiesMetaData);\n\n });\n\n it(\"can find properties generated from a single property\", () => {\n\n const propertiesMetaData: PropertyMetaData[] = [{\n displayLabel: \"Model\",\n sourceSchema: \"*\",\n sourceClassName: \"*\",\n ecPropertyTraversal: [\n \"Model\",\n ],\n propertyType: DataType.String,\n primitiveNavigationClass: \"BisCore:ModelContainsElements\",\n actualECClassName: \"BisCore:Element\",\n key: \"undefined|BisCore:Element|Model\",\n categoryLabel: \"Selected Item\",\n parentPropertyClassName: undefined,\n }];\n\n const ecProperties: ECProperty[] = [\n {\n ecSchemaName: \"*\",\n ecClassName: \"*\",\n ecPropertyType: DataType.String,\n ecPropertyName: \"Model.ModeledElement.UserLabel\",\n },\n {\n ecSchemaName: \"*\",\n ecClassName: \"*\",\n ecPropertyType: DataType.String,\n ecPropertyName: \"Model.ModeledElement.CodeValue\",\n },\n ];\n\n const result = findProperties(ecProperties, propertiesMetaData);\n assert.deepEqual(result, propertiesMetaData);\n\n });\n\n it(\"cannot find properties generated from a single property in the wrong order\", () => {\n\n const propertiesMetaData: PropertyMetaData[] = [{\n displayLabel: \"Model\",\n sourceSchema: \"*\",\n sourceClassName: \"*\",\n ecPropertyTraversal: [\n \"Model\",\n ],\n propertyType: DataType.String,\n primitiveNavigationClass: \"BisCore:ModelContainsElements\",\n actualECClassName: \"BisCore:Element\",\n key: \"undefined|BisCore:Element|Model\",\n categoryLabel: \"Selected Item\",\n parentPropertyClassName: undefined,\n }];\n\n const ecProperties: ECProperty[] = [\n {\n ecSchemaName: \"*\",\n ecClassName: \"*\",\n ecPropertyType: DataType.String,\n ecPropertyName: \"Model.ModeledElement.CodeValue\",\n },\n {\n ecSchemaName: \"*\",\n ecClassName: \"*\",\n ecPropertyType: DataType.String,\n ecPropertyName: \"Model.ModeledElement.UserLabel\",\n },\n ];\n\n const result = findProperties(ecProperties, propertiesMetaData);\n expect(result).to.be.of.length(0);\n });\n\n});\n"]}
@@ -32,10 +32,9 @@ const test_utils_1 = require("./test-utils");
32
32
  const faker_1 = require("@faker-js/faker");
33
33
  const grouping_mapping_widget_1 = require("../grouping-mapping-widget");
34
34
  const moq = __importStar(require("typemoq"));
35
- const core_frontend_1 = require("@itwin/core-frontend");
36
- const presentation_frontend_1 = require("@itwin/presentation-frontend");
37
- const core_common_1 = require("@itwin/core-common");
38
35
  const grouping_mapping_widget_2 = require("../grouping-mapping-widget");
36
+ const user_event_1 = __importDefault(require("@testing-library/user-event"));
37
+ const react_2 = require("@testing-library/react");
39
38
  const mockITwinId = faker_1.faker.datatype.uuid();
40
39
  const mockIModelId = faker_1.faker.datatype.uuid();
41
40
  const mockMappingId = faker_1.faker.datatype.uuid();
@@ -77,46 +76,47 @@ const groupsFactory = () => ({
77
76
  },
78
77
  });
79
78
  const connectionMock = moq.Mock.ofType();
80
- const selectionManagerMock = moq.Mock.ofType();
81
- const selectionScopesManagerMock = moq.Mock.ofType();
79
+ let groupingMappingCustomUIMock = [];
80
+ const mappingClientMock = moq.Mock.ofType();
82
81
  jest.mock("@itwin/appui-react", () => ({
83
82
  ...jest.requireActual("@itwin/appui-react"),
84
83
  useActiveIModelConnection: () => connectionMock.object,
85
84
  }));
86
- beforeAll(async () => {
87
- await core_frontend_1.NoRenderApp.startup({ localization: new core_common_1.EmptyLocalization() });
88
- await presentation_frontend_1.Presentation.initialize();
89
- const selectionSet = moq.Mock.ofType();
90
- const onChanged = moq.Mock.ofType();
91
- selectionSet.setup((x) => x.elements).returns(() => new Set([]));
92
- selectionSet.setup((x) => x.onChanged).returns(() => onChanged.object);
93
- connectionMock
94
- .setup((x) => x.selectionSet)
95
- .returns(() => selectionSet.object);
96
- connectionMock.setup((x) => x.iModelId).returns(() => mockIModelId);
97
- connectionMock.setup((x) => x.iTwinId).returns(() => mockITwinId);
98
- selectionManagerMock
99
- .setup((x) => x.selectionChange)
100
- .returns(() => new presentation_frontend_1.SelectionChangeEvent());
101
- selectionScopesManagerMock
102
- .setup(async (x) => x.getSelectionScopes(connectionMock.object))
103
- .returns(async () => []);
104
- selectionManagerMock
105
- .setup((x) => x.scopes)
106
- .returns(() => selectionScopesManagerMock.object);
107
- presentation_frontend_1.Presentation.setSelectionManager(selectionManagerMock.object);
108
- await test_utils_1.TestUtils.initializeUiFramework(connectionMock.object);
109
- });
85
+ const mockAccessToken = jest.fn().mockResolvedValue("Bearer eyJhbGci");
86
+ jest.mock("../widget/components/context/GroupingApiConfigContext", () => ({
87
+ ...jest.requireActual("../widget/components/context/GroupingApiConfigContext"),
88
+ useGroupingMappingApiConfig: () => ({
89
+ getAccessToken: mockAccessToken,
90
+ }),
91
+ }));
92
+ jest.mock("../widget/components/context/GroupingMappingCustomUIContext", () => ({
93
+ ...jest.requireActual("../widget/components/context/GroupingMappingCustomUIContext"),
94
+ useGroupingMappingCustomUI: () => groupingMappingCustomUIMock,
95
+ }));
96
+ jest.mock("../widget/components/context/MappingClientContext", () => ({
97
+ ...jest.requireActual("../widget/components/context/MappingClientContext"),
98
+ useMappingClient: () => mappingClientMock.object,
99
+ }));
100
+ const mockGroups = groupsFactory();
110
101
  describe("Groupings View with default UIs", () => {
102
+ beforeEach(async () => {
103
+ connectionMock.setup((x) => x.iModelId).returns(() => mockIModelId);
104
+ connectionMock.setup((x) => x.iTwinId).returns(() => mockITwinId);
105
+ const mockedAccessToken = await mockAccessToken();
106
+ mappingClientMock
107
+ .setup(async (x) => x.getGroups(mockedAccessToken, mockIModelId, mockMappingId))
108
+ .returns(async () => Promise.resolve(mockGroups.groups));
109
+ });
110
+ afterEach(() => {
111
+ connectionMock.reset();
112
+ mappingClientMock.reset();
113
+ groupingMappingCustomUIMock = [];
114
+ });
111
115
  it("List all groups and click on add group and edit group buttons", async () => {
112
116
  // Arange
113
- const mockGroups = groupsFactory();
114
- const mockedAccessToken = await test_utils_1.mockAccessToken();
115
- test_utils_1.mockMappingClient
116
- .setup(async (x) => x.getGroups(mockedAccessToken, mockIModelId, mockMappingId))
117
- .returns(async () => mockGroups.groups);
118
117
  // Act
119
- const { user } = test_utils_1.render(react_1.default.createElement(grouping_mapping_widget_1.Groupings, { mapping: mockMapping, goBack: jest.fn() }));
118
+ const user = user_event_1.default.setup();
119
+ react_2.render(react_1.default.createElement(grouping_mapping_widget_1.Groupings, { mapping: mockMapping, goBack: jest.fn() }));
120
120
  await test_utils_1.waitForElementToBeRemoved(() => test_utils_1.screen.getByText(/loading/i));
121
121
  // Assert
122
122
  const addButton = test_utils_1.screen.getAllByTestId("gmw-add-group-button");
@@ -161,11 +161,6 @@ describe("Groupings View with default UIs", () => {
161
161
  });
162
162
  it("Set up grouping custom UI - should replace default grouping methods", async () => {
163
163
  // Arange
164
- const mockGroups = groupsFactory();
165
- const mockedAccessToken = await test_utils_1.mockAccessToken();
166
- test_utils_1.mockMappingClient
167
- .setup(async (x) => x.getGroups(mockedAccessToken, mockIModelId, mockMappingId))
168
- .returns(async () => mockGroups.groups);
169
164
  const mockedUIComponent = (_props) => react_1.default.createElement("div");
170
165
  const mockGroupingUI = {
171
166
  type: grouping_mapping_widget_2.GroupingMappingCustomUIType.Grouping,
@@ -173,8 +168,10 @@ describe("Groupings View with default UIs", () => {
173
168
  displayLabel: "Mock Grouping UI",
174
169
  uiComponent: mockedUIComponent,
175
170
  };
171
+ groupingMappingCustomUIMock = [mockGroupingUI];
176
172
  // Act
177
- const { user } = test_utils_1.render(react_1.default.createElement(grouping_mapping_widget_1.Groupings, { mapping: mockMapping, goBack: jest.fn() }), [mockGroupingUI]);
173
+ const user = user_event_1.default.setup();
174
+ react_2.render(react_1.default.createElement(grouping_mapping_widget_1.Groupings, { mapping: mockMapping, goBack: jest.fn() }));
178
175
  await test_utils_1.waitForElementToBeRemoved(() => test_utils_1.screen.getByText(/loading/i));
179
176
  // Assert
180
177
  const addButton = test_utils_1.screen.getAllByTestId("gmw-add-group-button");
@@ -208,11 +205,6 @@ describe("Groupings View with default UIs", () => {
208
205
  });
209
206
  it("Set up context custom UI - should have default grouping methods and add context menu", async () => {
210
207
  // Arange
211
- const mockGroups = groupsFactory();
212
- const mockedAccessToken = await test_utils_1.mockAccessToken();
213
- test_utils_1.mockMappingClient
214
- .setup(async (x) => x.getGroups(mockedAccessToken, mockIModelId, mockMappingId))
215
- .returns(async () => mockGroups.groups);
216
208
  const mockedUIComponent = (_props) => react_1.default.createElement("div");
217
209
  const mockContextUI = {
218
210
  type: grouping_mapping_widget_2.GroupingMappingCustomUIType.Context,
@@ -220,8 +212,10 @@ describe("Groupings View with default UIs", () => {
220
212
  displayLabel: "Mock Grouping UI",
221
213
  uiComponent: mockedUIComponent,
222
214
  };
215
+ groupingMappingCustomUIMock = [mockContextUI];
223
216
  // Act
224
- const { user } = test_utils_1.render(react_1.default.createElement(grouping_mapping_widget_1.Groupings, { mapping: mockMapping, goBack: jest.fn() }), [mockContextUI]);
217
+ const user = user_event_1.default.setup();
218
+ react_2.render(react_1.default.createElement(grouping_mapping_widget_1.Groupings, { mapping: mockMapping, goBack: jest.fn() }));
225
219
  await test_utils_1.waitForElementToBeRemoved(() => test_utils_1.screen.getByText(/loading/i));
226
220
  // Assert
227
221
  const addButton = test_utils_1.screen.getAllByTestId("gmw-add-group-button");
@@ -254,11 +248,6 @@ describe("Groupings View with default UIs", () => {
254
248
  });
255
249
  it("Set up both grouping and context custom UI", async () => {
256
250
  // Arange
257
- const mockGroups = groupsFactory();
258
- const mockedAccessToken = await test_utils_1.mockAccessToken();
259
- test_utils_1.mockMappingClient
260
- .setup(async (x) => x.getGroups(mockedAccessToken, mockIModelId, mockMappingId))
261
- .returns(async () => mockGroups.groups);
262
251
  const mockedGroupingUIComponent = (_props) => react_1.default.createElement("div");
263
252
  const mockedContextUIComponent = (_props) => react_1.default.createElement("div");
264
253
  const mockGroupingUI = {
@@ -273,8 +262,10 @@ describe("Groupings View with default UIs", () => {
273
262
  displayLabel: "Mock Grouping UI",
274
263
  uiComponent: mockedContextUIComponent,
275
264
  };
265
+ groupingMappingCustomUIMock = [mockContextUI, mockGroupingUI];
276
266
  // Act
277
- const { user } = test_utils_1.render(react_1.default.createElement(grouping_mapping_widget_1.Groupings, { mapping: mockMapping, goBack: jest.fn() }), [mockContextUI, mockGroupingUI]);
267
+ const user = user_event_1.default.setup();
268
+ react_2.render(react_1.default.createElement(grouping_mapping_widget_1.Groupings, { mapping: mockMapping, goBack: jest.fn() }));
278
269
  await test_utils_1.waitForElementToBeRemoved(() => test_utils_1.screen.getByText(/loading/i));
279
270
  // Assert
280
271
  const addButton = test_utils_1.screen.getAllByTestId("gmw-add-group-button");
@@ -1 +1 @@
1
- {"version":3,"file":"GroupingMappingCustomUI.test.js","sourceRoot":"","sources":["../../../src/test/GroupingMappingCustomUI.test.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\nimport React from \"react\";\nimport \"@testing-library/jest-dom\";\nimport { mockAccessToken, mockMappingClient, render, screen, TestUtils, waitForElementToBeRemoved, within } from \"./test-utils\";\nimport { faker } from \"@faker-js/faker\";\nimport { Groupings } from \"../grouping-mapping-widget\";\nimport type { GroupCollection, Mapping } from \"@itwin/insights-client\";\nimport * as moq from \"typemoq\";\nimport type { IModelConnection, SelectionSet, SelectionSetEvent} from \"@itwin/core-frontend\";\nimport { NoRenderApp } from \"@itwin/core-frontend\";\nimport type { SelectionManager, SelectionScopesManager } from \"@itwin/presentation-frontend\";\nimport { Presentation, SelectionChangeEvent } from \"@itwin/presentation-frontend\";\nimport type { BeEvent } from \"@itwin/core-bentley\";\nimport { EmptyLocalization } from \"@itwin/core-common\";\nimport type { ContextCustomUIProps, GroupingCustomUIProps, GroupingMappingCustomUI} from \"../grouping-mapping-widget\";\nimport { GroupingMappingCustomUIType } from \"../grouping-mapping-widget\";\n\nconst mockITwinId = faker.datatype.uuid();\nconst mockIModelId = faker.datatype.uuid();\nconst mockMappingId = faker.datatype.uuid();\nconst mockMapping: Mapping = {\n id: mockMappingId,\n mappingName: \"mOcKmApPiNg1\",\n description: \"mOcKmApPiNgDeScRiPtIoN1\",\n createdBy: faker.random.alpha(),\n createdOn: faker.date.past().toDateString(),\n modifiedBy: faker.random.alpha(),\n modifiedOn: faker.date.past().toDateString(),\n extractionEnabled:false,\n _links: {\n imodel: {\n href: \"\",\n },\n },\n};\n\nconst groupsFactory = (): GroupCollection => ({\n groups: Array.from(\n { length: faker.datatype.number({ min: 3, max: 5 }) },\n (_, index) => ({\n id: `${faker.datatype.uuid()}`,\n groupName: `mOcKgRoUp${index}`,\n description: `mOcKgRoUpDeScRiPtIoN${index}`,\n query: `mOcKgRoUpQuErY${index}`,\n _links: {\n imodel: {\n href: \"\",\n },\n mapping: {\n href: \"\",\n },\n },\n })\n ),\n _links: {\n next: undefined,\n self: {\n href: \"\",\n },\n },\n});\n\nconst connectionMock = moq.Mock.ofType<IModelConnection>();\nconst selectionManagerMock = moq.Mock.ofType<SelectionManager>();\nconst selectionScopesManagerMock = moq.Mock.ofType<SelectionScopesManager>();\n\njest.mock(\"@itwin/appui-react\", () => ({\n ...jest.requireActual(\"@itwin/appui-react\"),\n useActiveIModelConnection: () => connectionMock.object,\n}));\n\nbeforeAll(async () => {\n await NoRenderApp.startup({localization: new EmptyLocalization()});\n await Presentation.initialize();\n const selectionSet = moq.Mock.ofType<SelectionSet>();\n const onChanged = moq.Mock.ofType<BeEvent<(ev: SelectionSetEvent) => void>>();\n selectionSet.setup((x) => x.elements).returns(() => new Set([]));\n selectionSet.setup((x) => x.onChanged).returns(() => onChanged.object);\n connectionMock\n .setup((x) => x.selectionSet)\n .returns(() => selectionSet.object);\n connectionMock.setup((x) => x.iModelId).returns(() => mockIModelId);\n connectionMock.setup((x) => x.iTwinId).returns(() => mockITwinId);\n\n selectionManagerMock\n .setup((x) => x.selectionChange)\n .returns(() => new SelectionChangeEvent());\n\n selectionScopesManagerMock\n .setup(async (x) => x.getSelectionScopes(connectionMock.object))\n .returns(async () => []);\n selectionManagerMock\n .setup((x) => x.scopes)\n .returns(() => selectionScopesManagerMock.object);\n\n Presentation.setSelectionManager(selectionManagerMock.object);\n await TestUtils.initializeUiFramework(connectionMock.object);\n});\n\ndescribe(\"Groupings View with default UIs\", () => {\n it(\"List all groups and click on add group and edit group buttons\", async () => {\n // Arange\n const mockGroups = groupsFactory();\n const mockedAccessToken = await mockAccessToken();\n mockMappingClient\n .setup(async (x) => x.getGroups(mockedAccessToken, mockIModelId, mockMappingId))\n .returns(async () => mockGroups.groups);\n\n // Act\n const { user } = render(<Groupings mapping={mockMapping} goBack={jest.fn()} />);\n await waitForElementToBeRemoved(() => screen.getByText(/loading/i));\n\n // Assert\n const addButton = screen.getAllByTestId(\"gmw-add-group-button\");\n expect(addButton).toHaveLength(1);\n\n // Click on 'Add Group' button\n await user.click(addButton[0]);\n\n // Should have three menu items\n const addSelection = screen.getAllByTestId(\"gmw-add-0\");\n expect(addSelection).toHaveLength(1);\n const addSearch = screen.getAllByTestId(\"gmw-add-1\");\n expect(addSearch).toHaveLength(1);\n const addManual = screen.getAllByTestId(\"gmw-add-2\");\n expect(addManual).toHaveLength(1);\n\n // Should have the right group number\n const horizontalTiles = screen.getAllByTestId(\"gmw-horizontal-tile\");\n expect(horizontalTiles).toHaveLength(mockGroups.groups.length);\n\n horizontalTiles.forEach((horizontalTile, index) => {\n const groupTile = within(horizontalTile);\n expect(\n groupTile.getByText(\n mockGroups.groups[index].groupName\n )\n ).toBeInTheDocument();\n expect(\n groupTile.getByText(\n mockGroups.groups[index].description ?? \"\"\n )\n ).toBeInTheDocument();\n });\n\n // Click on first group more icon\n const moreButton = screen.getAllByTestId(\"gmw-more-button\");\n expect(moreButton).toHaveLength(mockGroups.groups.length);\n\n await user.click(moreButton[0]);\n\n // Should have 3 context menu items\n const contextMenuItems = screen.getAllByTestId(\"gmw-context-menu-item\");\n expect(contextMenuItems).toHaveLength(3);\n expect(contextMenuItems[0]).toHaveTextContent(\"Edit\");\n expect(contextMenuItems[1]).toHaveTextContent(\"Properties\");\n expect(contextMenuItems[2]).toHaveTextContent(\"Remove\");\n\n // Hover on 'Edit'\n await user.hover(contextMenuItems[0]);\n\n // Should have 3 sub menu items\n const editSelection = screen.getAllByTestId(`gmw-edit-0`);\n expect(editSelection).toHaveLength(1);\n const editSearch = screen.getAllByTestId(`gmw-edit-1`);\n expect(editSearch).toHaveLength(1);\n const editManual = screen.getAllByTestId(`gmw-edit-2`);\n expect(editManual).toHaveLength(1);\n });\n\n it(\"Set up grouping custom UI - should replace default grouping methods\", async () => {\n // Arange\n const mockGroups = groupsFactory();\n const mockedAccessToken = await mockAccessToken();\n mockMappingClient\n .setup(async (x) => x.getGroups(mockedAccessToken, mockIModelId, mockMappingId))\n .returns(async () => mockGroups.groups);\n const mockedUIComponent = (_props: GroupingCustomUIProps) => React.createElement(\"div\");\n const mockGroupingUI: GroupingMappingCustomUI = {\n type: GroupingMappingCustomUIType.Grouping,\n name: \"mOcKgRoUpInGuI\",\n displayLabel: \"Mock Grouping UI\",\n uiComponent: mockedUIComponent,\n };\n\n // Act\n const { user } = render(<Groupings mapping={mockMapping} goBack={jest.fn()} />, [mockGroupingUI]);\n await waitForElementToBeRemoved(() => screen.getByText(/loading/i));\n\n // Assert\n const addButton = screen.getAllByTestId(\"gmw-add-group-button\");\n expect(addButton).toHaveLength(1);\n\n // Click on 'Add Group' button\n await user.click(addButton[0]);\n\n // Should have exactly 1 add method with given configuration\n const addCustom = screen.getAllByTestId(\"gmw-add-0\");\n expect(addCustom).toHaveLength(1);\n expect(addCustom[0]).toHaveTextContent(mockGroupingUI.displayLabel);\n\n // Each group should have a more icon button\n const moreButton = screen.getAllByTestId(\"gmw-more-button\");\n expect(moreButton).toHaveLength(mockGroups.groups.length);\n expect(moreButton.length).toBeGreaterThan(0);\n\n // Click on first more icon\n await user.click(moreButton[0]);\n\n // Should have 3 context menu items without context configuration\n const contextMenuItems = screen.getAllByTestId(\"gmw-context-menu-item\");\n expect(contextMenuItems).toHaveLength(3);\n expect(contextMenuItems[0]).toHaveTextContent(\"Edit\");\n\n // Hover on 'Edit'\n await user.hover(contextMenuItems[0]);\n\n // Should have exactly 1 sub menu item\n const editCustom = screen.getAllByTestId(`gmw-edit-0`);\n expect(editCustom).toHaveLength(1);\n expect(editCustom[0]).toHaveTextContent(mockGroupingUI.displayLabel);\n\n // Click on the edit custom UI\n await user.click(editCustom[0]);\n\n const groupName = screen.getAllByText(mockGroups.groups[0].groupName);\n expect(groupName).toHaveLength(1);\n });\n\n it(\"Set up context custom UI - should have default grouping methods and add context menu\", async () => {\n // Arange\n const mockGroups = groupsFactory();\n const mockedAccessToken = await mockAccessToken();\n mockMappingClient\n .setup(async (x) => x.getGroups(mockedAccessToken, mockIModelId, mockMappingId))\n .returns(async () => mockGroups.groups);\n const mockedUIComponent = (_props: ContextCustomUIProps) => React.createElement(\"div\");\n const mockContextUI: GroupingMappingCustomUI = {\n type: GroupingMappingCustomUIType.Context,\n name: \"mOcKgRoUpInGuI\",\n displayLabel: \"Mock Grouping UI\",\n uiComponent: mockedUIComponent,\n };\n\n // Act\n const { user } = render(<Groupings mapping={mockMapping} goBack={jest.fn()} />, [mockContextUI]);\n await waitForElementToBeRemoved(() => screen.getByText(/loading/i));\n\n // Assert\n const addButton = screen.getAllByTestId(\"gmw-add-group-button\");\n expect(addButton).toHaveLength(1);\n\n // Click on 'Add Group' button\n await user.click(addButton[0]);\n\n // Should have three menu items\n const addSelection = screen.getAllByTestId(\"gmw-add-0\");\n expect(addSelection).toHaveLength(1);\n const addSearch = screen.getAllByTestId(\"gmw-add-1\");\n expect(addSearch).toHaveLength(1);\n const addManual = screen.getAllByTestId(\"gmw-add-2\");\n expect(addManual).toHaveLength(1);\n\n // Should have the right group number\n const horizontalTiles = screen.getAllByTestId(\"gmw-horizontal-tile\");\n expect(horizontalTiles).toHaveLength(mockGroups.groups.length);\n\n // Click on first group more icon\n const moreButton = screen.getAllByTestId(\"gmw-more-button\");\n expect(moreButton).toHaveLength(mockGroups.groups.length);\n\n await user.click(moreButton[0]);\n\n // Should have 4 context menu items\n const contextMenuItems = screen.getAllByTestId(\"gmw-context-menu-item\");\n expect(contextMenuItems).toHaveLength(4);\n expect(contextMenuItems[0]).toHaveTextContent(\"Edit\");\n expect(contextMenuItems[1]).toHaveTextContent(\"Properties\");\n expect(contextMenuItems[2]).toHaveTextContent(\"Remove\");\n expect(contextMenuItems[3]).toHaveTextContent(mockContextUI.displayLabel);\n\n // Click on the context ui\n await user.click(contextMenuItems[3]);\n });\n\n it(\"Set up both grouping and context custom UI\", async () => {\n // Arange\n const mockGroups = groupsFactory();\n const mockedAccessToken = await mockAccessToken();\n mockMappingClient\n .setup(async (x) => x.getGroups(mockedAccessToken, mockIModelId, mockMappingId))\n .returns(async () => mockGroups.groups);\n const mockedGroupingUIComponent = (_props: GroupingCustomUIProps) => React.createElement(\"div\");\n const mockedContextUIComponent = (_props: ContextCustomUIProps) => React.createElement(\"div\");\n const mockGroupingUI: GroupingMappingCustomUI = {\n type: GroupingMappingCustomUIType.Grouping,\n name: \"mOcKgRoUpInGuI\",\n displayLabel: \"Mock Grouping UI\",\n uiComponent: mockedGroupingUIComponent,\n };\n const mockContextUI: GroupingMappingCustomUI = {\n type: GroupingMappingCustomUIType.Context,\n name: \"mOcKgRoUpInGuI\",\n displayLabel: \"Mock Grouping UI\",\n uiComponent: mockedContextUIComponent,\n };\n\n // Act\n const { user } = render(<Groupings mapping={mockMapping} goBack={jest.fn()} />, [mockContextUI, mockGroupingUI]);\n await waitForElementToBeRemoved(() => screen.getByText(/loading/i));\n\n // Assert\n const addButton = screen.getAllByTestId(\"gmw-add-group-button\");\n expect(addButton).toHaveLength(1);\n\n // Click on 'Add Group' button\n await user.click(addButton[0]);\n\n // Should have exactly 1 add method with given configuration\n const addCustom = screen.getAllByTestId(\"gmw-add-0\");\n expect(addCustom).toHaveLength(1);\n expect(addCustom[0]).toHaveTextContent(mockGroupingUI.displayLabel);\n\n // Check the group tile number\n const horizontalTiles = screen.getAllByTestId(\"gmw-horizontal-tile\");\n expect(horizontalTiles).toHaveLength(mockGroups.groups.length);\n\n // Click on first group more icon\n const moreButton = screen.getAllByTestId(\"gmw-more-button\");\n expect(moreButton).toHaveLength(mockGroups.groups.length);\n\n await user.click(moreButton[0]);\n\n // Should have 4 context menu items\n const contextMenuItems = screen.getAllByTestId(\"gmw-context-menu-item\");\n expect(contextMenuItems).toHaveLength(4);\n expect(contextMenuItems[0]).toHaveTextContent(\"Edit\");\n expect(contextMenuItems[1]).toHaveTextContent(\"Properties\");\n expect(contextMenuItems[2]).toHaveTextContent(\"Remove\");\n expect(contextMenuItems[3]).toHaveTextContent(mockContextUI.displayLabel);\n\n // Click on the context ui\n await user.click(contextMenuItems[3]);\n });\n});\n"]}
1
+ {"version":3,"file":"GroupingMappingCustomUI.test.js","sourceRoot":"","sources":["../../../src/test/GroupingMappingCustomUI.test.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\nimport React from \"react\";\nimport \"@testing-library/jest-dom\";\nimport { screen, waitForElementToBeRemoved, within } from \"./test-utils\";\nimport { faker } from \"@faker-js/faker\";\nimport { Groupings } from \"../grouping-mapping-widget\";\nimport type { GroupCollection, IMappingsClient, Mapping } from \"@itwin/insights-client\";\nimport * as moq from \"typemoq\";\nimport type { IModelConnection } from \"@itwin/core-frontend\";\nimport type { ContextCustomUIProps, GroupingCustomUIProps, GroupingMappingCustomUI } from \"../grouping-mapping-widget\";\nimport { GroupingMappingCustomUIType } from \"../grouping-mapping-widget\";\nimport userEvent from \"@testing-library/user-event\";\nimport { render } from \"@testing-library/react\";\n\nconst mockITwinId = faker.datatype.uuid();\nconst mockIModelId = faker.datatype.uuid();\nconst mockMappingId = faker.datatype.uuid();\nconst mockMapping: Mapping = {\n id: mockMappingId,\n mappingName: \"mOcKmApPiNg1\",\n description: \"mOcKmApPiNgDeScRiPtIoN1\",\n createdBy: faker.random.alpha(),\n createdOn: faker.date.past().toDateString(),\n modifiedBy: faker.random.alpha(),\n modifiedOn: faker.date.past().toDateString(),\n extractionEnabled: false,\n _links: {\n imodel: {\n href: \"\",\n },\n },\n};\n\nconst groupsFactory = (): GroupCollection => ({\n groups: Array.from(\n { length: faker.datatype.number({ min: 3, max: 5 }) },\n (_, index) => ({\n id: `${faker.datatype.uuid()}`,\n groupName: `mOcKgRoUp${index}`,\n description: `mOcKgRoUpDeScRiPtIoN${index}`,\n query: `mOcKgRoUpQuErY${index}`,\n _links: {\n imodel: {\n href: \"\",\n },\n mapping: {\n href: \"\",\n },\n },\n })\n ),\n _links: {\n next: undefined,\n self: {\n href: \"\",\n },\n },\n});\n\nconst connectionMock = moq.Mock.ofType<IModelConnection>();\nlet groupingMappingCustomUIMock: GroupingMappingCustomUI[] = [];\nconst mappingClientMock = moq.Mock.ofType<IMappingsClient>();\n\njest.mock(\"@itwin/appui-react\", () => ({\n ...jest.requireActual(\"@itwin/appui-react\"),\n useActiveIModelConnection: () => connectionMock.object,\n}));\n\nconst mockAccessToken = jest.fn().mockResolvedValue(\"Bearer eyJhbGci\");\n\njest.mock(\"../widget/components/context/GroupingApiConfigContext\", () => ({\n ...jest.requireActual(\"../widget/components/context/GroupingApiConfigContext\"),\n useGroupingMappingApiConfig: () => ({\n getAccessToken: mockAccessToken,\n }),\n}));\n\njest.mock(\"../widget/components/context/GroupingMappingCustomUIContext\", () => ({\n ...jest.requireActual(\"../widget/components/context/GroupingMappingCustomUIContext\"),\n useGroupingMappingCustomUI: () => groupingMappingCustomUIMock,\n}));\n\njest.mock(\"../widget/components/context/MappingClientContext\", () => ({\n ...jest.requireActual(\"../widget/components/context/MappingClientContext\"),\n useMappingClient: () => mappingClientMock.object,\n}));\n\nconst mockGroups = groupsFactory();\n\ndescribe(\"Groupings View with default UIs\", () => {\n beforeEach(async () => {\n connectionMock.setup((x) => x.iModelId).returns(() => mockIModelId);\n connectionMock.setup((x) => x.iTwinId).returns(() => mockITwinId);\n\n const mockedAccessToken = await mockAccessToken();\n mappingClientMock\n .setup(async (x) => x.getGroups(mockedAccessToken, mockIModelId, mockMappingId))\n .returns(async () => Promise.resolve(mockGroups.groups));\n });\n\n afterEach(() => {\n connectionMock.reset();\n mappingClientMock.reset();\n groupingMappingCustomUIMock = [];\n });\n\n it(\"List all groups and click on add group and edit group buttons\", async () => {\n // Arange\n\n // Act\n const user = userEvent.setup();\n render(<Groupings mapping={mockMapping} goBack={jest.fn()} />);\n\n await waitForElementToBeRemoved(() => screen.getByText(/loading/i));\n\n // Assert\n const addButton = screen.getAllByTestId(\"gmw-add-group-button\");\n expect(addButton).toHaveLength(1);\n\n // Click on 'Add Group' button\n await user.click(addButton[0]);\n\n // Should have three menu items\n const addSelection = screen.getAllByTestId(\"gmw-add-0\");\n expect(addSelection).toHaveLength(1);\n const addSearch = screen.getAllByTestId(\"gmw-add-1\");\n expect(addSearch).toHaveLength(1);\n const addManual = screen.getAllByTestId(\"gmw-add-2\");\n expect(addManual).toHaveLength(1);\n\n // Should have the right group number\n const horizontalTiles = screen.getAllByTestId(\"gmw-horizontal-tile\");\n expect(horizontalTiles).toHaveLength(mockGroups.groups.length);\n\n horizontalTiles.forEach((horizontalTile, index) => {\n const groupTile = within(horizontalTile);\n expect(\n groupTile.getByText(\n mockGroups.groups[index].groupName\n )\n ).toBeInTheDocument();\n expect(\n groupTile.getByText(\n mockGroups.groups[index].description ?? \"\"\n )\n ).toBeInTheDocument();\n });\n\n // Click on first group more icon\n const moreButton = screen.getAllByTestId(\"gmw-more-button\");\n expect(moreButton).toHaveLength(mockGroups.groups.length);\n\n await user.click(moreButton[0]);\n\n // Should have 3 context menu items\n const contextMenuItems = screen.getAllByTestId(\"gmw-context-menu-item\");\n expect(contextMenuItems).toHaveLength(3);\n expect(contextMenuItems[0]).toHaveTextContent(\"Edit\");\n expect(contextMenuItems[1]).toHaveTextContent(\"Properties\");\n expect(contextMenuItems[2]).toHaveTextContent(\"Remove\");\n\n // Hover on 'Edit'\n await user.hover(contextMenuItems[0]);\n\n // Should have 3 sub menu items\n const editSelection = screen.getAllByTestId(`gmw-edit-0`);\n expect(editSelection).toHaveLength(1);\n const editSearch = screen.getAllByTestId(`gmw-edit-1`);\n expect(editSearch).toHaveLength(1);\n const editManual = screen.getAllByTestId(`gmw-edit-2`);\n expect(editManual).toHaveLength(1);\n });\n\n it(\"Set up grouping custom UI - should replace default grouping methods\", async () => {\n // Arange\n const mockedUIComponent = (_props: GroupingCustomUIProps) => React.createElement(\"div\");\n const mockGroupingUI: GroupingMappingCustomUI = {\n type: GroupingMappingCustomUIType.Grouping,\n name: \"mOcKgRoUpInGuI\",\n displayLabel: \"Mock Grouping UI\",\n uiComponent: mockedUIComponent,\n };\n\n groupingMappingCustomUIMock = [mockGroupingUI];\n\n // Act\n const user = userEvent.setup();\n render(<Groupings mapping={mockMapping} goBack={jest.fn()} />);\n\n await waitForElementToBeRemoved(() => screen.getByText(/loading/i));\n\n // Assert\n const addButton = screen.getAllByTestId(\"gmw-add-group-button\");\n expect(addButton).toHaveLength(1);\n\n // Click on 'Add Group' button\n await user.click(addButton[0]);\n\n // Should have exactly 1 add method with given configuration\n const addCustom = screen.getAllByTestId(\"gmw-add-0\");\n expect(addCustom).toHaveLength(1);\n expect(addCustom[0]).toHaveTextContent(mockGroupingUI.displayLabel);\n\n // Each group should have a more icon button\n const moreButton = screen.getAllByTestId(\"gmw-more-button\");\n expect(moreButton).toHaveLength(mockGroups.groups.length);\n expect(moreButton.length).toBeGreaterThan(0);\n\n // Click on first more icon\n await user.click(moreButton[0]);\n\n // Should have 3 context menu items without context configuration\n const contextMenuItems = screen.getAllByTestId(\"gmw-context-menu-item\");\n expect(contextMenuItems).toHaveLength(3);\n expect(contextMenuItems[0]).toHaveTextContent(\"Edit\");\n\n // Hover on 'Edit'\n await user.hover(contextMenuItems[0]);\n\n // Should have exactly 1 sub menu item\n const editCustom = screen.getAllByTestId(`gmw-edit-0`);\n expect(editCustom).toHaveLength(1);\n expect(editCustom[0]).toHaveTextContent(mockGroupingUI.displayLabel);\n\n // Click on the edit custom UI\n await user.click(editCustom[0]);\n\n const groupName = screen.getAllByText(mockGroups.groups[0].groupName);\n expect(groupName).toHaveLength(1);\n });\n\n it(\"Set up context custom UI - should have default grouping methods and add context menu\", async () => {\n // Arange\n const mockedUIComponent = (_props: ContextCustomUIProps) => React.createElement(\"div\");\n const mockContextUI: GroupingMappingCustomUI = {\n type: GroupingMappingCustomUIType.Context,\n name: \"mOcKgRoUpInGuI\",\n displayLabel: \"Mock Grouping UI\",\n uiComponent: mockedUIComponent,\n };\n\n groupingMappingCustomUIMock = [mockContextUI];\n\n // Act\n const user = userEvent.setup();\n render(<Groupings mapping={mockMapping} goBack={jest.fn()} />);\n\n await waitForElementToBeRemoved(() => screen.getByText(/loading/i));\n\n // Assert\n const addButton = screen.getAllByTestId(\"gmw-add-group-button\");\n expect(addButton).toHaveLength(1);\n\n // Click on 'Add Group' button\n await user.click(addButton[0]);\n\n // Should have three menu items\n const addSelection = screen.getAllByTestId(\"gmw-add-0\");\n expect(addSelection).toHaveLength(1);\n const addSearch = screen.getAllByTestId(\"gmw-add-1\");\n expect(addSearch).toHaveLength(1);\n const addManual = screen.getAllByTestId(\"gmw-add-2\");\n expect(addManual).toHaveLength(1);\n\n // Should have the right group number\n const horizontalTiles = screen.getAllByTestId(\"gmw-horizontal-tile\");\n expect(horizontalTiles).toHaveLength(mockGroups.groups.length);\n\n // Click on first group more icon\n const moreButton = screen.getAllByTestId(\"gmw-more-button\");\n expect(moreButton).toHaveLength(mockGroups.groups.length);\n\n await user.click(moreButton[0]);\n\n // Should have 4 context menu items\n const contextMenuItems = screen.getAllByTestId(\"gmw-context-menu-item\");\n expect(contextMenuItems).toHaveLength(4);\n expect(contextMenuItems[0]).toHaveTextContent(\"Edit\");\n expect(contextMenuItems[1]).toHaveTextContent(\"Properties\");\n expect(contextMenuItems[2]).toHaveTextContent(\"Remove\");\n expect(contextMenuItems[3]).toHaveTextContent(mockContextUI.displayLabel);\n\n // Click on the context ui\n await user.click(contextMenuItems[3]);\n });\n\n it(\"Set up both grouping and context custom UI\", async () => {\n // Arange\n const mockedGroupingUIComponent = (_props: GroupingCustomUIProps) => React.createElement(\"div\");\n const mockedContextUIComponent = (_props: ContextCustomUIProps) => React.createElement(\"div\");\n const mockGroupingUI: GroupingMappingCustomUI = {\n type: GroupingMappingCustomUIType.Grouping,\n name: \"mOcKgRoUpInGuI\",\n displayLabel: \"Mock Grouping UI\",\n uiComponent: mockedGroupingUIComponent,\n };\n const mockContextUI: GroupingMappingCustomUI = {\n type: GroupingMappingCustomUIType.Context,\n name: \"mOcKgRoUpInGuI\",\n displayLabel: \"Mock Grouping UI\",\n uiComponent: mockedContextUIComponent,\n };\n\n groupingMappingCustomUIMock = [mockContextUI, mockGroupingUI];\n\n // Act\n const user = userEvent.setup();\n render(<Groupings mapping={mockMapping} goBack={jest.fn()} />);\n\n await waitForElementToBeRemoved(() => screen.getByText(/loading/i));\n\n // Assert\n const addButton = screen.getAllByTestId(\"gmw-add-group-button\");\n expect(addButton).toHaveLength(1);\n\n // Click on 'Add Group' button\n await user.click(addButton[0]);\n\n // Should have exactly 1 add method with given configuration\n const addCustom = screen.getAllByTestId(\"gmw-add-0\");\n expect(addCustom).toHaveLength(1);\n expect(addCustom[0]).toHaveTextContent(mockGroupingUI.displayLabel);\n\n // Check the group tile number\n const horizontalTiles = screen.getAllByTestId(\"gmw-horizontal-tile\");\n expect(horizontalTiles).toHaveLength(mockGroups.groups.length);\n\n // Click on first group more icon\n const moreButton = screen.getAllByTestId(\"gmw-more-button\");\n expect(moreButton).toHaveLength(mockGroups.groups.length);\n\n await user.click(moreButton[0]);\n\n // Should have 4 context menu items\n const contextMenuItems = screen.getAllByTestId(\"gmw-context-menu-item\");\n expect(contextMenuItems).toHaveLength(4);\n expect(contextMenuItems[0]).toHaveTextContent(\"Edit\");\n expect(contextMenuItems[1]).toHaveTextContent(\"Properties\");\n expect(contextMenuItems[2]).toHaveTextContent(\"Remove\");\n expect(contextMenuItems[3]).toHaveTextContent(mockContextUI.displayLabel);\n\n // Click on the context ui\n await user.click(contextMenuItems[3]);\n });\n});\n"]}