@itwin/core-backend 5.3.0-dev.9 → 5.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +52 -1
- package/lib/cjs/BriefcaseManager.d.ts.map +1 -1
- package/lib/cjs/BriefcaseManager.js +14 -0
- package/lib/cjs/BriefcaseManager.js.map +1 -1
- package/lib/cjs/CloudSqlite.d.ts +2 -0
- package/lib/cjs/CloudSqlite.d.ts.map +1 -1
- package/lib/cjs/CloudSqlite.js.map +1 -1
- package/lib/cjs/DisplayStyle.d.ts +2 -2
- package/lib/cjs/DisplayStyle.d.ts.map +1 -1
- package/lib/cjs/DisplayStyle.js +4 -4
- package/lib/cjs/DisplayStyle.js.map +1 -1
- package/lib/cjs/ECDb.js +1 -1
- package/lib/cjs/ECDb.js.map +1 -1
- package/lib/cjs/Element.d.ts +31 -3
- package/lib/cjs/Element.d.ts.map +1 -1
- package/lib/cjs/Element.js +55 -3
- package/lib/cjs/Element.js.map +1 -1
- package/lib/cjs/ElementAspect.d.ts +24 -1
- package/lib/cjs/ElementAspect.d.ts.map +1 -1
- package/lib/cjs/ElementAspect.js +102 -1
- package/lib/cjs/ElementAspect.js.map +1 -1
- package/lib/cjs/IModelDb.d.ts +26 -3
- package/lib/cjs/IModelDb.d.ts.map +1 -1
- package/lib/cjs/IModelDb.js +60 -5
- package/lib/cjs/IModelDb.js.map +1 -1
- package/lib/cjs/IModelElementCloneContext.d.ts +1 -1
- package/lib/cjs/IModelElementCloneContext.d.ts.map +1 -1
- package/lib/cjs/IModelElementCloneContext.js +2 -2
- package/lib/cjs/IModelElementCloneContext.js.map +1 -1
- package/lib/cjs/Material.d.ts +1 -1
- package/lib/cjs/Material.d.ts.map +1 -1
- package/lib/cjs/Material.js +2 -2
- package/lib/cjs/Material.js.map +1 -1
- package/lib/cjs/NavigationRelationship.d.ts +15 -0
- package/lib/cjs/NavigationRelationship.d.ts.map +1 -1
- package/lib/cjs/NavigationRelationship.js +22 -1
- package/lib/cjs/NavigationRelationship.js.map +1 -1
- package/lib/cjs/Relationship.d.ts +5 -0
- package/lib/cjs/Relationship.d.ts.map +1 -1
- package/lib/cjs/Relationship.js +7 -0
- package/lib/cjs/Relationship.js.map +1 -1
- package/lib/cjs/TxnManager.d.ts +8 -0
- package/lib/cjs/TxnManager.d.ts.map +1 -1
- package/lib/cjs/TxnManager.js +30 -2
- package/lib/cjs/TxnManager.js.map +1 -1
- package/lib/cjs/ViewDefinition.d.ts +1 -1
- package/lib/cjs/ViewDefinition.d.ts.map +1 -1
- package/lib/cjs/ViewDefinition.js +2 -2
- package/lib/cjs/ViewDefinition.js.map +1 -1
- package/lib/cjs/annotations/ElementDrivesTextAnnotation.d.ts +15 -1
- package/lib/cjs/annotations/ElementDrivesTextAnnotation.d.ts.map +1 -1
- package/lib/cjs/annotations/ElementDrivesTextAnnotation.js +36 -23
- package/lib/cjs/annotations/ElementDrivesTextAnnotation.js.map +1 -1
- package/lib/cjs/annotations/LeaderGeometry.d.ts +13 -1
- package/lib/cjs/annotations/LeaderGeometry.d.ts.map +1 -1
- package/lib/cjs/annotations/LeaderGeometry.js +88 -10
- package/lib/cjs/annotations/LeaderGeometry.js.map +1 -1
- package/lib/cjs/annotations/TextAnnotationElement.d.ts +6 -5
- package/lib/cjs/annotations/TextAnnotationElement.d.ts.map +1 -1
- package/lib/cjs/annotations/TextAnnotationElement.js +33 -14
- package/lib/cjs/annotations/TextAnnotationElement.js.map +1 -1
- package/lib/cjs/annotations/TextBlockLayout.d.ts.map +1 -1
- package/lib/cjs/annotations/TextBlockLayout.js +2 -1
- package/lib/cjs/annotations/TextBlockLayout.js.map +1 -1
- package/lib/cjs/internal/annotations/fields.d.ts +3 -2
- package/lib/cjs/internal/annotations/fields.d.ts.map +1 -1
- package/lib/cjs/internal/annotations/fields.js +12 -5
- package/lib/cjs/internal/annotations/fields.js.map +1 -1
- package/lib/esm/BriefcaseManager.d.ts.map +1 -1
- package/lib/esm/BriefcaseManager.js +14 -0
- package/lib/esm/BriefcaseManager.js.map +1 -1
- package/lib/esm/CloudSqlite.d.ts +2 -0
- package/lib/esm/CloudSqlite.d.ts.map +1 -1
- package/lib/esm/CloudSqlite.js.map +1 -1
- package/lib/esm/DisplayStyle.d.ts +2 -2
- package/lib/esm/DisplayStyle.d.ts.map +1 -1
- package/lib/esm/DisplayStyle.js +4 -4
- package/lib/esm/DisplayStyle.js.map +1 -1
- package/lib/esm/ECDb.js +1 -1
- package/lib/esm/ECDb.js.map +1 -1
- package/lib/esm/Element.d.ts +31 -3
- package/lib/esm/Element.d.ts.map +1 -1
- package/lib/esm/Element.js +55 -4
- package/lib/esm/Element.js.map +1 -1
- package/lib/esm/ElementAspect.d.ts +24 -1
- package/lib/esm/ElementAspect.d.ts.map +1 -1
- package/lib/esm/ElementAspect.js +101 -1
- package/lib/esm/ElementAspect.js.map +1 -1
- package/lib/esm/IModelDb.d.ts +26 -3
- package/lib/esm/IModelDb.d.ts.map +1 -1
- package/lib/esm/IModelDb.js +60 -5
- package/lib/esm/IModelDb.js.map +1 -1
- package/lib/esm/IModelElementCloneContext.d.ts +1 -1
- package/lib/esm/IModelElementCloneContext.d.ts.map +1 -1
- package/lib/esm/IModelElementCloneContext.js +2 -2
- package/lib/esm/IModelElementCloneContext.js.map +1 -1
- package/lib/esm/Material.d.ts +1 -1
- package/lib/esm/Material.d.ts.map +1 -1
- package/lib/esm/Material.js +2 -2
- package/lib/esm/Material.js.map +1 -1
- package/lib/esm/NavigationRelationship.d.ts +15 -0
- package/lib/esm/NavigationRelationship.d.ts.map +1 -1
- package/lib/esm/NavigationRelationship.js +19 -0
- package/lib/esm/NavigationRelationship.js.map +1 -1
- package/lib/esm/Relationship.d.ts +5 -0
- package/lib/esm/Relationship.d.ts.map +1 -1
- package/lib/esm/Relationship.js +7 -0
- package/lib/esm/Relationship.js.map +1 -1
- package/lib/esm/TxnManager.d.ts +8 -0
- package/lib/esm/TxnManager.d.ts.map +1 -1
- package/lib/esm/TxnManager.js +30 -2
- package/lib/esm/TxnManager.js.map +1 -1
- package/lib/esm/ViewDefinition.d.ts +1 -1
- package/lib/esm/ViewDefinition.d.ts.map +1 -1
- package/lib/esm/ViewDefinition.js +2 -2
- package/lib/esm/ViewDefinition.js.map +1 -1
- package/lib/esm/annotations/ElementDrivesTextAnnotation.d.ts +15 -1
- package/lib/esm/annotations/ElementDrivesTextAnnotation.d.ts.map +1 -1
- package/lib/esm/annotations/ElementDrivesTextAnnotation.js +37 -24
- package/lib/esm/annotations/ElementDrivesTextAnnotation.js.map +1 -1
- package/lib/esm/annotations/LeaderGeometry.d.ts +13 -1
- package/lib/esm/annotations/LeaderGeometry.d.ts.map +1 -1
- package/lib/esm/annotations/LeaderGeometry.js +89 -12
- package/lib/esm/annotations/LeaderGeometry.js.map +1 -1
- package/lib/esm/annotations/TextAnnotationElement.d.ts +6 -5
- package/lib/esm/annotations/TextAnnotationElement.d.ts.map +1 -1
- package/lib/esm/annotations/TextAnnotationElement.js +33 -14
- package/lib/esm/annotations/TextAnnotationElement.js.map +1 -1
- package/lib/esm/annotations/TextBlockLayout.d.ts.map +1 -1
- package/lib/esm/annotations/TextBlockLayout.js +2 -1
- package/lib/esm/annotations/TextBlockLayout.js.map +1 -1
- package/lib/esm/internal/annotations/fields.d.ts +3 -2
- package/lib/esm/internal/annotations/fields.d.ts.map +1 -1
- package/lib/esm/internal/annotations/fields.js +11 -5
- package/lib/esm/internal/annotations/fields.js.map +1 -1
- package/lib/esm/test/ElementDrivesElement.test.d.ts +93 -0
- package/lib/esm/test/ElementDrivesElement.test.d.ts.map +1 -0
- package/lib/esm/test/ElementDrivesElement.test.js +862 -0
- package/lib/esm/test/ElementDrivesElement.test.js.map +1 -0
- package/lib/esm/test/ElementLRUCache.test.js +13 -0
- package/lib/esm/test/ElementLRUCache.test.js.map +1 -1
- package/lib/esm/test/annotations/Fields.test.js +44 -0
- package/lib/esm/test/annotations/Fields.test.js.map +1 -1
- package/lib/esm/test/annotations/LeaderGeometry.test.js +47 -2
- package/lib/esm/test/annotations/LeaderGeometry.test.js.map +1 -1
- package/lib/esm/test/annotations/TextAnnotation.test.js +120 -31
- package/lib/esm/test/annotations/TextAnnotation.test.js.map +1 -1
- package/lib/esm/test/ecdb/ConcurrentQuery.test.js +2 -2
- package/lib/esm/test/ecdb/ConcurrentQuery.test.js.map +1 -1
- package/lib/esm/test/ecdb/ECSqlStatement.test.js +33 -2
- package/lib/esm/test/ecdb/ECSqlStatement.test.js.map +1 -1
- package/lib/esm/test/element/ProjectInformationRecord.test.d.ts +2 -0
- package/lib/esm/test/element/ProjectInformationRecord.test.d.ts.map +1 -0
- package/lib/esm/test/element/ProjectInformationRecord.test.js +80 -0
- package/lib/esm/test/element/ProjectInformationRecord.test.js.map +1 -0
- package/lib/esm/test/element/SheetInformationAspect.test.d.ts +2 -0
- package/lib/esm/test/element/SheetInformationAspect.test.d.ts.map +1 -0
- package/lib/esm/test/element/SheetInformationAspect.test.js +182 -0
- package/lib/esm/test/element/SheetInformationAspect.test.js.map +1 -0
- package/lib/esm/test/hubaccess/Rebase.test.js +169 -2
- package/lib/esm/test/hubaccess/Rebase.test.js.map +1 -1
- package/lib/esm/test/imodel/IModel.test.js +175 -2
- package/lib/esm/test/imodel/IModel.test.js.map +1 -1
- package/lib/esm/test/incrementalSchemaLocater/ECSqlQueries.test.js.map +1 -1
- package/lib/esm/test/standalone/ChangesetReader.test.js +63 -60
- package/lib/esm/test/standalone/ChangesetReader.test.js.map +1 -1
- package/lib/esm/test/standalone/DisplayStyle.test.js +6 -6
- package/lib/esm/test/standalone/DisplayStyle.test.js.map +1 -1
- package/lib/esm/test/standalone/ElementGraphics.test.js +75 -6
- package/lib/esm/test/standalone/ElementGraphics.test.js.map +1 -1
- package/lib/esm/test/standalone/RenderMaterialElement.test.js +4 -4
- package/lib/esm/test/standalone/RenderMaterialElement.test.js.map +1 -1
- package/lib/esm/test/standalone/TxnManager.test.js +33 -5
- package/lib/esm/test/standalone/TxnManager.test.js.map +1 -1
- package/package.json +13 -13
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ECSqlQueries.test.js","sourceRoot":"","sources":["../../../../src/test/incrementalSchemaLocater/ECSqlQueries.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { AnyPropertyProps, AnySchemaItemProps, ClassProps, RelationshipClassProps, Schema, SchemaItemType, SchemaKey } from \"@itwin/ecschema-metadata\";\nimport { IncrementalTestHelper } from \"./utils/IncrementalTestHelper\";\nimport { expect, use } from \"chai\";\nimport * as deepEqualInAnyOrder from \"deep-equal-in-any-order\";\nimport { TestSqlSchemaLocater } from \"./utils/TestSqlSchemaLocater\";\n\nuse(deepEqualInAnyOrder);\n\nfunction findItem<T extends AnySchemaItemProps>(name: string, rowData: T[]) {\n const item = rowData.find((i: AnySchemaItemProps) => i.name === name);\n if (!item)\n throw new Error(`Could not find schema item '${name}'`);\n return item;\n}\n\nfunction findProperty<T extends AnyPropertyProps>(name: string, rowData: T[]) {\n return rowData.find((i: AnyPropertyProps) => i.name === name);\n}\n\nfunction isECClass(item: AnySchemaItemProps): item is ClassProps {\n return item.schemaItemType === SchemaItemType.EntityClass || item.schemaItemType === SchemaItemType.Mixin || item.schemaItemType === SchemaItemType.RelationshipClass ||\n item.schemaItemType === SchemaItemType.StructClass || item.schemaItemType === SchemaItemType.CustomAttributeClass;\n}\n\nfunction isRelationshipClass(item: AnySchemaItemProps): item is RelationshipClassProps {\n return \"source\" in item && \"target\" in item;\n}\n\ndescribe(\"ECSql query tests\", function () {\n let schemaLocater: TestSqlSchemaLocater;\n\n function validateItem(name: string, itemPropObjects: AnySchemaItemProps[], schema: Schema) {\n const actualJson = findItem(name, itemPropObjects);\n const expectedItem = schema.getItemSync(name);\n const expectedJson = expectedItem!.toJSON();\n\n // The following code exists because some data coming from the database will not match the\n // data from the context due to default values. This is OK as long as the conditions are\n // correct. For instance, schemaItem name will not exist in serialized JSON, but does exist\n // coming from the DB. RelationshipConstraint's AbstractConstraint is set when only one\n // constraint class exists coming from the database, but a serialized Relationship will not\n // contain the abstract constraint. The one constraint is 'assumed' to be the abstract constraint.\n\n expect(actualJson.name).to.equal(expectedItem?.name);\n delete (actualJson as any).name;\n\n if (isECClass(actualJson)) {\n if (expectedJson.schemaItemType === \"Mixin\") {\n expect(actualJson.modifier).to.be.oneOf([undefined, 'Abstract']);\n delete (actualJson as any).modifier;\n } else if ((expectedJson as ClassProps).modifier === undefined) {\n expect(actualJson.modifier).to.be.oneOf([undefined, 'None']);\n delete (actualJson as any).modifier;\n }\n }\n if (isRelationshipClass(actualJson)) {\n // abstract can be set via database, but not via context for 1 constraint class\n // so verify constraint and conditions are correct and delete property\n const expectedRelationship = expectedJson as any as RelationshipClassProps;\n if (actualJson.source.abstractConstraint !== expectedRelationship.source.abstractConstraint) {\n expect(actualJson.source.abstractConstraint).to.equal(expectedRelationship.source.constraintClasses[0]);\n expect(actualJson.source.constraintClasses.length).to.equal(1);\n delete (actualJson.source as any).abstractConstraint;\n }\n if (actualJson.target.abstractConstraint !== expectedRelationship.target.abstractConstraint) {\n expect(actualJson.target.abstractConstraint).to.equal(expectedRelationship.target.constraintClasses[0]);\n expect(actualJson.target.constraintClasses.length).to.equal(1);\n delete (actualJson.target as any).abstractConstraint;\n }\n }\n\n if (actualJson.schemaItemType === SchemaItemType.Format) {\n if (undefined !== (actualJson as any).includeZero && undefined === (expectedJson as any).includeZero) {\n expect((actualJson as any).includeZero).to.equal(true);\n delete (actualJson as any).includeZero;\n }\n if ((actualJson as any).composite && undefined !== (actualJson as any).composite.includeZero && undefined === (expectedJson as any).composite.includeZero) {\n expect((actualJson as any).composite.includeZero).to.equal(true);\n delete (actualJson as any).composite.includeZero;\n }\n if ((actualJson as any).composite && undefined !== (actualJson as any).composite.spacer && undefined === (expectedJson as any).composite.spacer) {\n expect((actualJson as any).composite.spacer).to.equal(\" \");\n delete (actualJson as any).composite.spacer;\n }\n if (undefined !== (actualJson as any).decimalSeparator && undefined === (expectedJson as any).decimalSeparator) {\n expect((actualJson as any).decimalSeparator).to.equal(\".\");\n delete (actualJson as any).decimalSeparator;\n }\n if (undefined !== (actualJson as any).roundFactor && undefined === (expectedJson as any).roundFactor) {\n expect((actualJson as any).roundFactor).to.equal(0);\n delete (actualJson as any).roundFactor;\n }\n if (undefined !== (actualJson as any).showSignOption && undefined === (expectedJson as any).showSignOption) {\n expect((actualJson as any).showSignOption).to.equal(\"OnlyNegative\");\n delete (actualJson as any).showSignOption;\n }\n if (undefined !== (actualJson as any).thousandSeparator && undefined === (expectedJson as any).thousandSeparator) {\n expect((actualJson as any).thousandSeparator).to.equal(\",\");\n delete (actualJson as any).thousandSeparator;\n }\n if (undefined !== (actualJson as any).uomSeparator && undefined === (expectedJson as any).uomSeparator) {\n expect((actualJson as any).uomSeparator).to.equal(\" \");\n delete (actualJson as any).uomSeparator;\n }\n if (undefined !== (actualJson as any).spacer && undefined === (expectedJson as any).spacer) {\n expect((actualJson as any).spacer).to.equal(\" \");\n delete (actualJson as any).spacer;\n }\n if (undefined !== (actualJson as any).formatTraits) {\n (actualJson as any).formatTraits = (actualJson as any).formatTraits.map((trait: string) => {\n return trait.charAt(0).toUpperCase() + trait.slice(1);\n });\n }\n }\n\n expect(actualJson).to.deep.equalInAnyOrder(expectedJson);\n }\n\n this.beforeEach(async () => {\n await IncrementalTestHelper.setup();\n schemaLocater = new TestSqlSchemaLocater(IncrementalTestHelper.iModel);\n });\n\n afterEach(async () => {\n await IncrementalTestHelper.close();\n });\n\n it(\"Schema query, props parsed successfully\", async function () {\n const testKey = new SchemaKey(\"SchemaTest\", 1, 0, 0);\n await IncrementalTestHelper.importSchema(testKey);\n\n const expectedSchema = await IncrementalTestHelper.context.getSchema(testKey);\n if (!expectedSchema)\n throw new Error(`Could not find schema ${testKey.name}`);\n\n const actualSchemaProps = await schemaLocater.getSchemaJson(testKey, IncrementalTestHelper.context);\n const actualSchema = await Schema.fromJson(actualSchemaProps!, IncrementalTestHelper.context);\n\n expect(actualSchema.toJSON()).to.deep.equal(expectedSchema?.toJSON());\n });\n\n it(\"Property query, props parsed successfully\", async function () {\n const testKey = new SchemaKey(\"PropertyTest\", 1, 0, 0);\n await IncrementalTestHelper.importSchema(testKey);\n\n const schema = await IncrementalTestHelper.context.getSchema(testKey);\n if (!schema)\n throw new Error(`Could not find schema ${testKey.name}`);\n\n const classPropsObjects = await schemaLocater.getEntities(testKey.name, IncrementalTestHelper.context);\n const entityOneProps = findItem(\"EntityOne\", classPropsObjects);\n const entityTwoProps = findItem(\"EntityTwo\", classPropsObjects);\n const expectedEntityOne = await schema.getEntityClass(\"EntityOne\");\n const expectedEntityTwo = await schema.getEntityClass(\"EntityTwo\");\n\n const validateProperty = (propertyName: string, actualItem = entityOneProps, expectedItem = expectedEntityOne) => {\n const actualProperty = findProperty(propertyName, actualItem.properties!);\n const expectedProperty = expectedItem?.getPropertySync(propertyName);\n // if maxOccurs is the maximum int value in the context Schema,\n // the property from the DB will not have a value\n if ((expectedProperty as any).maxOccurs === 2147483647) {\n expect((actualProperty as any).maxOccurs).to.be.undefined;\n // set so comparison will pass\n (actualProperty as any).maxOccurs = 2147483647;\n }\n\n expect(actualProperty).to.deep.equal(expectedProperty?.toJSON());\n };\n\n // All but one testable property is in EntityOne\n for (const property of await expectedEntityOne!.getProperties(true)) {\n validateProperty(property.name);\n }\n // Backward direction Navigation property is in EntityTwo\n validateProperty(\"EntityTwoParent\", entityTwoProps, expectedEntityTwo);\n\n });\n\n it(\"Entity query, props parsed successfully\", async function () {\n const testKey = new SchemaKey(\"EntityTest\", 1, 0, 0);\n await IncrementalTestHelper.importSchema(testKey);\n\n const schema = await IncrementalTestHelper.context.getSchema(testKey);\n if (!schema)\n throw new Error(`Could not find schema ${testKey.name}`);\n\n const classPropsObjects = await schemaLocater.getEntities(testKey.name, IncrementalTestHelper.context);\n expect(classPropsObjects.length).to.be.greaterThan(0);\n\n validateItem(\"EntityModifierNone\", classPropsObjects, schema);\n validateItem(\"EntityModifierAbstract\", classPropsObjects, schema);\n validateItem(\"EntityModifierSealed\", classPropsObjects, schema);\n });\n\n it(\"Struct query, props parsed successfully\", async function () {\n const testKey = new SchemaKey(\"StructTest\", 1, 0, 0);\n await IncrementalTestHelper.importSchema(testKey);\n\n const schema = await IncrementalTestHelper.context.getSchema(testKey);\n if (!schema)\n throw new Error(`Could not find schema ${testKey.name}`);\n\n const classPropsObjects = await schemaLocater.getStructs(testKey.name, IncrementalTestHelper.context);\n expect(classPropsObjects.length).to.be.greaterThan(0);\n\n validateItem(\"StructModifierNone\", classPropsObjects, schema);\n validateItem(\"StructModifierAbstract\", classPropsObjects, schema);\n validateItem(\"StructModifierSealed\", classPropsObjects, schema);\n });\n\n it(\"Mixin query, props parsed successfully\", async function () {\n const testKey = new SchemaKey(\"MixinTest\", 1, 0, 0);\n await IncrementalTestHelper.importSchema(testKey);\n\n const schema = await IncrementalTestHelper.context.getSchema(testKey);\n if (!schema)\n throw new Error(`Could not find schema ${testKey.name}`);\n\n const classPropsObjects = await schemaLocater.getMixins(testKey.name, IncrementalTestHelper.context);\n expect(classPropsObjects.length).to.be.greaterThan(0);\n\n validateItem(\"IBaseMixin\", classPropsObjects, schema);\n validateItem(\"ITestMixin\", classPropsObjects, schema);\n });\n\n it(\"Relationship query, props parsed successfully\", async function () {\n const testKey = new SchemaKey(\"RelationshipTest\", 1, 0, 0);\n await IncrementalTestHelper.importSchema(testKey);\n\n const schema = await IncrementalTestHelper.context.getSchema(testKey);\n if (!schema)\n throw new Error(`Could not find schema ${testKey.name}`);\n\n const classPropsObjects = await schemaLocater.getRelationships(testKey.name, IncrementalTestHelper.context);\n expect(classPropsObjects.length).to.be.greaterThan(0);\n\n validateItem(\"OwnerOwnsVehicles\", classPropsObjects, schema);\n validateItem(\"OwnerOwnsCars\", classPropsObjects, schema);\n validateItem(\"OwnerOwnsAmericanCars\", classPropsObjects, schema);\n validateItem(\"PhysicalModelBreaksDownCarElement\", classPropsObjects, schema);\n });\n\n it(\"CustomAttributeClass query, props parsed successfully\", async function () {\n const testKey = new SchemaKey(\"CustomAttributeClassTest\", 1, 0, 0);\n await IncrementalTestHelper.importSchema(testKey);\n\n const schema = await IncrementalTestHelper.context.getSchema(testKey);\n if (!schema)\n throw new Error(`Could not find schema ${testKey.name}`);\n\n const classPropsObjects = await schemaLocater.getCustomAttributeClasses(testKey.name, IncrementalTestHelper.context);\n expect(classPropsObjects.length).to.be.greaterThan(0);\n\n validateItem(\"CustomAttributeModifierNone\", classPropsObjects, schema);\n validateItem(\"CustomAttributeModifierSealed\", classPropsObjects, schema);\n validateItem(\"CustomAttributeModifierAbstract\", classPropsObjects, schema);\n });\n\n it(\"KindOfQuantity query, props parsed successfully\", async function () {\n const testKey = new SchemaKey(\"KindOfQuantityTest\", 1, 0, 0);\n await IncrementalTestHelper.importSchema(testKey);\n\n const schema = await IncrementalTestHelper.context.getSchema(testKey);\n if (!schema)\n throw new Error(`Could not find schema ${testKey.name}`);\n\n const itemPropsObjects = await schemaLocater.getKindOfQuantities(testKey.name, IncrementalTestHelper.context);\n expect(itemPropsObjects.length).to.be.greaterThan(0);\n\n validateItem(\"ACCELERATION\", itemPropsObjects, schema);\n validateItem(\"ANGLE\", itemPropsObjects, schema);\n });\n\n it(\"PropertyCategory query, props parsed successfully\", async function () {\n const testKey = new SchemaKey(\"PropertyCategoryTest\", 1, 0, 0);\n await IncrementalTestHelper.importSchema(testKey);\n\n const schema = await IncrementalTestHelper.context.getSchema(testKey);\n if (!schema)\n throw new Error(`Could not find schema ${testKey.name}`);\n\n const itemPropsObjects = await schemaLocater.getPropertyCategories(testKey.name, IncrementalTestHelper.context);\n expect(itemPropsObjects.length).to.be.greaterThan(0);\n\n validateItem(\"PropertyCategory1\", itemPropsObjects, schema);\n validateItem(\"PropertyCategory2\", itemPropsObjects, schema);\n });\n\n it(\"Enumeration query, props parsed successfully\", async function () {\n const testKey = new SchemaKey(\"EnumerationTest\", 1, 0, 0);\n await IncrementalTestHelper.importSchema(testKey);\n\n const schema = await IncrementalTestHelper.context.getSchema(testKey);\n if (!schema)\n throw new Error(`Could not find schema ${testKey.name}`);\n\n const itemPropsObjects = await schemaLocater.getEnumerations(testKey.name, IncrementalTestHelper.context);\n expect(itemPropsObjects.length).to.be.greaterThan(0);\n\n validateItem(\"IntEnumeration\", itemPropsObjects, schema);\n validateItem(\"StringEnumeration\", itemPropsObjects, schema);\n });\n\n it(\"Unit query, props parsed successfully\", async function () {\n const testKey = new SchemaKey(\"UnitTest\", 1, 0, 0);\n await IncrementalTestHelper.importSchema(testKey);\n\n const schema = await IncrementalTestHelper.context.getSchema(testKey);\n if (!schema)\n throw new Error(`Could not find schema ${testKey.name}`);\n\n const itemPropsObjects = await schemaLocater.getUnits(testKey.name, IncrementalTestHelper.context);\n expect(itemPropsObjects.length).to.be.greaterThan(0);\n\n validateItem(\"LITRE\", itemPropsObjects, schema);\n validateItem(\"GALLON\", itemPropsObjects, schema);\n validateItem(\"ACRE\", itemPropsObjects, schema);\n validateItem(\"FAHRENHEIT\", itemPropsObjects, schema);\n });\n\n it(\"InvertedUnit query, props parsed successfully\", async function () {\n const testKey = new SchemaKey(\"InvertedUnitTest\", 1, 0, 0);\n await IncrementalTestHelper.importSchema(testKey);\n\n const schema = await IncrementalTestHelper.context.getSchema(testKey);\n if (!schema)\n throw new Error(`Could not find schema ${testKey.name}`);\n\n const itemPropsObjects = await schemaLocater.getInvertedUnits(testKey.name, IncrementalTestHelper.context);\n expect(itemPropsObjects.length).to.be.greaterThan(0);\n\n validateItem(\"FT_HORIZONTAL_PER_FT_VERTICAL\", itemPropsObjects, schema);\n });\n\n it(\"UnitSystem query, props parsed successfully\", async function () {\n // There's a UnitSystem in there.\n const testKey = new SchemaKey(\"InvertedUnitTest\", 1, 0, 0);\n await IncrementalTestHelper.importSchema(testKey);\n\n const schema = await IncrementalTestHelper.context.getSchema(testKey);\n if (!schema)\n throw new Error(`Could not find schema ${testKey.name}`);\n\n const itemPropsObjects = await schemaLocater.getUnitSystems(testKey.name, IncrementalTestHelper.context);\n expect(itemPropsObjects.length).to.be.greaterThan(0);\n\n validateItem(\"USCUSTOM\", itemPropsObjects, schema);\n });\n\n it(\"Constant query, props parsed successfully\", async function () {\n // There's a UnitSystem in there.\n const testKey = new SchemaKey(\"ConstantTest\", 1, 0, 0);\n await IncrementalTestHelper.importSchema(testKey);\n\n const schema = await IncrementalTestHelper.context.getSchema(testKey);\n if (!schema)\n throw new Error(`Could not find schema ${testKey.name}`);\n\n const itemPropsObjects = await schemaLocater.getConstants(testKey.name, IncrementalTestHelper.context);\n expect(itemPropsObjects.length).to.be.greaterThan(0);\n\n validateItem(\"KILO\", itemPropsObjects, schema);\n validateItem(\"HALF_PI\", itemPropsObjects, schema);\n });\n\n it(\"Phenomenon query, props parsed successfully\", async function () {\n // There's a Phenomenon in there.\n const testKey = new SchemaKey(\"ConstantTest\", 1, 0, 0);\n await IncrementalTestHelper.importSchema(testKey);\n\n const schema = await IncrementalTestHelper.context.getSchema(testKey);\n if (!schema)\n throw new Error(`Could not find schema ${testKey.name}`);\n\n const itemPropsObjects = await schemaLocater.getPhenomenon(testKey.name, IncrementalTestHelper.context);\n expect(itemPropsObjects.length).to.be.greaterThan(0);\n\n validateItem(\"NUMBER\", itemPropsObjects, schema);\n validateItem(\"LENGTH_RATIO\", itemPropsObjects, schema);\n });\n\n it(\"Format Schema parses successfully\", async function () {\n // Using installed Formats schema\n const testKey = new SchemaKey(\"Formats\", 1, 0, 0);\n await IncrementalTestHelper.importSchema(testKey);\n\n const schema = await IncrementalTestHelper.context.getSchema(testKey);\n if (!schema)\n throw new Error(`Could not find schema ${testKey.name}`);\n\n const itemPropsObjects = await schemaLocater.getFormats(testKey.name, IncrementalTestHelper.context);\n expect(itemPropsObjects.length).to.be.greaterThan(0);\n\n for (const props of itemPropsObjects) {\n validateItem(props.name!, itemPropsObjects, schema);\n }\n });\n\n it(\"Comprehensive Format parses successfully\", async function () {\n const testKey = new SchemaKey(\"FormatTest\", 1, 0, 0);\n await IncrementalTestHelper.importSchema(testKey);\n\n const schema = await IncrementalTestHelper.context.getSchema(testKey);\n if (!schema)\n throw new Error(`Could not find schema ${testKey.name}`);\n\n const itemPropsObjects = await schemaLocater.getFormats(testKey.name, IncrementalTestHelper.context);\n expect(itemPropsObjects.length).to.be.greaterThan(0);\n\n for (const props of itemPropsObjects) {\n validateItem(props.name!, itemPropsObjects, schema);\n }\n });\n\n it(\"CustomAttribute instances parse successfully\", async function () {\n const testKey = new SchemaKey(\"CustomAttributeInstanceTest\", 1, 0, 0);\n await IncrementalTestHelper.importSchema(testKey);\n\n const schema = await IncrementalTestHelper.context.getSchema(testKey);\n if (!schema)\n throw new Error(`Could not find schema ${testKey.name}`);\n\n const itemPropsObjects = await schemaLocater.getStructs(testKey.name, IncrementalTestHelper.context);\n expect(itemPropsObjects.length).to.be.greaterThan(0);\n\n for (const props of itemPropsObjects) {\n validateItem(props.name!, itemPropsObjects, schema);\n }\n });\n});"]}
|
|
1
|
+
{"version":3,"file":"ECSqlQueries.test.js","sourceRoot":"","sources":["../../../../src/test/incrementalSchemaLocater/ECSqlQueries.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { AnyPropertyProps, AnySchemaItemProps, ClassProps, RelationshipClassProps, Schema, SchemaItemType, SchemaKey } from \"@itwin/ecschema-metadata\";\nimport { IncrementalTestHelper } from \"./utils/IncrementalTestHelper\";\nimport { expect, use } from \"chai\";\nimport * as deepEqualInAnyOrder from \"deep-equal-in-any-order\";\nimport { TestSqlSchemaLocater } from \"./utils/TestSqlSchemaLocater\";\n\nuse(deepEqualInAnyOrder);\n\nfunction findItem<T extends AnySchemaItemProps>(name: string, rowData: T[]) {\n const item = rowData.find((i: AnySchemaItemProps) => i.name === name);\n if (!item)\n throw new Error(`Could not find schema item '${name}'`);\n return item;\n}\n\nfunction findProperty<T extends AnyPropertyProps>(name: string, rowData: T[]) {\n return rowData.find((i: AnyPropertyProps) => i.name === name);\n}\n\nfunction isECClass(item: AnySchemaItemProps): item is ClassProps {\n return item.schemaItemType === SchemaItemType.EntityClass || item.schemaItemType === SchemaItemType.Mixin || item.schemaItemType === SchemaItemType.RelationshipClass ||\n item.schemaItemType === SchemaItemType.StructClass || item.schemaItemType === SchemaItemType.CustomAttributeClass;\n}\n\nfunction isRelationshipClass(item: AnySchemaItemProps): item is RelationshipClassProps {\n return \"source\" in item && \"target\" in item;\n}\n\ndescribe(\"ECSql query tests\", function () {\n let schemaLocater: TestSqlSchemaLocater;\n\n function validateItem(name: string, itemPropObjects: AnySchemaItemProps[], schema: Schema) {\n const actualJson = findItem(name, itemPropObjects);\n const expectedItem = schema.getItemSync(name);\n const expectedJson = expectedItem!.toJSON();\n\n // The following code exists because some data coming from the database will not match the\n // data from the context due to default values. This is OK as long as the conditions are\n // correct. For instance, schemaItem name will not exist in serialized JSON, but does exist\n // coming from the DB. RelationshipConstraint's AbstractConstraint is set when only one\n // constraint class exists coming from the database, but a serialized Relationship will not\n // contain the abstract constraint. The one constraint is 'assumed' to be the abstract constraint.\n\n expect(actualJson.name).to.equal(expectedItem?.name);\n delete (actualJson as any).name;\n\n if (isECClass(actualJson)) {\n if (expectedJson.schemaItemType === \"Mixin\") {\n expect(actualJson.modifier).to.be.oneOf([undefined, 'Abstract']);\n delete (actualJson as any).modifier;\n } else if ((expectedJson as ClassProps).modifier === undefined) {\n expect(actualJson.modifier).to.be.oneOf([undefined, 'None']);\n delete (actualJson as any).modifier;\n }\n }\n if (isRelationshipClass(actualJson)) {\n // abstract can be set via database, but not via context for 1 constraint class\n // so verify constraint and conditions are correct and delete property\n const expectedRelationship = expectedJson as any as RelationshipClassProps;\n if (actualJson.source.abstractConstraint !== expectedRelationship.source.abstractConstraint) {\n expect(actualJson.source.abstractConstraint).to.equal(expectedRelationship.source.constraintClasses[0]);\n expect(actualJson.source.constraintClasses.length).to.equal(1);\n delete (actualJson.source as any).abstractConstraint;\n }\n if (actualJson.target.abstractConstraint !== expectedRelationship.target.abstractConstraint) {\n expect(actualJson.target.abstractConstraint).to.equal(expectedRelationship.target.constraintClasses[0]);\n expect(actualJson.target.constraintClasses.length).to.equal(1);\n delete (actualJson.target as any).abstractConstraint;\n }\n }\n\n if (actualJson.schemaItemType === SchemaItemType.Format) {\n if (undefined !== (actualJson as any).includeZero && undefined === (expectedJson as any).includeZero) {\n expect((actualJson as any).includeZero).to.equal(true);\n delete (actualJson as any).includeZero;\n }\n if ((actualJson as any).composite && undefined !== (actualJson as any).composite.includeZero && undefined === (expectedJson as any).composite.includeZero) {\n expect((actualJson as any).composite.includeZero).to.equal(true);\n delete (actualJson as any).composite.includeZero;\n }\n if ((actualJson as any).composite && undefined !== (actualJson as any).composite.spacer && undefined === (expectedJson as any).composite.spacer) {\n expect((actualJson as any).composite.spacer).to.equal(\" \");\n delete (actualJson as any).composite.spacer;\n }\n if (undefined !== (actualJson as any).decimalSeparator && undefined === (expectedJson as any).decimalSeparator) {\n expect((actualJson as any).decimalSeparator).to.equal(\".\");\n delete (actualJson as any).decimalSeparator;\n }\n if (undefined !== (actualJson as any).roundFactor && undefined === (expectedJson as any).roundFactor) {\n expect((actualJson as any).roundFactor).to.equal(0);\n delete (actualJson as any).roundFactor;\n }\n if (undefined !== (actualJson as any).showSignOption && undefined === (expectedJson as any).showSignOption) {\n expect((actualJson as any).showSignOption).to.equal(\"OnlyNegative\");\n delete (actualJson as any).showSignOption;\n }\n if (undefined !== (actualJson as any).thousandSeparator && undefined === (expectedJson as any).thousandSeparator) {\n expect((actualJson as any).thousandSeparator).to.equal(\",\");\n delete (actualJson as any).thousandSeparator;\n }\n if (undefined !== (actualJson as any).uomSeparator && undefined === (expectedJson as any).uomSeparator) {\n expect((actualJson as any).uomSeparator).to.equal(\" \");\n delete (actualJson as any).uomSeparator;\n }\n if (undefined !== (actualJson as any).spacer && undefined === (expectedJson as any).spacer) {\n expect((actualJson as any).spacer).to.equal(\" \");\n delete (actualJson as any).spacer;\n }\n if (undefined !== (actualJson as any).formatTraits) {\n (actualJson as any).formatTraits = (actualJson as any).formatTraits.map((trait: string) => {\n return trait.charAt(0).toUpperCase() + trait.slice(1);\n });\n }\n }\n\n expect(actualJson).to.deep.equalInAnyOrder(expectedJson);\n }\n\n this.beforeEach(async () => {\n await IncrementalTestHelper.setup();\n schemaLocater = new TestSqlSchemaLocater(IncrementalTestHelper.iModel);\n });\n\n afterEach(async () => {\n await IncrementalTestHelper.close();\n });\n\n it(\"Schema query, props parsed successfully\", async function () {\n const testKey = new SchemaKey(\"SchemaTest\", 1, 0, 0);\n await IncrementalTestHelper.importSchema(testKey);\n\n const expectedSchema = await IncrementalTestHelper.context.getSchema(testKey);\n if (!expectedSchema)\n throw new Error(`Could not find schema ${testKey.name}`);\n\n const actualSchemaProps = await schemaLocater.getSchemaJson(testKey, IncrementalTestHelper.context);\n const actualSchema = await Schema.fromJson(actualSchemaProps!, IncrementalTestHelper.context);\n\n expect(actualSchema.toJSON()).to.deep.equal(expectedSchema?.toJSON());\n });\n\n it(\"Property query, props parsed successfully\", async function () {\n const testKey = new SchemaKey(\"PropertyTest\", 1, 0, 0);\n await IncrementalTestHelper.importSchema(testKey);\n\n const schema = await IncrementalTestHelper.context.getSchema(testKey);\n if (!schema)\n throw new Error(`Could not find schema ${testKey.name}`);\n\n const classPropsObjects = await schemaLocater.getEntities(testKey.name, IncrementalTestHelper.context);\n const entityOneProps = findItem(\"EntityOne\", classPropsObjects);\n const entityTwoProps = findItem(\"EntityTwo\", classPropsObjects);\n const expectedEntityOne = await schema.getEntityClass(\"EntityOne\");\n const expectedEntityTwo = await schema.getEntityClass(\"EntityTwo\");\n\n const validateProperty = (propertyName: string, actualItem = entityOneProps, expectedItem = expectedEntityOne) => {\n const actualProperty = findProperty(propertyName, actualItem.properties!);\n const expectedProperty = expectedItem?.getPropertySync(propertyName);\n // if maxOccurs is the maximum int value in the context Schema,\n // the property from the DB will not have a value\n if ((expectedProperty as any).maxOccurs === 2147483647) {\n expect((actualProperty as any).maxOccurs).to.be.undefined;\n // set so comparison will pass\n (actualProperty as any).maxOccurs = 2147483647;\n }\n\n expect(actualProperty).to.deep.equal(expectedProperty?.toJSON());\n };\n\n // All but one testable property is in EntityOne\n for (const property of await expectedEntityOne!.getProperties(true)) {\n validateProperty(property.name);\n }\n // Backward direction Navigation property is in EntityTwo\n validateProperty(\"EntityTwoParent\", entityTwoProps, expectedEntityTwo);\n\n });\n\n it(\"Entity query, props parsed successfully\", async function () {\n const testKey = new SchemaKey(\"EntityTest\", 1, 0, 0);\n await IncrementalTestHelper.importSchema(testKey);\n\n const schema = await IncrementalTestHelper.context.getSchema(testKey);\n if (!schema)\n throw new Error(`Could not find schema ${testKey.name}`);\n\n const classPropsObjects = await schemaLocater.getEntities(testKey.name, IncrementalTestHelper.context);\n expect(classPropsObjects.length).to.be.greaterThan(0);\n\n validateItem(\"EntityModifierNone\", classPropsObjects, schema);\n validateItem(\"EntityModifierAbstract\", classPropsObjects, schema);\n validateItem(\"EntityModifierSealed\", classPropsObjects, schema);\n });\n\n it(\"Struct query, props parsed successfully\", async function () {\n const testKey = new SchemaKey(\"StructTest\", 1, 0, 0);\n await IncrementalTestHelper.importSchema(testKey);\n\n const schema = await IncrementalTestHelper.context.getSchema(testKey);\n if (!schema)\n throw new Error(`Could not find schema ${testKey.name}`);\n\n const classPropsObjects = await schemaLocater.getStructs(testKey.name, IncrementalTestHelper.context);\n expect(classPropsObjects.length).to.be.greaterThan(0);\n\n validateItem(\"StructModifierNone\", classPropsObjects, schema);\n validateItem(\"StructModifierAbstract\", classPropsObjects, schema);\n validateItem(\"StructModifierSealed\", classPropsObjects, schema);\n });\n\n it(\"Mixin query, props parsed successfully\", async function () {\n const testKey = new SchemaKey(\"MixinTest\", 1, 0, 0);\n await IncrementalTestHelper.importSchema(testKey);\n\n const schema = await IncrementalTestHelper.context.getSchema(testKey);\n if (!schema)\n throw new Error(`Could not find schema ${testKey.name}`);\n\n const classPropsObjects = await schemaLocater.getMixins(testKey.name, IncrementalTestHelper.context);\n expect(classPropsObjects.length).to.be.greaterThan(0);\n\n validateItem(\"IBaseMixin\", classPropsObjects, schema);\n validateItem(\"ITestMixin\", classPropsObjects, schema);\n });\n\n it(\"Relationship query, props parsed successfully\", async function () {\n const testKey = new SchemaKey(\"RelationshipTest\", 1, 0, 0);\n await IncrementalTestHelper.importSchema(testKey);\n\n const schema = await IncrementalTestHelper.context.getSchema(testKey);\n if (!schema)\n throw new Error(`Could not find schema ${testKey.name}`);\n\n const classPropsObjects = await schemaLocater.getRelationships(testKey.name, IncrementalTestHelper.context);\n expect(classPropsObjects.length).to.be.greaterThan(0);\n\n validateItem(\"OwnerOwnsVehicles\", classPropsObjects, schema);\n validateItem(\"OwnerOwnsCars\", classPropsObjects, schema);\n validateItem(\"OwnerOwnsAmericanCars\", classPropsObjects, schema);\n validateItem(\"PhysicalModelBreaksDownCarElement\", classPropsObjects, schema);\n });\n\n it(\"CustomAttributeClass query, props parsed successfully\", async function () {\n const testKey = new SchemaKey(\"CustomAttributeClassTest\", 1, 0, 0);\n await IncrementalTestHelper.importSchema(testKey);\n\n const schema = await IncrementalTestHelper.context.getSchema(testKey);\n if (!schema)\n throw new Error(`Could not find schema ${testKey.name}`);\n\n const classPropsObjects = await schemaLocater.getCustomAttributeClasses(testKey.name, IncrementalTestHelper.context);\n expect(classPropsObjects.length).to.be.greaterThan(0);\n\n validateItem(\"CustomAttributeModifierNone\", classPropsObjects, schema);\n validateItem(\"CustomAttributeModifierSealed\", classPropsObjects, schema);\n validateItem(\"CustomAttributeModifierAbstract\", classPropsObjects, schema);\n });\n\n it(\"KindOfQuantity query, props parsed successfully\", async function () {\n const testKey = new SchemaKey(\"KindOfQuantityTest\", 1, 0, 0);\n await IncrementalTestHelper.importSchema(testKey);\n\n const schema = await IncrementalTestHelper.context.getSchema(testKey);\n if (!schema)\n throw new Error(`Could not find schema ${testKey.name}`);\n\n const itemPropsObjects = await schemaLocater.getKindOfQuantities(testKey.name, IncrementalTestHelper.context);\n expect(itemPropsObjects.length).to.be.greaterThan(0);\n\n validateItem(\"ACCELERATION\", itemPropsObjects, schema);\n validateItem(\"ANGLE\", itemPropsObjects, schema);\n });\n\n it(\"PropertyCategory query, props parsed successfully\", async function () {\n const testKey = new SchemaKey(\"PropertyCategoryTest\", 1, 0, 0);\n await IncrementalTestHelper.importSchema(testKey);\n\n const schema = await IncrementalTestHelper.context.getSchema(testKey);\n if (!schema)\n throw new Error(`Could not find schema ${testKey.name}`);\n\n const itemPropsObjects = await schemaLocater.getPropertyCategories(testKey.name, IncrementalTestHelper.context);\n expect(itemPropsObjects.length).to.be.greaterThan(0);\n\n validateItem(\"PropertyCategory1\", itemPropsObjects, schema);\n validateItem(\"PropertyCategory2\", itemPropsObjects, schema);\n });\n\n it(\"Enumeration query, props parsed successfully\", async function () {\n const testKey = new SchemaKey(\"EnumerationTest\", 1, 0, 0);\n await IncrementalTestHelper.importSchema(testKey);\n\n const schema = await IncrementalTestHelper.context.getSchema(testKey);\n if (!schema)\n throw new Error(`Could not find schema ${testKey.name}`);\n\n const itemPropsObjects = await schemaLocater.getEnumerations(testKey.name, IncrementalTestHelper.context);\n expect(itemPropsObjects.length).to.be.greaterThan(0);\n\n validateItem(\"IntEnumeration\", itemPropsObjects, schema);\n validateItem(\"StringEnumeration\", itemPropsObjects, schema);\n });\n\n it(\"Unit query, props parsed successfully\", async function () {\n const testKey = new SchemaKey(\"UnitTest\", 1, 0, 0);\n await IncrementalTestHelper.importSchema(testKey);\n\n const schema = await IncrementalTestHelper.context.getSchema(testKey);\n if (!schema)\n throw new Error(`Could not find schema ${testKey.name}`);\n\n const itemPropsObjects = await schemaLocater.getUnits(testKey.name, IncrementalTestHelper.context);\n expect(itemPropsObjects.length).to.be.greaterThan(0);\n\n validateItem(\"LITRE\", itemPropsObjects, schema);\n validateItem(\"GALLON\", itemPropsObjects, schema);\n validateItem(\"ACRE\", itemPropsObjects, schema);\n validateItem(\"FAHRENHEIT\", itemPropsObjects, schema);\n });\n\n it(\"InvertedUnit query, props parsed successfully\", async function () {\n const testKey = new SchemaKey(\"InvertedUnitTest\", 1, 0, 0);\n await IncrementalTestHelper.importSchema(testKey);\n\n const schema = await IncrementalTestHelper.context.getSchema(testKey);\n if (!schema)\n throw new Error(`Could not find schema ${testKey.name}`);\n\n const itemPropsObjects = await schemaLocater.getInvertedUnits(testKey.name, IncrementalTestHelper.context);\n expect(itemPropsObjects.length).to.be.greaterThan(0);\n\n validateItem(\"FT_HORIZONTAL_PER_FT_VERTICAL\", itemPropsObjects, schema);\n });\n\n it(\"UnitSystem query, props parsed successfully\", async function () {\n // There's a UnitSystem in there.\n const testKey = new SchemaKey(\"InvertedUnitTest\", 1, 0, 0);\n await IncrementalTestHelper.importSchema(testKey);\n\n const schema = await IncrementalTestHelper.context.getSchema(testKey);\n if (!schema)\n throw new Error(`Could not find schema ${testKey.name}`);\n\n const itemPropsObjects = await schemaLocater.getUnitSystems(testKey.name, IncrementalTestHelper.context);\n expect(itemPropsObjects.length).to.be.greaterThan(0);\n\n validateItem(\"USCUSTOM\", itemPropsObjects, schema);\n });\n\n it(\"Constant query, props parsed successfully\", async function () {\n // There's a UnitSystem in there.\n const testKey = new SchemaKey(\"ConstantTest\", 1, 0, 0);\n await IncrementalTestHelper.importSchema(testKey);\n\n const schema = await IncrementalTestHelper.context.getSchema(testKey);\n if (!schema)\n throw new Error(`Could not find schema ${testKey.name}`);\n\n const itemPropsObjects = await schemaLocater.getConstants(testKey.name, IncrementalTestHelper.context);\n expect(itemPropsObjects.length).to.be.greaterThan(0);\n\n validateItem(\"KILO\", itemPropsObjects, schema);\n validateItem(\"HALF_PI\", itemPropsObjects, schema);\n });\n\n it(\"Phenomenon query, props parsed successfully\", async function () {\n // There's a Phenomenon in there.\n const testKey = new SchemaKey(\"ConstantTest\", 1, 0, 0);\n await IncrementalTestHelper.importSchema(testKey);\n\n const schema = await IncrementalTestHelper.context.getSchema(testKey);\n if (!schema)\n throw new Error(`Could not find schema ${testKey.name}`);\n\n const itemPropsObjects = await schemaLocater.getPhenomenon(testKey.name, IncrementalTestHelper.context);\n expect(itemPropsObjects.length).to.be.greaterThan(0);\n\n validateItem(\"NUMBER\", itemPropsObjects, schema);\n validateItem(\"LENGTH_RATIO\", itemPropsObjects, schema);\n });\n\n it(\"Format Schema parses successfully\", async function () {\n // Using installed Formats schema\n const testKey = new SchemaKey(\"Formats\", 1, 0, 0);\n await IncrementalTestHelper.importSchema(testKey);\n\n const schema = await IncrementalTestHelper.context.getSchema(testKey);\n if (!schema)\n throw new Error(`Could not find schema ${testKey.name}`);\n\n const itemPropsObjects = await schemaLocater.getFormats(testKey.name, IncrementalTestHelper.context);\n expect(itemPropsObjects.length).to.be.greaterThan(0);\n\n for (const props of itemPropsObjects) {\n validateItem(props.name!, itemPropsObjects, schema);\n }\n });\n\n it(\"Comprehensive Format parses successfully\", async function () {\n const testKey = new SchemaKey(\"FormatTest\", 1, 0, 0);\n await IncrementalTestHelper.importSchema(testKey);\n\n const schema = await IncrementalTestHelper.context.getSchema(testKey);\n if (!schema)\n throw new Error(`Could not find schema ${testKey.name}`);\n\n const itemPropsObjects = await schemaLocater.getFormats(testKey.name, IncrementalTestHelper.context);\n expect(itemPropsObjects.length).to.be.greaterThan(0);\n\n for (const props of itemPropsObjects) {\n validateItem(props.name!, itemPropsObjects, schema);\n }\n });\n\n it(\"CustomAttribute instances parse successfully\", async function () {\n const testKey = new SchemaKey(\"CustomAttributeInstanceTest\", 1, 0, 0);\n await IncrementalTestHelper.importSchema(testKey);\n\n const schema = await IncrementalTestHelper.context.getSchema(testKey);\n if (!schema)\n throw new Error(`Could not find schema ${testKey.name}`);\n\n const itemPropsObjects = await schemaLocater.getStructs(testKey.name, IncrementalTestHelper.context);\n expect(itemPropsObjects.length).to.be.greaterThan(0);\n\n for (const props of itemPropsObjects) {\n validateItem(props.name!, itemPropsObjects, schema);\n }\n });\n});"]}
|
|
@@ -163,38 +163,25 @@ describe("Changeset Reader API", async () => {
|
|
|
163
163
|
expect(rwIModel[_nativeDb].executeSql("UPDATE ec_Table SET ExclusiveRootClassId=NULL WHERE Name='bis_GeometricElement2d_Overflow'")).to.be.eq(DbResult.BE_SQLITE_OK);
|
|
164
164
|
const adaptor = new ECChangesetAdaptor(reader);
|
|
165
165
|
let assertOnOverflowTable = false;
|
|
166
|
-
const
|
|
167
|
-
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
168
|
-
ECClassId: undefined,
|
|
169
|
-
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
170
|
-
ECInstanceId: "",
|
|
171
|
-
$meta: {
|
|
172
|
-
tables: ["bis_GeometricElement2d_Overflow"],
|
|
173
|
-
op: "Updated",
|
|
174
|
-
classFullName: "BisCore:GeometricElement2d",
|
|
175
|
-
fallbackClassId: "0x5e",
|
|
176
|
-
changeIndexes: [3],
|
|
177
|
-
stage: "New",
|
|
178
|
-
},
|
|
179
|
-
};
|
|
180
|
-
const expectedDeleted = {
|
|
181
|
-
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
182
|
-
ECClassId: undefined,
|
|
183
|
-
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
184
|
-
ECInstanceId: "",
|
|
185
|
-
$meta: {
|
|
186
|
-
tables: ["bis_GeometricElement2d_Overflow"],
|
|
187
|
-
op: "Updated",
|
|
188
|
-
classFullName: "BisCore:GeometricElement2d",
|
|
189
|
-
fallbackClassId: "0x5e",
|
|
190
|
-
changeIndexes: [3],
|
|
191
|
-
stage: "Old",
|
|
192
|
-
},
|
|
193
|
-
};
|
|
166
|
+
const classId = getClassIdByName(rwIModel, "GeometricElement2d");
|
|
194
167
|
while (adaptor.step()) {
|
|
195
168
|
if (adaptor.op === "Updated" && adaptor.inserted?.$meta?.tables[0] === "bis_GeometricElement2d_Overflow") {
|
|
196
|
-
assert.
|
|
197
|
-
assert.
|
|
169
|
+
assert.isUndefined(adaptor.inserted.ECClassId);
|
|
170
|
+
assert.equal(adaptor.inserted.ECInstanceId, "");
|
|
171
|
+
assert.deepEqual(adaptor.inserted.$meta?.tables, ["bis_GeometricElement2d_Overflow"]);
|
|
172
|
+
assert.equal(adaptor.inserted.$meta?.op, "Updated");
|
|
173
|
+
assert.equal(adaptor.inserted.$meta?.classFullName, "BisCore:GeometricElement2d");
|
|
174
|
+
assert.equal(adaptor.inserted.$meta.fallbackClassId, classId);
|
|
175
|
+
assert.deepEqual(adaptor.inserted.$meta?.changeIndexes, [3]);
|
|
176
|
+
assert.equal(adaptor.inserted.$meta?.stage, "New");
|
|
177
|
+
assert.equal(adaptor.deleted.ECInstanceId, "");
|
|
178
|
+
assert.isUndefined(adaptor.deleted.ECClassId);
|
|
179
|
+
assert.deepEqual(adaptor.deleted.$meta?.tables, ["bis_GeometricElement2d_Overflow"]);
|
|
180
|
+
assert.equal(adaptor.deleted.$meta?.op, "Updated");
|
|
181
|
+
assert.equal(adaptor.deleted.$meta?.classFullName, "BisCore:GeometricElement2d");
|
|
182
|
+
assert.equal(adaptor.deleted.$meta.fallbackClassId, classId);
|
|
183
|
+
assert.deepEqual(adaptor.deleted.$meta?.changeIndexes, [3]);
|
|
184
|
+
assert.equal(adaptor.deleted.$meta?.stage, "Old");
|
|
198
185
|
assertOnOverflowTable = true;
|
|
199
186
|
}
|
|
200
187
|
}
|
|
@@ -209,6 +196,12 @@ describe("Changeset Reader API", async () => {
|
|
|
209
196
|
return stmt.getValue(0).getId();
|
|
210
197
|
});
|
|
211
198
|
}
|
|
199
|
+
async function getClassNameById(iModel, classId) {
|
|
200
|
+
const reader = iModel.createQueryReader(`select ec_classname(${classId});`);
|
|
201
|
+
if (await reader.step())
|
|
202
|
+
return reader.current[0];
|
|
203
|
+
return undefined;
|
|
204
|
+
}
|
|
212
205
|
it("Changeset reader / EC adaptor", async () => {
|
|
213
206
|
const adminToken = "super manager token";
|
|
214
207
|
const iModelName = "test";
|
|
@@ -292,7 +285,7 @@ describe("Changeset Reader API", async () => {
|
|
|
292
285
|
};
|
|
293
286
|
rwIModel.saveChanges("user 1: data");
|
|
294
287
|
if (true || "test local changes") {
|
|
295
|
-
const testChanges = (changes) => {
|
|
288
|
+
const testChanges = async (changes) => {
|
|
296
289
|
assert.equal(changes.length, 3);
|
|
297
290
|
assert.equal(changes[0].ECInstanceId, "0x20000000001");
|
|
298
291
|
assert.equal(changes[0].$meta?.classFullName, "BisCore:DrawingModel");
|
|
@@ -318,8 +311,10 @@ describe("Changeset Reader API", async () => {
|
|
|
318
311
|
assert.deepEqual(el.BBoxLow, { X: -25, Y: -25 });
|
|
319
312
|
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
320
313
|
assert.deepEqual(el.BBoxHigh, { X: 15, Y: 15 });
|
|
321
|
-
|
|
322
|
-
assert.
|
|
314
|
+
assert.equal(el.Category.Id, "0x20000000002");
|
|
315
|
+
assert.isNotEmpty(el.Category.RelECClassId);
|
|
316
|
+
const categoryRelClass = await getClassNameById(rwIModel, el.Category.RelECClassId);
|
|
317
|
+
assert.equal("BisCore:GeometricElement2dIsInCategory", categoryRelClass);
|
|
323
318
|
assert.equal(el.s, "xxxxxxxxx");
|
|
324
319
|
assert.isNull(el.CodeValue);
|
|
325
320
|
assert.isNull(el.UserLabel);
|
|
@@ -331,12 +326,14 @@ describe("Changeset Reader API", async () => {
|
|
|
331
326
|
assert.deepEqual(el.Parent, { Id: null, RelECClassId: null });
|
|
332
327
|
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
333
328
|
assert.deepEqual(el.TypeDefinition, { Id: null, RelECClassId: null });
|
|
334
|
-
|
|
335
|
-
assert.
|
|
336
|
-
|
|
337
|
-
assert.
|
|
338
|
-
|
|
339
|
-
assert.
|
|
329
|
+
assert.equal(el.CodeSpec.Id, "0x1");
|
|
330
|
+
assert.isNotEmpty(el.CodeSpec.RelECClassId);
|
|
331
|
+
const codeSpecRelClass = await getClassNameById(rwIModel, el.CodeSpec.RelECClassId);
|
|
332
|
+
assert.equal("BisCore:CodeSpecSpecifiesCode", codeSpecRelClass);
|
|
333
|
+
assert.equal(el.CodeScope.Id, "0x1");
|
|
334
|
+
assert.isNotEmpty(el.CodeScope.RelECClassId);
|
|
335
|
+
const codeScopeRelClass = await getClassNameById(rwIModel, el.CodeScope.RelECClassId);
|
|
336
|
+
assert.equal("BisCore:ElementScopesCode", codeScopeRelClass);
|
|
340
337
|
assert.deepEqual(el.$meta, {
|
|
341
338
|
tables: [
|
|
342
339
|
"bis_GeometricElement2d",
|
|
@@ -360,7 +357,7 @@ describe("Changeset Reader API", async () => {
|
|
|
360
357
|
while (adaptor.step()) {
|
|
361
358
|
pcu.appendFrom(adaptor);
|
|
362
359
|
}
|
|
363
|
-
testChanges(Array.from(pcu.instances));
|
|
360
|
+
await testChanges(Array.from(pcu.instances));
|
|
364
361
|
}
|
|
365
362
|
catch (e_1) {
|
|
366
363
|
env_1.error = e_1;
|
|
@@ -379,7 +376,7 @@ describe("Changeset Reader API", async () => {
|
|
|
379
376
|
while (adaptor.step()) {
|
|
380
377
|
pcu.appendFrom(adaptor);
|
|
381
378
|
}
|
|
382
|
-
testChanges(Array.from(pcu.instances));
|
|
379
|
+
await testChanges(Array.from(pcu.instances));
|
|
383
380
|
}
|
|
384
381
|
catch (e_2) {
|
|
385
382
|
env_2.error = e_2;
|
|
@@ -515,7 +512,7 @@ describe("Changeset Reader API", async () => {
|
|
|
515
512
|
}
|
|
516
513
|
}
|
|
517
514
|
if (true || "test changeset file") {
|
|
518
|
-
const testChanges = (changes) => {
|
|
515
|
+
const testChanges = async (changes) => {
|
|
519
516
|
assert.equal(changes.length, 3);
|
|
520
517
|
assert.equal(changes[0].ECInstanceId, "0x20000000001");
|
|
521
518
|
assert.equal(changes[0].$meta?.classFullName, "BisCore:DrawingModel");
|
|
@@ -541,8 +538,10 @@ describe("Changeset Reader API", async () => {
|
|
|
541
538
|
assert.deepEqual(el.BBoxLow, { X: -25, Y: -25 });
|
|
542
539
|
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
543
540
|
assert.deepEqual(el.BBoxHigh, { X: 15, Y: 15 });
|
|
544
|
-
|
|
545
|
-
assert.
|
|
541
|
+
assert.equal(el.Category.Id, "0x20000000002");
|
|
542
|
+
assert.isNotEmpty(el.Category.RelECClassId);
|
|
543
|
+
const categoryRelClass = await getClassNameById(rwIModel, el.Category.RelECClassId);
|
|
544
|
+
assert.equal("BisCore:GeometricElement2dIsInCategory", categoryRelClass);
|
|
546
545
|
assert.equal(el.s, "xxxxxxxxx");
|
|
547
546
|
assert.isNull(el.CodeValue);
|
|
548
547
|
assert.isNull(el.UserLabel);
|
|
@@ -554,12 +553,14 @@ describe("Changeset Reader API", async () => {
|
|
|
554
553
|
assert.deepEqual(el.Parent, { Id: null, RelECClassId: null });
|
|
555
554
|
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
556
555
|
assert.deepEqual(el.TypeDefinition, { Id: null, RelECClassId: null });
|
|
557
|
-
|
|
558
|
-
assert.
|
|
559
|
-
|
|
560
|
-
assert.
|
|
561
|
-
|
|
562
|
-
assert.
|
|
556
|
+
assert.equal(el.CodeSpec.Id, "0x1");
|
|
557
|
+
assert.isNotEmpty(el.CodeSpec.RelECClassId);
|
|
558
|
+
const codeSpecRelClass = await getClassNameById(rwIModel, el.CodeSpec.RelECClassId);
|
|
559
|
+
assert.equal("BisCore:CodeSpecSpecifiesCode", codeSpecRelClass);
|
|
560
|
+
assert.equal(el.CodeScope.Id, "0x1");
|
|
561
|
+
assert.isNotEmpty(el.CodeScope.RelECClassId);
|
|
562
|
+
const codeScopeRelClass = await getClassNameById(rwIModel, el.CodeScope.RelECClassId);
|
|
563
|
+
assert.equal("BisCore:ElementScopesCode", codeScopeRelClass);
|
|
563
564
|
assert.deepEqual(el.$meta, {
|
|
564
565
|
tables: [
|
|
565
566
|
"bis_GeometricElement2d",
|
|
@@ -583,7 +584,7 @@ describe("Changeset Reader API", async () => {
|
|
|
583
584
|
while (adaptor.step()) {
|
|
584
585
|
pcu.appendFrom(adaptor);
|
|
585
586
|
}
|
|
586
|
-
testChanges(Array.from(pcu.instances));
|
|
587
|
+
await testChanges(Array.from(pcu.instances));
|
|
587
588
|
}
|
|
588
589
|
catch (e_7) {
|
|
589
590
|
env_7.error = e_7;
|
|
@@ -602,7 +603,7 @@ describe("Changeset Reader API", async () => {
|
|
|
602
603
|
while (adaptor.step()) {
|
|
603
604
|
pcu.appendFrom(adaptor);
|
|
604
605
|
}
|
|
605
|
-
testChanges(Array.from(pcu.instances));
|
|
606
|
+
await testChanges(Array.from(pcu.instances));
|
|
606
607
|
}
|
|
607
608
|
catch (e_8) {
|
|
608
609
|
env_8.error = e_8;
|
|
@@ -1284,15 +1285,15 @@ describe("Changeset Reader API", async () => {
|
|
|
1284
1285
|
assert.equal(secondBriefcaseChangesets.length, 2);
|
|
1285
1286
|
const [secondBriefcaseChangeset1, secondBriefcaseChangeset2] = secondBriefcaseChangesets;
|
|
1286
1287
|
expect(secondBriefcaseChangeset1.uncompressedSizeBytes).to.be.greaterThan(40000);
|
|
1287
|
-
expect(secondBriefcaseChangeset1.insertedRows).to.be.
|
|
1288
|
+
expect(secondBriefcaseChangeset1.insertedRows).to.be.eql(0);
|
|
1288
1289
|
expect(secondBriefcaseChangeset1.updatedRows).to.be.greaterThanOrEqual(921);
|
|
1289
|
-
expect(secondBriefcaseChangeset1.deletedRows).to.be.
|
|
1290
|
+
expect(secondBriefcaseChangeset1.deletedRows).to.be.greaterThanOrEqual(52);
|
|
1290
1291
|
expect(secondBriefcaseChangeset1.totalFullTableScans).to.be.eql(0);
|
|
1291
1292
|
expect(secondBriefcaseChangeset1.perStatementStats.length).to.be.eql(11);
|
|
1292
1293
|
expect(secondBriefcaseChangeset2.uncompressedSizeBytes).to.be.greaterThan(40000);
|
|
1293
|
-
expect(secondBriefcaseChangeset2.insertedRows).to.be.
|
|
1294
|
+
expect(secondBriefcaseChangeset2.insertedRows).to.be.greaterThanOrEqual(52);
|
|
1294
1295
|
expect(secondBriefcaseChangeset2.updatedRows).to.be.greaterThanOrEqual(921);
|
|
1295
|
-
expect(secondBriefcaseChangeset2.deletedRows).to.be.
|
|
1296
|
+
expect(secondBriefcaseChangeset2.deletedRows).to.be.eql(0);
|
|
1296
1297
|
expect(secondBriefcaseChangeset2.totalFullTableScans).to.be.eql(0);
|
|
1297
1298
|
expect(secondBriefcaseChangeset2.perStatementStats.length).to.be.eql(11);
|
|
1298
1299
|
// Cleanup
|
|
@@ -1347,6 +1348,7 @@ describe("Changeset Reader API", async () => {
|
|
|
1347
1348
|
await rwIModel.locks.acquireLocks({ shared: drawingModelId });
|
|
1348
1349
|
const e1id = rwIModel.elements.insertElement(e1);
|
|
1349
1350
|
assert.isTrue(Id64.isValidId64(e1id), "insert worked");
|
|
1351
|
+
const testElClassId = getClassIdByName(rwIModel, "Test2dElement");
|
|
1350
1352
|
if (true) {
|
|
1351
1353
|
const reader = SqliteChangesetReader.openInMemory({ db: rwIModel, disableSchemaCheck: true });
|
|
1352
1354
|
const adaptor = new ChangesetECAdaptor(reader);
|
|
@@ -1362,7 +1364,7 @@ describe("Changeset Reader API", async () => {
|
|
|
1362
1364
|
expect(testEl.$meta?.op).to.equals("Inserted");
|
|
1363
1365
|
expect(testEl.$meta?.classFullName).to.equals("TestDomain:Test2dElement");
|
|
1364
1366
|
expect(testEl.$meta?.stage).to.equals("New");
|
|
1365
|
-
expect(testEl.ECClassId).to.equals(
|
|
1367
|
+
expect(testEl.ECClassId).to.equals(testElClassId);
|
|
1366
1368
|
expect(testEl.ECInstanceId).to.equals(e1id);
|
|
1367
1369
|
expect(testEl.Model.Id).to.equals(drawingModelId);
|
|
1368
1370
|
expect(testEl.Category.Id).to.equals(drawingCategoryId);
|
|
@@ -1390,12 +1392,13 @@ describe("Changeset Reader API", async () => {
|
|
|
1390
1392
|
// verify the inserted element's properties
|
|
1391
1393
|
const instances = Array.from(unifier.instances);
|
|
1392
1394
|
expect(instances.length).to.equals(3);
|
|
1395
|
+
const drawingModelClassId = getClassIdByName(rwIModel, "DrawingModel");
|
|
1393
1396
|
// DrawingModel new instance
|
|
1394
1397
|
const drawingModelElNew = instances[0];
|
|
1395
1398
|
expect(drawingModelElNew.$meta?.op).to.equals("Updated");
|
|
1396
1399
|
expect(drawingModelElNew.$meta?.classFullName).to.equals("BisCore:DrawingModel");
|
|
1397
1400
|
expect(drawingModelElNew.$meta?.stage).to.equals("New");
|
|
1398
|
-
expect(drawingModelElNew.ECClassId).to.equals(
|
|
1401
|
+
expect(drawingModelElNew.ECClassId).to.equals(drawingModelClassId);
|
|
1399
1402
|
expect(drawingModelElNew.ECInstanceId).to.equals(drawingModelId);
|
|
1400
1403
|
expect(drawingModelElNew.LastMod).to.exist;
|
|
1401
1404
|
expect(drawingModelElNew.GeometryGuid).to.exist;
|
|
@@ -1404,7 +1407,7 @@ describe("Changeset Reader API", async () => {
|
|
|
1404
1407
|
expect(drawingModelElOld.$meta?.op).to.equals("Updated");
|
|
1405
1408
|
expect(drawingModelElOld.$meta?.classFullName).to.equals("BisCore:DrawingModel");
|
|
1406
1409
|
expect(drawingModelElOld.$meta?.stage).to.equals("Old");
|
|
1407
|
-
expect(drawingModelElOld.ECClassId).to.equals(
|
|
1410
|
+
expect(drawingModelElOld.ECClassId).to.equals(drawingModelClassId);
|
|
1408
1411
|
expect(drawingModelElOld.ECInstanceId).to.equals(drawingModelId);
|
|
1409
1412
|
expect(drawingModelElOld.LastMod).to.null;
|
|
1410
1413
|
expect(drawingModelElOld.GeometryGuid).to.null;
|
|
@@ -1413,7 +1416,7 @@ describe("Changeset Reader API", async () => {
|
|
|
1413
1416
|
expect(testEl.$meta?.op).to.equals("Inserted");
|
|
1414
1417
|
expect(testEl.$meta?.classFullName).to.equals("TestDomain:Test2dElement");
|
|
1415
1418
|
expect(testEl.$meta?.stage).to.equals("New");
|
|
1416
|
-
expect(testEl.ECClassId).to.equals(
|
|
1419
|
+
expect(testEl.ECClassId).to.equals(testElClassId);
|
|
1417
1420
|
expect(testEl.ECInstanceId).to.equals(e1id);
|
|
1418
1421
|
expect(testEl.Model.Id).to.equals(drawingModelId);
|
|
1419
1422
|
expect(testEl.Category.Id).to.equals(drawingCategoryId);
|