@itwin/presentation-core-interop 0.1.2 → 0.2.1
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 +19 -0
- package/lib/cjs/core-interop/Metadata.d.ts.map +1 -1
- package/lib/cjs/core-interop/Metadata.js +7 -1
- package/lib/cjs/core-interop/Metadata.js.map +1 -1
- package/lib/cjs/core-interop/QueryExecutor.d.ts.map +1 -1
- package/lib/cjs/core-interop/QueryExecutor.js +5 -1
- package/lib/cjs/core-interop/QueryExecutor.js.map +1 -1
- package/lib/esm/core-interop/Metadata.d.ts.map +1 -1
- package/lib/esm/core-interop/Metadata.js +7 -1
- package/lib/esm/core-interop/Metadata.js.map +1 -1
- package/lib/esm/core-interop/QueryExecutor.d.ts.map +1 -1
- package/lib/esm/core-interop/QueryExecutor.js +5 -1
- package/lib/esm/core-interop/QueryExecutor.js.map +1 -1
- package/package.json +12 -12
- package/.mocharc.json +0 -8
- package/.nycrc +0 -14
- package/api/presentation-core-interop.api.md +0 -38
- package/api/presentation-core-interop.exports.csv +0 -7
- package/eslint.config.js +0 -14
- package/lib/cjs/test/Formatting.test.d.ts +0 -2
- package/lib/cjs/test/Formatting.test.d.ts.map +0 -1
- package/lib/cjs/test/Formatting.test.js +0 -282
- package/lib/cjs/test/Formatting.test.js.map +0 -1
- package/lib/cjs/test/Logging.test.d.ts +0 -2
- package/lib/cjs/test/Logging.test.d.ts.map +0 -1
- package/lib/cjs/test/Logging.test.js +0 -57
- package/lib/cjs/test/Logging.test.js.map +0 -1
- package/lib/cjs/test/Metadata.test.d.ts +0 -2
- package/lib/cjs/test/Metadata.test.d.ts.map +0 -1
- package/lib/cjs/test/Metadata.test.js +0 -684
- package/lib/cjs/test/Metadata.test.js.map +0 -1
- package/lib/cjs/test/QueryExecutor.test.d.ts +0 -2
- package/lib/cjs/test/QueryExecutor.test.d.ts.map +0 -1
- package/lib/cjs/test/QueryExecutor.test.js +0 -178
- package/lib/cjs/test/QueryExecutor.test.js.map +0 -1
- package/lib/cjs/test/Transactions.test.d.ts +0 -2
- package/lib/cjs/test/Transactions.test.d.ts.map +0 -1
- package/lib/cjs/test/Transactions.test.js +0 -73
- package/lib/cjs/test/Transactions.test.js.map +0 -1
- package/lib/cjs/test/index.d.ts +0 -2
- package/lib/cjs/test/index.d.ts.map +0 -1
- package/lib/cjs/test/index.js +0 -43
- package/lib/cjs/test/index.js.map +0 -1
- package/lib/esm/test/Formatting.test.d.ts +0 -2
- package/lib/esm/test/Formatting.test.d.ts.map +0 -1
- package/lib/esm/test/Formatting.test.js +0 -277
- package/lib/esm/test/Formatting.test.js.map +0 -1
- package/lib/esm/test/Logging.test.d.ts +0 -2
- package/lib/esm/test/Logging.test.d.ts.map +0 -1
- package/lib/esm/test/Logging.test.js +0 -52
- package/lib/esm/test/Logging.test.js.map +0 -1
- package/lib/esm/test/Metadata.test.d.ts +0 -2
- package/lib/esm/test/Metadata.test.d.ts.map +0 -1
- package/lib/esm/test/Metadata.test.js +0 -679
- package/lib/esm/test/Metadata.test.js.map +0 -1
- package/lib/esm/test/QueryExecutor.test.d.ts +0 -2
- package/lib/esm/test/QueryExecutor.test.d.ts.map +0 -1
- package/lib/esm/test/QueryExecutor.test.js +0 -173
- package/lib/esm/test/QueryExecutor.test.js.map +0 -1
- package/lib/esm/test/Transactions.test.d.ts +0 -2
- package/lib/esm/test/Transactions.test.d.ts.map +0 -1
- package/lib/esm/test/Transactions.test.js +0 -68
- package/lib/esm/test/Transactions.test.js.map +0 -1
- package/lib/esm/test/index.d.ts +0 -2
- package/lib/esm/test/index.d.ts.map +0 -1
- package/lib/esm/test/index.js +0 -15
- package/lib/esm/test/index.js.map +0 -1
- package/src/core-interop/Formatting.ts +0 -194
- package/src/core-interop/Logging.ts +0 -58
- package/src/core-interop/Metadata.ts +0 -62
- package/src/core-interop/MetadataInternal.ts +0 -413
- package/src/core-interop/QueryExecutor.ts +0 -122
- package/src/core-interop/Transactions.ts +0 -92
- package/src/presentation-core-interop.ts +0 -10
- package/src/test/Formatting.test.ts +0 -358
- package/src/test/Logging.test.ts +0 -59
- package/src/test/Metadata.test.ts +0 -786
- package/src/test/QueryExecutor.test.ts +0 -217
- package/src/test/Transactions.test.ts +0 -74
- package/src/test/index.ts +0 -17
- package/tsconfig.cjs.json +0 -7
- package/tsconfig.esm.json +0 -7
- package/tsconfig.json +0 -14
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Metadata.test.js","sourceRoot":"","sources":["../../../src/test/Metadata.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 *--------------------------------------------------------------------------------------------*/\n\nimport { expect } from \"chai\";\nimport sinon from \"sinon\";\nimport { assert } from \"@itwin/core-bentley\";\nimport {\n ECClass as CoreClass,\n EnumerationArrayProperty as CoreEnumerationArrayProperty,\n EnumerationProperty as CoreEnumerationProperty,\n Enumerator as CoreEnumerator,\n NavigationProperty as CoreNavigationProperty,\n PrimitiveArrayProperty as CorePrimitiveArrayProperty,\n PrimitiveProperty as CorePrimitiveProperty,\n Schema as CoreSchema,\n StructArrayProperty as CoreStructArrayProperty,\n StructProperty as CoreStructProperty,\n PrimitiveType,\n RelationshipMultiplicity,\n SchemaContext,\n SchemaItemType,\n SchemaKey,\n StrengthDirection,\n} from \"@itwin/ecschema-metadata\";\nimport { EC } from \"@itwin/presentation-shared\";\nimport { createECSchemaProvider } from \"../core-interop/Metadata\";\nimport { createECClass, createECProperty, createECSchema } from \"../core-interop/MetadataInternal\";\n\ndescribe(\"createECSchemaProvider\", () => {\n describe(\"getSchema\", () => {\n it(\"returns schema from schema context\", async () => {\n const matchSchemaName = sinon.match((key: SchemaKey) => key.compareByName(\"x\"));\n const schemaContext = {\n getSchema: sinon\n .stub<[SchemaKey], CoreSchema>()\n .withArgs(matchSchemaName)\n .resolves({\n name: \"y\",\n } as unknown as CoreSchema),\n };\n\n const provider = createECSchemaProvider(schemaContext as unknown as SchemaContext);\n const schema = await provider.getSchema(\"x\");\n assert(schema !== undefined);\n\n expect(schemaContext.getSchema).to.be.calledOnceWith(matchSchemaName);\n expect(schema.name).to.eq(\"y\");\n expect(typeof schema.getClass === \"function\").to.be.true;\n });\n\n // a test for our workaround for https://github.com/iTwin/itwinjs-core/issues/6542\n it(\"handles duplicate schema in cache error\", async () => {\n const schemaContext = {\n getSchema: sinon.stub<[SchemaKey], CoreSchema>(),\n };\n schemaContext.getSchema.onFirstCall().resolves({ name: \"x\" });\n schemaContext.getSchema.onSecondCall().rejects(new Error(\"The schema, x.01.02.03, already exists within this cache\"));\n schemaContext.getSchema.onThirdCall().resolves({ name: \"x\" });\n\n const provider = createECSchemaProvider(schemaContext as unknown as SchemaContext);\n await Promise.all([provider.getSchema(\"x\"), provider.getSchema(\"x\")]);\n\n expect(schemaContext.getSchema).to.be.calledThrice;\n });\n\n it(`returns undefined on \"schema not found\" error`, async () => {\n const schemaContext = {\n getSchema: sinon.stub<[SchemaKey], CoreSchema>(),\n };\n schemaContext.getSchema.rejects(new Error(\"schema not found\"));\n\n const provider = createECSchemaProvider(schemaContext as unknown as SchemaContext);\n expect(await provider.getSchema(\"x\")).to.be.undefined;\n });\n\n it(\"re-throws SchemaContext errors\", async () => {\n const schemaContext = {\n getSchema: sinon.stub<[SchemaKey], CoreSchema>(),\n };\n schemaContext.getSchema.rejects(new Error(\"Unknown error\"));\n\n const provider = createECSchemaProvider(schemaContext as unknown as SchemaContext);\n await expect(provider.getSchema(\"x\")).to.eventually.be.rejected;\n expect(schemaContext.getSchema).to.be.calledOnce;\n });\n\n it(\"returns undefined from schema context\", async () => {\n const matchSchemaName = sinon.match((key: SchemaKey) => key.compareByName(\"x\"));\n const schemaContext = {\n getSchema: sinon.stub().resolves(undefined),\n };\n\n const provider = createECSchemaProvider(schemaContext);\n const schema = await provider.getSchema(\"x\");\n\n // eslint-disable-next-line @typescript-eslint/unbound-method\n expect(schemaContext.getSchema).to.be.calledOnceWith(matchSchemaName);\n expect(schema).to.be.undefined;\n });\n });\n});\n\ndescribe(\"createECSchema\", () => {\n describe(\"getClass\", () => {\n it(\"returns class from core schema\", async () => {\n const coreSchema = {\n name: \"s\",\n getItem: sinon.stub().resolves({\n fullName: \"s.c\",\n name: \"c\",\n label: \"C\",\n schemaItemType: SchemaItemType.EntityClass,\n }),\n } as unknown as CoreSchema;\n\n const schema = createECSchema(coreSchema);\n const result = await schema.getClass(\"c\");\n assert(result !== undefined);\n\n // eslint-disable-next-line @typescript-eslint/unbound-method\n expect(coreSchema.getItem).to.be.calledOnceWith(\"c\");\n expect(result.schema.name).to.eq(\"s\");\n expect(result.fullName).to.eq(\"s.c\");\n expect(result.name).to.eq(\"c\");\n expect(result.label).to.eq(\"C\");\n expect(typeof result.is === \"function\").to.be.true;\n });\n\n it(\"returns undefined from core schema\", async () => {\n const coreSchema = {\n name: \"s\",\n getItem: sinon.stub().resolves(undefined),\n } as unknown as CoreSchema;\n\n const schema = createECSchema(coreSchema);\n const result = await schema.getClass(\"c\");\n\n // eslint-disable-next-line @typescript-eslint/unbound-method\n expect(coreSchema.getItem).to.be.calledOnceWith(\"c\");\n expect(result).to.be.undefined;\n });\n });\n});\n\ndescribe(\"createECClass\", () => {\n const schema: EC.Schema = {\n name: \"s\",\n async getClass() {\n return undefined;\n },\n };\n\n it(\"creates class using schema from core class\", async () => {\n const coreClass = {\n schemaItemType: SchemaItemType.EntityClass,\n fullName: \"s.c\",\n name: \"c\",\n label: \"C\",\n schema: { name: \"core-schema\" },\n } as unknown as CoreClass;\n const result = createECClass(coreClass);\n expect(result.schema.name).to.eq(\"core-schema\");\n });\n\n it(\"creates entity class from core class\", async () => {\n const coreClass = {\n fullName: \"s.c\",\n name: \"c\",\n label: \"C\",\n schemaItemType: SchemaItemType.EntityClass,\n } as unknown as CoreClass;\n const result = createECClass(coreClass, schema);\n expect(result.isEntityClass()).to.be.true;\n expect(result.isRelationshipClass()).to.be.false;\n expect(result.isStructClass()).to.be.false;\n expect(result.isMixin()).to.be.false;\n expect(result.schema.name).to.eq(\"s\");\n expect(result.fullName).to.eq(\"s.c\");\n expect(result.name).to.eq(\"c\");\n expect(result.label).to.eq(\"C\");\n expect(typeof result.is === \"function\").to.be.true;\n });\n\n it(\"creates relationship class from core class\", async () => {\n const coreClass = {\n fullName: \"s.c\",\n name: \"c\",\n label: \"C\",\n schemaItemType: SchemaItemType.RelationshipClass,\n } as unknown as CoreClass;\n const result = createECClass(coreClass, schema);\n expect(result.isEntityClass()).to.be.false;\n expect(result.isRelationshipClass()).to.be.true;\n expect(result.isStructClass()).to.be.false;\n expect(result.isMixin()).to.be.false;\n expect(result.schema.name).to.eq(\"s\");\n expect(result.fullName).to.eq(\"s.c\");\n expect(result.name).to.eq(\"c\");\n expect(result.label).to.eq(\"C\");\n expect(typeof result.is === \"function\").to.be.true;\n });\n\n it(\"creates struct class from core class\", async () => {\n const coreClass = {\n fullName: \"s.c\",\n name: \"c\",\n label: \"C\",\n schemaItemType: SchemaItemType.StructClass,\n } as unknown as CoreClass;\n const result = createECClass(coreClass, schema);\n expect(result.isEntityClass()).to.be.false;\n expect(result.isRelationshipClass()).to.be.false;\n expect(result.isStructClass()).to.be.true;\n expect(result.isMixin()).to.be.false;\n expect(result.schema.name).to.eq(\"s\");\n expect(result.fullName).to.eq(\"s.c\");\n expect(result.name).to.eq(\"c\");\n expect(result.label).to.eq(\"C\");\n expect(typeof result.is === \"function\").to.be.true;\n });\n\n it(\"creates mixin from core class\", async () => {\n const coreClass = {\n fullName: \"s.c\",\n name: \"c\",\n label: \"C\",\n schemaItemType: SchemaItemType.Mixin,\n } as unknown as CoreClass;\n const result = createECClass(coreClass, schema);\n expect(result.isEntityClass()).to.be.false;\n expect(result.isRelationshipClass()).to.be.false;\n expect(result.isStructClass()).to.be.false;\n expect(result.isMixin()).to.be.true;\n expect(result.schema.name).to.eq(\"s\");\n expect(result.fullName).to.eq(\"s.c\");\n expect(result.name).to.eq(\"c\");\n expect(result.label).to.eq(\"C\");\n expect(typeof result.is === \"function\").to.be.true;\n });\n\n it(\"throws when creating class from non-class core schema item\", async () => {\n const coreClass = {\n schemaItemType: SchemaItemType.Constant,\n fullName: \"s.c\",\n name: \"c\",\n label: \"C\",\n } as unknown as CoreClass;\n expect(() => createECClass(coreClass, schema)).to.throw();\n });\n\n describe(\"is\", () => {\n const coreClass = {\n schemaItemType: SchemaItemType.EntityClass,\n fullName: \"s.c\",\n name: \"c\",\n label: \"C\",\n is: sinon.stub().resolves(true),\n };\n\n beforeEach(() => {\n coreClass.is.resetHistory();\n });\n\n it(\"handles CoreClass override\", async () => {\n const class1 = createECClass(coreClass as unknown as CoreClass, schema);\n const class2 = createECClass(\n {\n schemaItemType: SchemaItemType.EntityClass,\n fullName: \"s.c2\",\n name: \"c2\",\n label: \"C2\",\n } as unknown as CoreClass,\n schema,\n );\n const result = await class1.is(class2);\n\n // eslint-disable-next-line @typescript-eslint/unbound-method\n expect(coreClass.is).to.be.calledOnceWithExactly(\"c2\", \"s\");\n expect(result).to.be.true;\n });\n\n it(\"handles class and schema names override\", async () => {\n const class1 = createECClass(coreClass as unknown as CoreClass, schema);\n const result = await class1.is(\"a\", \"b\");\n\n // eslint-disable-next-line @typescript-eslint/unbound-method\n expect(coreClass.is).to.be.calledOnceWithExactly(\"a\", \"b\");\n expect(result).to.be.true;\n });\n });\n\n describe(\"getProperties\", () => {\n it(\"returns properties from core class\", async () => {\n const coreClass = {\n schemaItemType: SchemaItemType.EntityClass,\n fullName: \"s.c\",\n name: \"c\",\n label: \"C\",\n getProperties: sinon.stub().resolves([\n {\n isArray: () => false,\n isStruct: () => false,\n isEnumeration: () => false,\n isNavigation: () => false,\n isPrimitive: () => true,\n },\n ]),\n } as unknown as CoreClass;\n const ecClass = createECClass(coreClass, schema);\n const properties = await ecClass.getProperties();\n\n // eslint-disable-next-line @typescript-eslint/unbound-method\n expect(coreClass.getProperties).to.be.calledOnce;\n expect(properties).to.not.be.empty;\n });\n });\n\n describe(\"getProperty\", () => {\n it(\"returns property from core class\", async () => {\n const coreClass = {\n schemaItemType: SchemaItemType.EntityClass,\n fullName: \"s.c\",\n name: \"c\",\n label: \"C\",\n getProperty: sinon.stub().resolves({\n isArray: () => false,\n isStruct: () => false,\n isEnumeration: () => false,\n isNavigation: () => false,\n isPrimitive: () => true,\n }),\n } as unknown as CoreClass;\n const ecClass = createECClass(coreClass, schema);\n const prop = await ecClass.getProperty(\"p\");\n\n // eslint-disable-next-line @typescript-eslint/unbound-method\n expect(coreClass.getProperty).to.be.calledOnceWith(\"p\", true);\n expect(prop).to.not.be.undefined;\n });\n\n it(\"returns undefined from core class\", async () => {\n const coreClass = {\n schemaItemType: SchemaItemType.EntityClass,\n fullName: \"s.c\",\n name: \"c\",\n label: \"C\",\n getProperty: sinon.stub().resolves(undefined),\n } as unknown as CoreClass;\n const ecClass = createECClass(coreClass, schema);\n const prop = await ecClass.getProperty(\"p\");\n\n // eslint-disable-next-line @typescript-eslint/unbound-method\n expect(coreClass.getProperty).to.be.calledOnceWith(\"p\", true);\n expect(prop).to.be.undefined;\n });\n });\n\n describe(\"Relationship class\", () => {\n const coreRelationshipClass = {\n schemaItemType: SchemaItemType.RelationshipClass,\n fullName: \"Schema.TestRelationship\",\n name: \"TestRelationship\",\n label: \"Test relationship\",\n };\n\n describe(\"direction\", () => {\n it(\"returns forward direction from core relationship\", async () => {\n const rel = createECClass(\n { ...coreRelationshipClass, strengthDirection: StrengthDirection.Forward } as unknown as CoreClass,\n schema,\n ) as EC.RelationshipClass;\n expect(rel.direction).to.eq(\"Forward\");\n });\n\n it(\"returns backward direction from core relationship\", async () => {\n const rel = createECClass(\n { ...coreRelationshipClass, strengthDirection: StrengthDirection.Backward } as unknown as CoreClass,\n schema,\n ) as EC.RelationshipClass;\n expect(rel.direction).to.eq(\"Backward\");\n });\n });\n\n describe(\"source & target\", () => {\n it(\"returns source constraint\", () => {\n const rel = createECClass({ ...coreRelationshipClass, source: {} } as unknown as CoreClass, schema) as EC.RelationshipClass;\n expect(rel.source).to.not.be.undefined;\n });\n\n it(\"returns target constraint\", () => {\n const rel = createECClass({ ...coreRelationshipClass, target: {} } as unknown as CoreClass, schema) as EC.RelationshipClass;\n expect(rel.target).to.not.be.undefined;\n });\n\n describe(\"ECRelationshipConstraint implementation\", () => {\n it(\"returns undefined multiplicity from core constraint\", () => {\n const rel = createECClass({ ...coreRelationshipClass, source: { multiplicity: undefined } } as unknown as CoreClass, schema) as EC.RelationshipClass;\n expect(rel.source.multiplicity).to.be.undefined;\n });\n\n it(\"returns multiplicity from core constraint\", () => {\n const rel = createECClass(\n { ...coreRelationshipClass, source: { multiplicity: new RelationshipMultiplicity(123, 456) } } as unknown as CoreClass,\n schema,\n ) as EC.RelationshipClass;\n expect(rel.source.multiplicity).to.deep.eq({ lowerLimit: 123, upperLimit: 456 });\n });\n\n it(\"returns polymorphic flag from core constraint\", () => {\n [\n { in: undefined, expectation: false },\n { in: false, expectation: false },\n { in: true, expectation: true },\n ].forEach((testEntry) => {\n const rel = createECClass(\n { ...coreRelationshipClass, source: { polymorphic: testEntry.in } } as unknown as CoreClass,\n schema,\n ) as EC.RelationshipClass;\n expect(rel.source.polymorphic).to.eq(testEntry.expectation);\n });\n });\n\n it(\"returns abstract constraint from core constraint\", async () => {\n const coreAbstractConstraint = {\n schemaItemType: SchemaItemType.EntityClass,\n fullName: \"Schema.TestAbstractConstraint\",\n name: \"TestAbstractConstraint\",\n label: \"Test abstract constraint\",\n } as unknown as CoreClass;\n const rel = createECClass(\n { ...coreRelationshipClass, source: { abstractConstraint: Promise.resolve(coreAbstractConstraint) } } as unknown as CoreClass,\n schema,\n ) as EC.RelationshipClass;\n const constraint = (await rel.source.abstractConstraint)!;\n expect(constraint.isEntityClass()).to.be.true;\n expect(constraint.fullName).to.eq(coreAbstractConstraint.fullName);\n });\n });\n });\n });\n});\n\ndescribe(\"createECProperty\", () => {\n const propertyClass: EC.Class = {} as unknown as EC.Class;\n const propertyStub = {\n isArray: () => false,\n isEnumeration: () => false,\n isNavigation: () => false,\n isPrimitive: () => false,\n isStruct: () => false,\n fullName: \"\",\n name: \"\",\n };\n\n describe(\"Primitive property\", () => {\n it(\"creates property from core property\", async () => {\n const coreProperty = {\n ...propertyStub,\n isPrimitive: () => true,\n name: \"test-property\",\n label: \"Test property\",\n extendedTypeName: \"extended\",\n } as unknown as CorePrimitiveProperty;\n const property = createECProperty(coreProperty, propertyClass) as EC.PrimitiveProperty;\n expect(property.class).to.eq(propertyClass);\n expect(property.isArray()).to.be.false;\n expect(property.isEnumeration()).to.be.false;\n expect(property.isNavigation()).to.be.false;\n expect(property.isPrimitive()).to.be.true;\n expect(property.isStruct()).to.be.false;\n expect(property.name).to.eq(coreProperty.name);\n expect(property.label).to.eq(coreProperty.label);\n expect(property.extendedTypeName).to.eq(coreProperty.extendedTypeName);\n });\n\n it(\"maps primitive types\", async () => {\n const types: [PrimitiveType, EC.PrimitiveType][] = [\n [PrimitiveType.Binary, \"Binary\"],\n [PrimitiveType.Boolean, \"Boolean\"],\n [PrimitiveType.DateTime, \"DateTime\"],\n [PrimitiveType.Double, \"Double\"],\n [PrimitiveType.IGeometry, \"IGeometry\"],\n [PrimitiveType.Integer, \"Integer\"],\n [PrimitiveType.Long, \"Long\"],\n [PrimitiveType.Point2d, \"Point2d\"],\n [PrimitiveType.Point3d, \"Point3d\"],\n [PrimitiveType.String, \"String\"],\n ];\n types.forEach(([coreType, expectation]) => {\n const coreProperty = {\n ...propertyStub,\n isPrimitive: () => true,\n name: \"test-property\",\n primitiveType: coreType,\n } as unknown as CorePrimitiveProperty;\n const property = createECProperty(coreProperty, propertyClass) as EC.PrimitiveProperty;\n expect(property.primitiveType).to.eq(expectation);\n });\n\n const uninitializedTypes = [undefined, PrimitiveType.Uninitialized];\n uninitializedTypes.forEach((coreType) => {\n const uninitializedProperty = createECProperty(\n {\n ...propertyStub,\n isPrimitive: () => true,\n name: \"test-property\",\n primitiveType: coreType,\n } as unknown as CorePrimitiveProperty,\n propertyClass,\n ) as EC.PrimitiveProperty;\n expect(() => uninitializedProperty.primitiveType).to.throw();\n });\n });\n\n it(\"maps kind of quantity\", async () => {\n const coreProperty = {\n ...propertyStub,\n isPrimitive: () => true,\n name: \"test-property\",\n kindOfQuantity: Promise.resolve({\n fullName: \"SchemaName.TestKoq\",\n schema: {\n name: \"SchemaName\",\n },\n }),\n } as unknown as CorePrimitiveProperty;\n const property = createECProperty(coreProperty, propertyClass) as EC.PrimitiveProperty;\n const koq = (await property.kindOfQuantity)!;\n expect(koq.fullName).to.eq(\"SchemaName.TestKoq\");\n\n expect(await createECProperty({ ...coreProperty, kindOfQuantity: undefined } as CorePrimitiveProperty, propertyClass).kindOfQuantity).to.be.undefined;\n });\n });\n\n describe(\"Navigation property\", () => {\n it(\"creates property from core property\", async () => {\n const coreProperty = {\n ...propertyStub,\n isNavigation: () => true,\n name: \"test-property\",\n label: \"Test property\",\n } as unknown as CoreNavigationProperty;\n const property = createECProperty(coreProperty, propertyClass) as EC.NavigationProperty;\n expect(property.class).to.eq(propertyClass);\n expect(property.isArray()).to.be.false;\n expect(property.isEnumeration()).to.be.false;\n expect(property.isNavigation()).to.be.true;\n expect(property.isPrimitive()).to.be.false;\n expect(property.isStruct()).to.be.false;\n expect(property.name).to.eq(coreProperty.name);\n expect(property.label).to.eq(coreProperty.label);\n });\n\n it(\"maps direction\", async () => {\n const map = [\n [StrengthDirection.Backward, \"Backward\"],\n [StrengthDirection.Forward, \"Forward\"],\n ];\n map.forEach(([coreDirection, expectation]) => {\n const coreProperty = {\n ...propertyStub,\n isNavigation: () => true,\n name: \"test-property\",\n direction: coreDirection,\n } as unknown as CoreNavigationProperty;\n const property = createECProperty(coreProperty, propertyClass) as EC.NavigationProperty;\n expect(property.direction).to.eq(expectation);\n });\n });\n\n it(\"returns relationship class\", async () => {\n const coreProperty = {\n ...propertyStub,\n isNavigation: () => true,\n name: \"test-property\",\n relationshipClass: Promise.resolve({\n fullName: \"SchemaName.RelationshipClass\",\n schema: {\n name: \"SchemaName\",\n },\n }),\n } as unknown as CoreNavigationProperty;\n const property = createECProperty(coreProperty, propertyClass) as EC.NavigationProperty;\n const relationshipClass = await property.relationshipClass;\n expect(relationshipClass.fullName).to.eq(\"SchemaName.RelationshipClass\");\n });\n });\n\n describe(\"Enumeration property\", () => {\n it(\"creates property from core property\", async () => {\n const coreProperty = {\n ...propertyStub,\n isEnumeration: () => true,\n name: \"test-property\",\n label: \"Test property\",\n extendedTypeName: \"extended\",\n } as unknown as CoreEnumerationProperty;\n const property = createECProperty(coreProperty, propertyClass) as EC.EnumerationProperty;\n expect(property.class).to.eq(propertyClass);\n expect(property.isArray()).to.be.false;\n expect(property.isEnumeration()).to.be.true;\n expect(property.isNavigation()).to.be.false;\n expect(property.isPrimitive()).to.be.false;\n expect(property.isStruct()).to.be.false;\n expect(property.name).to.eq(coreProperty.name);\n expect(property.label).to.eq(coreProperty.label);\n expect(property.extendedTypeName).to.eq(coreProperty.extendedTypeName);\n });\n\n it(\"returns enumeration\", async () => {\n const coreProperty = {\n ...propertyStub,\n isEnumeration: () => true,\n name: \"test-property\",\n enumeration: Promise.resolve({\n schema: {\n name: \"SchemaName\",\n },\n }),\n } as unknown as CoreEnumerationProperty;\n const property = createECProperty(coreProperty, propertyClass) as EC.EnumerationProperty;\n expect(await property.enumeration).to.not.be.undefined;\n });\n\n describe(\"ECEnumeration implementation\", () => {\n const coreEnumeration = {\n schema: {\n name: \"SchemaName\",\n },\n isStrict: false,\n type: undefined,\n enumerators: new Array<CoreEnumerator<number>>(),\n };\n const coreEnumerationProperty = {\n ...propertyStub,\n isEnumeration: () => true,\n name: \"test-property\",\n enumeration: Promise.resolve(coreEnumeration),\n } as unknown as CoreEnumerationProperty;\n let property: EC.EnumerationProperty;\n\n beforeEach(async () => {\n property = createECProperty(coreEnumerationProperty, propertyClass) as EC.EnumerationProperty;\n });\n\n it(\"returns `isStrict` flag\", async () => {\n coreEnumeration.isStrict = true;\n const enumeration = (await property.enumeration)!;\n expect(enumeration.isStrict).to.be.true;\n });\n\n it(\"maps enumeration type\", async () => {\n const typesMap = [\n [PrimitiveType.String, \"String\"],\n [PrimitiveType.Integer, \"Number\"],\n [undefined, \"Number\"],\n ];\n const typeStub = sinon.stub(coreEnumeration, \"type\");\n for (const [coreType, expectation] of typesMap) {\n typeStub.reset();\n typeStub.get(() => coreType);\n const enumeration = (await property.enumeration)!;\n expect(enumeration.type).to.eq(expectation);\n }\n });\n\n it(\"returns enumerators\", async () => {\n coreEnumeration.enumerators = [\n { name: \"1\", value: 1, label: \"One\", description: \"Test one\" },\n { name: \"2\", value: 2 },\n ];\n const enumeration = (await property.enumeration)!;\n expect(enumeration.enumerators).to.deep.eq(coreEnumeration.enumerators);\n });\n });\n });\n\n describe(\"Struct property\", () => {\n it(\"creates property from core property\", async () => {\n const coreProperty = {\n ...propertyStub,\n isStruct: () => true,\n name: \"test-property\",\n label: \"Test property\",\n } as unknown as CoreStructProperty;\n const property = createECProperty(coreProperty, propertyClass) as EC.StructProperty;\n expect(property.class).to.eq(propertyClass);\n expect(property.isArray()).to.be.false;\n expect(property.isEnumeration()).to.be.false;\n expect(property.isNavigation()).to.be.false;\n expect(property.isPrimitive()).to.be.false;\n expect(property.isStruct()).to.be.true;\n expect(property.name).to.eq(coreProperty.name);\n expect(property.label).to.eq(coreProperty.label);\n });\n\n it(\"returns struct class\", async () => {\n const coreProperty = {\n ...propertyStub,\n isStruct: () => true,\n name: \"test-property\",\n structClass: {\n fullName: \"SchemaName.StructClass\",\n schema: {\n name: \"SchemaName\",\n },\n },\n } as unknown as CoreStructProperty;\n const property = createECProperty(coreProperty, propertyClass) as EC.StructProperty;\n expect(property.structClass.fullName).to.eq(\"SchemaName.StructClass\");\n });\n });\n\n describe(\"Array property\", () => {\n it(\"creates primitive array property from core property\", async () => {\n const coreProperty = {\n ...propertyStub,\n isArray: () => true,\n isPrimitive: () => true,\n name: \"test-property\",\n label: \"Test property\",\n minOccurs: 123,\n maxOccurs: 456,\n } as unknown as CorePrimitiveArrayProperty;\n const property = createECProperty(coreProperty, propertyClass) as EC.PrimitiveArrayProperty;\n expect(property.class).to.eq(propertyClass);\n expect(property.isArray()).to.be.true;\n expect(property.isEnumeration()).to.be.false;\n expect(property.isNavigation()).to.be.false;\n expect(property.isPrimitive()).to.be.true;\n expect(property.isStruct()).to.be.false;\n expect(property.name).to.eq(coreProperty.name);\n expect(property.label).to.eq(coreProperty.label);\n expect(property.minOccurs).to.eq(123);\n expect(property.maxOccurs).to.eq(456);\n });\n\n it(\"creates enumeration array property from core property\", async () => {\n const coreProperty = {\n ...propertyStub,\n isArray: () => true,\n isEnumeration: () => true,\n name: \"test-property\",\n label: \"Test property\",\n minOccurs: 123,\n maxOccurs: 456,\n } as unknown as CoreEnumerationArrayProperty;\n const property = createECProperty(coreProperty, propertyClass) as EC.EnumerationArrayProperty;\n expect(property.class).to.eq(propertyClass);\n expect(property.isArray()).to.be.true;\n expect(property.isEnumeration()).to.be.true;\n expect(property.isNavigation()).to.be.false;\n expect(property.isPrimitive()).to.be.false;\n expect(property.isStruct()).to.be.false;\n expect(property.name).to.eq(coreProperty.name);\n expect(property.label).to.eq(coreProperty.label);\n expect(property.minOccurs).to.eq(123);\n expect(property.maxOccurs).to.eq(456);\n });\n\n it(\"creates struct array property from core property\", async () => {\n const coreProperty = {\n ...propertyStub,\n isArray: () => true,\n isStruct: () => true,\n name: \"test-property\",\n label: \"Test property\",\n minOccurs: 123,\n maxOccurs: 456,\n } as unknown as CoreStructArrayProperty;\n const property = createECProperty(coreProperty, propertyClass) as EC.StructArrayProperty;\n expect(property.class).to.eq(propertyClass);\n expect(property.isArray()).to.be.true;\n expect(property.isEnumeration()).to.be.false;\n expect(property.isNavigation()).to.be.false;\n expect(property.isPrimitive()).to.be.false;\n expect(property.isStruct()).to.be.true;\n expect(property.name).to.eq(coreProperty.name);\n expect(property.label).to.eq(coreProperty.label);\n expect(property.minOccurs).to.eq(123);\n expect(property.maxOccurs).to.eq(456);\n });\n });\n});\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"QueryExecutor.test.d.ts","sourceRoot":"","sources":["../../../src/test/QueryExecutor.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,178 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/*---------------------------------------------------------------------------------------------
|
|
3
|
-
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
4
|
-
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
5
|
-
*--------------------------------------------------------------------------------------------*/
|
|
6
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
7
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
8
|
-
};
|
|
9
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
-
const chai_1 = require("chai");
|
|
11
|
-
const sinon_1 = __importDefault(require("sinon"));
|
|
12
|
-
const core_common_1 = require("@itwin/core-common");
|
|
13
|
-
const core_geometry_1 = require("@itwin/core-geometry");
|
|
14
|
-
const QueryExecutor_1 = require("../core-interop/QueryExecutor");
|
|
15
|
-
describe("createECSqlQueryExecutor", () => {
|
|
16
|
-
describe("createQueryReader", () => {
|
|
17
|
-
it("calls IModel's `createQueryReader` with default params", async () => {
|
|
18
|
-
const imodel = {
|
|
19
|
-
createQueryReader: sinon_1.default.stub().returns(createCoreECSqlReaderStub([{}, {}])),
|
|
20
|
-
};
|
|
21
|
-
const executor = (0, QueryExecutor_1.createECSqlQueryExecutor)(imodel);
|
|
22
|
-
const reader = executor.createQueryReader({ ecsql: "ecsql" });
|
|
23
|
-
for await (const _ of reader) {
|
|
24
|
-
}
|
|
25
|
-
// eslint-disable-next-line @typescript-eslint/unbound-method
|
|
26
|
-
(0, chai_1.expect)(imodel.createQueryReader).to.be.calledOnceWithExactly("ecsql", sinon_1.default.match((binder) => Object.keys(binder.serialize()).length === 0), sinon_1.default.match((options) => Object.keys(options).length === 0));
|
|
27
|
-
});
|
|
28
|
-
it("calls IModel's `createQueryReader` with CTEs", async () => {
|
|
29
|
-
const imodel = {
|
|
30
|
-
createQueryReader: sinon_1.default.stub().returns(createCoreECSqlReaderStub([{}, {}])),
|
|
31
|
-
};
|
|
32
|
-
const executor = (0, QueryExecutor_1.createECSqlQueryExecutor)(imodel);
|
|
33
|
-
const reader = executor.createQueryReader({ ctes: ["cte1", "cte2"], ecsql: "ecsql" });
|
|
34
|
-
for await (const _ of reader) {
|
|
35
|
-
}
|
|
36
|
-
// eslint-disable-next-line @typescript-eslint/unbound-method
|
|
37
|
-
(0, chai_1.expect)(imodel.createQueryReader).to.be.calledOnceWith("WITH RECURSIVE cte1, cte2 ecsql");
|
|
38
|
-
});
|
|
39
|
-
it("calls IModel's `createQueryReader` with `ECSqlPropertyNames` row format", async () => {
|
|
40
|
-
const imodel = {
|
|
41
|
-
createQueryReader: sinon_1.default.stub().returns(createCoreECSqlReaderStub([])),
|
|
42
|
-
};
|
|
43
|
-
const executor = (0, QueryExecutor_1.createECSqlQueryExecutor)(imodel);
|
|
44
|
-
const reader = executor.createQueryReader({ ecsql: "ecsql" }, { rowFormat: "ECSqlPropertyNames" });
|
|
45
|
-
for await (const _ of reader) {
|
|
46
|
-
}
|
|
47
|
-
// eslint-disable-next-line @typescript-eslint/unbound-method
|
|
48
|
-
(0, chai_1.expect)(imodel.createQueryReader).to.be.calledOnceWithExactly("ecsql", sinon_1.default.match((binder) => Object.keys(binder.serialize()).length === 0), sinon_1.default.match((options) => options.rowFormat === core_common_1.QueryRowFormat.UseECSqlPropertyNames));
|
|
49
|
-
});
|
|
50
|
-
it("calls IModel's `createQueryReader` with `Indexes` row format", async () => {
|
|
51
|
-
const imodel = {
|
|
52
|
-
createQueryReader: sinon_1.default.stub().returns(createCoreECSqlReaderStub([])),
|
|
53
|
-
};
|
|
54
|
-
const executor = (0, QueryExecutor_1.createECSqlQueryExecutor)(imodel);
|
|
55
|
-
const reader = executor.createQueryReader({ ecsql: "ecsql" }, { rowFormat: "Indexes" });
|
|
56
|
-
for await (const _ of reader) {
|
|
57
|
-
}
|
|
58
|
-
// eslint-disable-next-line @typescript-eslint/unbound-method
|
|
59
|
-
(0, chai_1.expect)(imodel.createQueryReader).to.be.calledOnceWithExactly("ecsql", sinon_1.default.match((binder) => Object.keys(binder.serialize()).length === 0), sinon_1.default.match((options) => options.rowFormat === core_common_1.QueryRowFormat.UseECSqlPropertyIndexes));
|
|
60
|
-
});
|
|
61
|
-
it("calls IModel's `createQueryReader` with different bindings", async () => {
|
|
62
|
-
const imodel = {
|
|
63
|
-
createQueryReader: sinon_1.default.stub().returns(createCoreECSqlReaderStub([])),
|
|
64
|
-
};
|
|
65
|
-
const bindings = [
|
|
66
|
-
{
|
|
67
|
-
type: "boolean",
|
|
68
|
-
value: true,
|
|
69
|
-
},
|
|
70
|
-
{
|
|
71
|
-
type: "double",
|
|
72
|
-
value: 1.23,
|
|
73
|
-
},
|
|
74
|
-
{
|
|
75
|
-
type: "id",
|
|
76
|
-
value: "0x123",
|
|
77
|
-
},
|
|
78
|
-
{
|
|
79
|
-
type: "idset",
|
|
80
|
-
value: ["0x123", "0x456"],
|
|
81
|
-
},
|
|
82
|
-
{
|
|
83
|
-
type: "int",
|
|
84
|
-
value: 123,
|
|
85
|
-
},
|
|
86
|
-
{ type: "long", value: 456 },
|
|
87
|
-
{
|
|
88
|
-
type: "point2d",
|
|
89
|
-
value: { x: 1.23, y: 4.56 },
|
|
90
|
-
},
|
|
91
|
-
{
|
|
92
|
-
type: "point3d",
|
|
93
|
-
value: { x: 1.23, y: 4.56, z: 7.89 },
|
|
94
|
-
},
|
|
95
|
-
{
|
|
96
|
-
type: "string",
|
|
97
|
-
value: "xxx",
|
|
98
|
-
},
|
|
99
|
-
{
|
|
100
|
-
type: "string",
|
|
101
|
-
value: undefined,
|
|
102
|
-
},
|
|
103
|
-
];
|
|
104
|
-
const expectedBinder = new core_common_1.QueryBinder();
|
|
105
|
-
expectedBinder.bindBoolean(1, true);
|
|
106
|
-
expectedBinder.bindDouble(2, 1.23);
|
|
107
|
-
expectedBinder.bindId(3, "0x123");
|
|
108
|
-
expectedBinder.bindIdSet(4, ["0x123", "0x456"]);
|
|
109
|
-
expectedBinder.bindInt(5, 123);
|
|
110
|
-
expectedBinder.bindLong(6, 456);
|
|
111
|
-
expectedBinder.bindPoint2d(7, core_geometry_1.Point2d.create(1.23, 4.56));
|
|
112
|
-
expectedBinder.bindPoint3d(8, core_geometry_1.Point3d.create(1.23, 4.56, 7.89));
|
|
113
|
-
expectedBinder.bindString(9, "xxx");
|
|
114
|
-
expectedBinder.bindNull(10);
|
|
115
|
-
const executor = (0, QueryExecutor_1.createECSqlQueryExecutor)(imodel);
|
|
116
|
-
const reader = executor.createQueryReader({ ecsql: "ecsql", bindings }, undefined);
|
|
117
|
-
for await (const _ of reader) {
|
|
118
|
-
}
|
|
119
|
-
// eslint-disable-next-line @typescript-eslint/unbound-method
|
|
120
|
-
(0, chai_1.expect)(imodel.createQueryReader).to.be.calledOnceWithExactly("ecsql", sinon_1.default.match((binder) => JSON.stringify(expectedBinder.serialize()) === JSON.stringify(binder.serialize())), sinon_1.default.match((options) => Object.keys(options).length === 0));
|
|
121
|
-
});
|
|
122
|
-
it("creates iterable reader for rows as objects", async () => {
|
|
123
|
-
const rows = [{ x: 1 }, { y: 2 }];
|
|
124
|
-
const imodel = {
|
|
125
|
-
createQueryReader: sinon_1.default.stub().returns(createCoreECSqlReaderStub(rows)),
|
|
126
|
-
};
|
|
127
|
-
const executor = (0, QueryExecutor_1.createECSqlQueryExecutor)(imodel);
|
|
128
|
-
const reader = executor.createQueryReader({ ecsql: "ecsql" }, { rowFormat: "ECSqlPropertyNames" });
|
|
129
|
-
const resultRows = new Array();
|
|
130
|
-
for await (const row of reader) {
|
|
131
|
-
resultRows.push(row);
|
|
132
|
-
}
|
|
133
|
-
(0, chai_1.expect)(resultRows).to.deep.eq(rows);
|
|
134
|
-
});
|
|
135
|
-
it("creates iterable reader for rows as arrays", async () => {
|
|
136
|
-
const rows = [
|
|
137
|
-
[1, 2],
|
|
138
|
-
[3, 4],
|
|
139
|
-
];
|
|
140
|
-
const imodel = {
|
|
141
|
-
createQueryReader: sinon_1.default.stub().returns(createCoreECSqlReaderStub(rows)),
|
|
142
|
-
};
|
|
143
|
-
const executor = (0, QueryExecutor_1.createECSqlQueryExecutor)(imodel);
|
|
144
|
-
const reader = executor.createQueryReader({ ecsql: "ecsql" }, { rowFormat: "Indexes" });
|
|
145
|
-
const resultRows = new Array();
|
|
146
|
-
for await (const row of reader) {
|
|
147
|
-
resultRows.push(row);
|
|
148
|
-
}
|
|
149
|
-
(0, chai_1.expect)(resultRows).to.deep.eq(rows);
|
|
150
|
-
});
|
|
151
|
-
});
|
|
152
|
-
});
|
|
153
|
-
function createCoreECSqlReaderStub(rows) {
|
|
154
|
-
let curr = -1;
|
|
155
|
-
const reader = {
|
|
156
|
-
next: sinon_1.default.fake(async () => {
|
|
157
|
-
++curr;
|
|
158
|
-
if (curr < rows.length) {
|
|
159
|
-
return { done: false, value: createQueryRowProxy(rows[curr]) };
|
|
160
|
-
}
|
|
161
|
-
return { done: true, value: undefined };
|
|
162
|
-
}),
|
|
163
|
-
};
|
|
164
|
-
return {
|
|
165
|
-
...reader,
|
|
166
|
-
async *[Symbol.asyncIterator]() {
|
|
167
|
-
return reader;
|
|
168
|
-
},
|
|
169
|
-
};
|
|
170
|
-
}
|
|
171
|
-
function createQueryRowProxy(data) {
|
|
172
|
-
return {
|
|
173
|
-
...data,
|
|
174
|
-
toArray: () => data,
|
|
175
|
-
toRow: () => data,
|
|
176
|
-
};
|
|
177
|
-
}
|
|
178
|
-
//# sourceMappingURL=QueryExecutor.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"QueryExecutor.test.js","sourceRoot":"","sources":["../../../src/test/QueryExecutor.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 *--------------------------------------------------------------------------------------------*/\n\nimport { expect } from \"chai\";\nimport sinon from \"sinon\";\nimport { QueryBinder, QueryOptions, QueryRowFormat } from \"@itwin/core-common\";\nimport { Point2d, Point3d } from \"@itwin/core-geometry\";\nimport { ECSqlBinding } from \"@itwin/presentation-shared\";\nimport { createECSqlQueryExecutor } from \"../core-interop/QueryExecutor\";\n\ndescribe(\"createECSqlQueryExecutor\", () => {\n describe(\"createQueryReader\", () => {\n it(\"calls IModel's `createQueryReader` with default params\", async () => {\n const imodel = {\n createQueryReader: sinon.stub().returns(createCoreECSqlReaderStub([{}, {}])),\n };\n\n const executor = createECSqlQueryExecutor(imodel);\n const reader = executor.createQueryReader({ ecsql: \"ecsql\" });\n for await (const _ of reader) {\n }\n\n // eslint-disable-next-line @typescript-eslint/unbound-method\n expect(imodel.createQueryReader).to.be.calledOnceWithExactly(\n \"ecsql\",\n sinon.match((binder: QueryBinder) => Object.keys(binder.serialize()).length === 0),\n sinon.match((options: QueryOptions) => Object.keys(options).length === 0),\n );\n });\n\n it(\"calls IModel's `createQueryReader` with CTEs\", async () => {\n const imodel = {\n createQueryReader: sinon.stub().returns(createCoreECSqlReaderStub([{}, {}])),\n };\n\n const executor = createECSqlQueryExecutor(imodel);\n const reader = executor.createQueryReader({ ctes: [\"cte1\", \"cte2\"], ecsql: \"ecsql\" });\n for await (const _ of reader) {\n }\n\n // eslint-disable-next-line @typescript-eslint/unbound-method\n expect(imodel.createQueryReader).to.be.calledOnceWith(\"WITH RECURSIVE cte1, cte2 ecsql\");\n });\n\n it(\"calls IModel's `createQueryReader` with `ECSqlPropertyNames` row format\", async () => {\n const imodel = {\n createQueryReader: sinon.stub().returns(createCoreECSqlReaderStub([])),\n };\n\n const executor = createECSqlQueryExecutor(imodel);\n const reader = executor.createQueryReader({ ecsql: \"ecsql\" }, { rowFormat: \"ECSqlPropertyNames\" });\n for await (const _ of reader) {\n }\n\n // eslint-disable-next-line @typescript-eslint/unbound-method\n expect(imodel.createQueryReader).to.be.calledOnceWithExactly(\n \"ecsql\",\n sinon.match((binder: QueryBinder) => Object.keys(binder.serialize()).length === 0),\n sinon.match((options: QueryOptions) => options.rowFormat === QueryRowFormat.UseECSqlPropertyNames),\n );\n });\n\n it(\"calls IModel's `createQueryReader` with `Indexes` row format\", async () => {\n const imodel = {\n createQueryReader: sinon.stub().returns(createCoreECSqlReaderStub([])),\n };\n\n const executor = createECSqlQueryExecutor(imodel);\n const reader = executor.createQueryReader({ ecsql: \"ecsql\" }, { rowFormat: \"Indexes\" });\n for await (const _ of reader) {\n }\n\n // eslint-disable-next-line @typescript-eslint/unbound-method\n expect(imodel.createQueryReader).to.be.calledOnceWithExactly(\n \"ecsql\",\n sinon.match((binder: QueryBinder) => Object.keys(binder.serialize()).length === 0),\n sinon.match((options: QueryOptions) => options.rowFormat === QueryRowFormat.UseECSqlPropertyIndexes),\n );\n });\n\n it(\"calls IModel's `createQueryReader` with different bindings\", async () => {\n const imodel = {\n createQueryReader: sinon.stub().returns(createCoreECSqlReaderStub([])),\n };\n\n const bindings: ECSqlBinding[] = [\n {\n type: \"boolean\",\n value: true,\n },\n {\n type: \"double\",\n value: 1.23,\n },\n {\n type: \"id\",\n value: \"0x123\",\n },\n {\n type: \"idset\",\n value: [\"0x123\", \"0x456\"],\n },\n {\n type: \"int\",\n value: 123,\n },\n { type: \"long\", value: 456 },\n {\n type: \"point2d\",\n value: { x: 1.23, y: 4.56 },\n },\n {\n type: \"point3d\",\n value: { x: 1.23, y: 4.56, z: 7.89 },\n },\n {\n type: \"string\",\n value: \"xxx\",\n },\n {\n type: \"string\",\n value: undefined,\n },\n ];\n\n const expectedBinder = new QueryBinder();\n expectedBinder.bindBoolean(1, true);\n expectedBinder.bindDouble(2, 1.23);\n expectedBinder.bindId(3, \"0x123\");\n expectedBinder.bindIdSet(4, [\"0x123\", \"0x456\"]);\n expectedBinder.bindInt(5, 123);\n expectedBinder.bindLong(6, 456);\n expectedBinder.bindPoint2d(7, Point2d.create(1.23, 4.56));\n expectedBinder.bindPoint3d(8, Point3d.create(1.23, 4.56, 7.89));\n expectedBinder.bindString(9, \"xxx\");\n expectedBinder.bindNull(10);\n\n const executor = createECSqlQueryExecutor(imodel);\n const reader = executor.createQueryReader({ ecsql: \"ecsql\", bindings }, undefined);\n for await (const _ of reader) {\n }\n\n // eslint-disable-next-line @typescript-eslint/unbound-method\n expect(imodel.createQueryReader).to.be.calledOnceWithExactly(\n \"ecsql\",\n sinon.match((binder: QueryBinder) => JSON.stringify(expectedBinder.serialize()) === JSON.stringify(binder.serialize())),\n sinon.match((options: QueryOptions) => Object.keys(options).length === 0),\n );\n });\n\n it(\"creates iterable reader for rows as objects\", async () => {\n const rows = [{ x: 1 }, { y: 2 }];\n const imodel = {\n createQueryReader: sinon.stub().returns(createCoreECSqlReaderStub(rows)),\n };\n\n const executor = createECSqlQueryExecutor(imodel);\n const reader = executor.createQueryReader({ ecsql: \"ecsql\" }, { rowFormat: \"ECSqlPropertyNames\" });\n\n const resultRows = new Array<any>();\n for await (const row of reader) {\n resultRows.push(row);\n }\n\n expect(resultRows).to.deep.eq(rows);\n });\n\n it(\"creates iterable reader for rows as arrays\", async () => {\n const rows = [\n [1, 2],\n [3, 4],\n ];\n const imodel = {\n createQueryReader: sinon.stub().returns(createCoreECSqlReaderStub(rows)),\n };\n\n const executor = createECSqlQueryExecutor(imodel);\n const reader = executor.createQueryReader({ ecsql: \"ecsql\" }, { rowFormat: \"Indexes\" });\n\n const resultRows = new Array<any>();\n for await (const row of reader) {\n resultRows.push(row);\n }\n\n expect(resultRows).to.deep.eq(rows);\n });\n });\n});\n\nfunction createCoreECSqlReaderStub(rows: object[]) {\n let curr = -1;\n const reader = {\n next: sinon.fake(async () => {\n ++curr;\n if (curr < rows.length) {\n return { done: false, value: createQueryRowProxy(rows[curr]) };\n }\n return { done: true, value: undefined };\n }),\n };\n return {\n ...reader,\n async *[Symbol.asyncIterator]() {\n return reader;\n },\n };\n}\n\nfunction createQueryRowProxy(data: object) {\n return {\n ...data,\n toArray: () => data,\n toRow: () => data,\n };\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Transactions.test.d.ts","sourceRoot":"","sources":["../../../src/test/Transactions.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/*---------------------------------------------------------------------------------------------
|
|
3
|
-
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
4
|
-
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
5
|
-
*--------------------------------------------------------------------------------------------*/
|
|
6
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
7
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
8
|
-
};
|
|
9
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
-
const chai_1 = require("chai");
|
|
11
|
-
const sinon_1 = __importDefault(require("sinon"));
|
|
12
|
-
const Transactions_1 = require("../core-interop/Transactions");
|
|
13
|
-
describe("registerTxnListeners", () => {
|
|
14
|
-
it("calls provided callback on `onAppliedChanges` event", async () => {
|
|
15
|
-
const txns = createCoreTxnManager();
|
|
16
|
-
const callback = sinon_1.default.stub();
|
|
17
|
-
(0, Transactions_1.registerTxnListeners)(txns, callback);
|
|
18
|
-
(0, chai_1.expect)(txns.onChangesApplied.addListener).to.be.calledOnce;
|
|
19
|
-
txns.onChangesApplied.addListener.firstCall.callArg(0);
|
|
20
|
-
(0, chai_1.expect)(callback).to.be.calledOnce;
|
|
21
|
-
});
|
|
22
|
-
it("calls provided callback on `onCommit` and `onCommitted` event", async () => {
|
|
23
|
-
const txns = createCoreTxnManager();
|
|
24
|
-
const callback = sinon_1.default.stub();
|
|
25
|
-
(0, Transactions_1.registerTxnListeners)(txns, callback);
|
|
26
|
-
(0, chai_1.expect)(txns.onCommit.addListener).to.be.calledOnce;
|
|
27
|
-
(0, chai_1.expect)(txns.onCommitted.addListener).to.be.calledOnce;
|
|
28
|
-
txns.onCommit.addListener.firstCall.callArg(0);
|
|
29
|
-
txns.onCommitted.addListener.firstCall.callArg(0);
|
|
30
|
-
(0, chai_1.expect)(callback).to.be.calledOnce;
|
|
31
|
-
});
|
|
32
|
-
it("doesn't call provided callback on `onCommitted` event if there was no `onCommit` event", async () => {
|
|
33
|
-
const txns = createCoreTxnManager();
|
|
34
|
-
const callback = sinon_1.default.stub();
|
|
35
|
-
(0, Transactions_1.registerTxnListeners)(txns, callback);
|
|
36
|
-
(0, chai_1.expect)(txns.onCommit.addListener).to.be.calledOnce;
|
|
37
|
-
(0, chai_1.expect)(txns.onCommitted.addListener).to.be.calledOnce;
|
|
38
|
-
txns.onCommitted.addListener.firstCall.callArg(0);
|
|
39
|
-
(0, chai_1.expect)(callback).to.not.be.called;
|
|
40
|
-
});
|
|
41
|
-
it("unregisters from events when returned function is called", async () => {
|
|
42
|
-
const txns = createCoreTxnManager();
|
|
43
|
-
const unregister = (0, Transactions_1.registerTxnListeners)(txns, sinon_1.default.stub());
|
|
44
|
-
(0, chai_1.expect)(txns.onCommit.hasListeners()).to.be.true;
|
|
45
|
-
(0, chai_1.expect)(txns.onCommitted.hasListeners()).to.be.true;
|
|
46
|
-
(0, chai_1.expect)(txns.onChangesApplied.hasListeners()).to.be.true;
|
|
47
|
-
unregister();
|
|
48
|
-
(0, chai_1.expect)(txns.onCommit.hasListeners()).to.be.false;
|
|
49
|
-
(0, chai_1.expect)(txns.onCommitted.hasListeners()).to.be.false;
|
|
50
|
-
(0, chai_1.expect)(txns.onChangesApplied.hasListeners()).to.be.false;
|
|
51
|
-
});
|
|
52
|
-
function createCoreTxnManager() {
|
|
53
|
-
return {
|
|
54
|
-
onCommit: createEventStub(),
|
|
55
|
-
onCommitted: createEventStub(),
|
|
56
|
-
onChangesApplied: createEventStub(),
|
|
57
|
-
};
|
|
58
|
-
}
|
|
59
|
-
function createEventStub() {
|
|
60
|
-
let hasListeners = false;
|
|
61
|
-
return {
|
|
62
|
-
hasListeners: () => hasListeners,
|
|
63
|
-
addListener: sinon_1.default.fake(() => {
|
|
64
|
-
hasListeners = true;
|
|
65
|
-
return () => {
|
|
66
|
-
hasListeners = false;
|
|
67
|
-
};
|
|
68
|
-
}),
|
|
69
|
-
removeListener: sinon_1.default.stub(),
|
|
70
|
-
};
|
|
71
|
-
}
|
|
72
|
-
});
|
|
73
|
-
//# sourceMappingURL=Transactions.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Transactions.test.js","sourceRoot":"","sources":["../../../src/test/Transactions.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 *--------------------------------------------------------------------------------------------*/\n\nimport { expect } from \"chai\";\nimport sinon from \"sinon\";\nimport { registerTxnListeners } from \"../core-interop/Transactions\";\n\ndescribe(\"registerTxnListeners\", () => {\n it(\"calls provided callback on `onAppliedChanges` event\", async () => {\n const txns = createCoreTxnManager();\n const callback = sinon.stub();\n registerTxnListeners(txns, callback);\n expect(txns.onChangesApplied.addListener).to.be.calledOnce;\n txns.onChangesApplied.addListener.firstCall.callArg(0);\n expect(callback).to.be.calledOnce;\n });\n\n it(\"calls provided callback on `onCommit` and `onCommitted` event\", async () => {\n const txns = createCoreTxnManager();\n const callback = sinon.stub();\n registerTxnListeners(txns, callback);\n expect(txns.onCommit.addListener).to.be.calledOnce;\n expect(txns.onCommitted.addListener).to.be.calledOnce;\n txns.onCommit.addListener.firstCall.callArg(0);\n txns.onCommitted.addListener.firstCall.callArg(0);\n expect(callback).to.be.calledOnce;\n });\n\n it(\"doesn't call provided callback on `onCommitted` event if there was no `onCommit` event\", async () => {\n const txns = createCoreTxnManager();\n const callback = sinon.stub();\n registerTxnListeners(txns, callback);\n expect(txns.onCommit.addListener).to.be.calledOnce;\n expect(txns.onCommitted.addListener).to.be.calledOnce;\n txns.onCommitted.addListener.firstCall.callArg(0);\n expect(callback).to.not.be.called;\n });\n\n it(\"unregisters from events when returned function is called\", async () => {\n const txns = createCoreTxnManager();\n const unregister = registerTxnListeners(txns, sinon.stub());\n expect(txns.onCommit.hasListeners()).to.be.true;\n expect(txns.onCommitted.hasListeners()).to.be.true;\n expect(txns.onChangesApplied.hasListeners()).to.be.true;\n unregister();\n expect(txns.onCommit.hasListeners()).to.be.false;\n expect(txns.onCommitted.hasListeners()).to.be.false;\n expect(txns.onChangesApplied.hasListeners()).to.be.false;\n });\n\n function createCoreTxnManager() {\n return {\n onCommit: createEventStub(),\n onCommitted: createEventStub(),\n onChangesApplied: createEventStub(),\n };\n }\n\n function createEventStub() {\n let hasListeners = false;\n return {\n hasListeners: () => hasListeners,\n addListener: sinon.fake(() => {\n hasListeners = true;\n return () => {\n hasListeners = false;\n };\n }),\n removeListener: sinon.stub(),\n };\n }\n});\n"]}
|
package/lib/cjs/test/index.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/test/index.ts"],"names":[],"mappings":""}
|
package/lib/cjs/test/index.js
DELETED
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/*---------------------------------------------------------------------------------------------
|
|
3
|
-
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
4
|
-
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
5
|
-
*--------------------------------------------------------------------------------------------*/
|
|
6
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
7
|
-
if (k2 === undefined) k2 = k;
|
|
8
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
9
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
10
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
11
|
-
}
|
|
12
|
-
Object.defineProperty(o, k2, desc);
|
|
13
|
-
}) : (function(o, m, k, k2) {
|
|
14
|
-
if (k2 === undefined) k2 = k;
|
|
15
|
-
o[k2] = m[k];
|
|
16
|
-
}));
|
|
17
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
18
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
19
|
-
}) : function(o, v) {
|
|
20
|
-
o["default"] = v;
|
|
21
|
-
});
|
|
22
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
23
|
-
if (mod && mod.__esModule) return mod;
|
|
24
|
-
var result = {};
|
|
25
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
26
|
-
__setModuleDefault(result, mod);
|
|
27
|
-
return result;
|
|
28
|
-
};
|
|
29
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
30
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
31
|
-
};
|
|
32
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
33
|
-
const chai = __importStar(require("chai"));
|
|
34
|
-
const chai_as_promised_1 = __importDefault(require("chai-as-promised"));
|
|
35
|
-
const sinon_1 = __importDefault(require("sinon"));
|
|
36
|
-
const sinon_chai_1 = __importDefault(require("sinon-chai"));
|
|
37
|
-
// setup chai
|
|
38
|
-
chai.use(chai_as_promised_1.default);
|
|
39
|
-
chai.use(sinon_chai_1.default);
|
|
40
|
-
beforeEach(function () {
|
|
41
|
-
sinon_1.default.restore();
|
|
42
|
-
});
|
|
43
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/test/index.ts"],"names":[],"mappings":";AAAA;;;gGAGgG;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEhG,2CAA6B;AAC7B,wEAA8C;AAC9C,kDAA0B;AAC1B,4DAAmC;AAEnC,aAAa;AACb,IAAI,CAAC,GAAG,CAAC,0BAAc,CAAC,CAAC;AACzB,IAAI,CAAC,GAAG,CAAC,oBAAS,CAAC,CAAC;AAEpB,UAAU,CAAC;IACT,eAAK,CAAC,OAAO,EAAE,CAAC;AAClB,CAAC,CAAC,CAAC","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 *--------------------------------------------------------------------------------------------*/\n\nimport * as chai from \"chai\";\nimport chaiAsPromised from \"chai-as-promised\";\nimport sinon from \"sinon\";\nimport sinonChai from \"sinon-chai\";\n\n// setup chai\nchai.use(chaiAsPromised);\nchai.use(sinonChai);\n\nbeforeEach(function () {\n sinon.restore();\n});\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Formatting.test.d.ts","sourceRoot":"","sources":["../../../src/test/Formatting.test.ts"],"names":[],"mappings":""}
|