@itwin/core-backend 5.10.0-dev.20 → 5.10.0-dev.22

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. package/lib/cjs/ECSqlStatement.d.ts.map +1 -1
  2. package/lib/cjs/ECSqlStatement.js +4 -0
  3. package/lib/cjs/ECSqlStatement.js.map +1 -1
  4. package/lib/cjs/ECSqlSyncReader.d.ts.map +1 -1
  5. package/lib/cjs/ECSqlSyncReader.js +1 -0
  6. package/lib/cjs/ECSqlSyncReader.js.map +1 -1
  7. package/lib/cjs/IModelDb.d.ts.map +1 -1
  8. package/lib/cjs/IModelDb.js +2 -0
  9. package/lib/cjs/IModelDb.js.map +1 -1
  10. package/lib/cjs/internal/workspace/WorkspaceImpl.d.ts.map +1 -1
  11. package/lib/cjs/internal/workspace/WorkspaceImpl.js +7 -11
  12. package/lib/cjs/internal/workspace/WorkspaceImpl.js.map +1 -1
  13. package/lib/cjs/workspace/Workspace.d.ts +3 -1
  14. package/lib/cjs/workspace/Workspace.d.ts.map +1 -1
  15. package/lib/cjs/workspace/Workspace.js.map +1 -1
  16. package/lib/esm/ECSqlStatement.d.ts.map +1 -1
  17. package/lib/esm/ECSqlStatement.js +4 -0
  18. package/lib/esm/ECSqlStatement.js.map +1 -1
  19. package/lib/esm/ECSqlSyncReader.d.ts.map +1 -1
  20. package/lib/esm/ECSqlSyncReader.js +1 -0
  21. package/lib/esm/ECSqlSyncReader.js.map +1 -1
  22. package/lib/esm/IModelDb.d.ts.map +1 -1
  23. package/lib/esm/IModelDb.js +2 -0
  24. package/lib/esm/IModelDb.js.map +1 -1
  25. package/lib/esm/internal/workspace/WorkspaceImpl.d.ts.map +1 -1
  26. package/lib/esm/internal/workspace/WorkspaceImpl.js +7 -11
  27. package/lib/esm/internal/workspace/WorkspaceImpl.js.map +1 -1
  28. package/lib/esm/test/ecdb/CTE.test.js +1 -0
  29. package/lib/esm/test/ecdb/CTE.test.js.map +1 -1
  30. package/lib/esm/test/ecdb/ECSqlQuery.test.js +10 -2
  31. package/lib/esm/test/ecdb/ECSqlQuery.test.js.map +1 -1
  32. package/lib/esm/test/ecdb/ECSqlStatement.test.js +10 -0
  33. package/lib/esm/test/ecdb/ECSqlStatement.test.js.map +1 -1
  34. package/lib/esm/test/ecdb/ECSqlSyncReader.test.js +1 -0
  35. package/lib/esm/test/ecdb/ECSqlSyncReader.test.js.map +1 -1
  36. package/lib/esm/test/ecdb/QueryReaders.test.js +13 -0
  37. package/lib/esm/test/ecdb/QueryReaders.test.js.map +1 -1
  38. package/lib/esm/test/ecsql/src/ECSqlTestRunner.test.js +1 -0
  39. package/lib/esm/test/ecsql/src/ECSqlTestRunner.test.js.map +1 -1
  40. package/lib/esm/test/element/DeleteDefinitionElements.test.js +6 -2
  41. package/lib/esm/test/element/DeleteDefinitionElements.test.js.map +1 -1
  42. package/lib/esm/test/element/ElementRoundTrip.test.js +5 -0
  43. package/lib/esm/test/element/ElementRoundTrip.test.js.map +1 -1
  44. package/lib/esm/test/element/ExcludedElements.test.js +1 -0
  45. package/lib/esm/test/element/ExcludedElements.test.js.map +1 -1
  46. package/lib/esm/test/hubaccess/SemanticRebase.test.js +1 -0
  47. package/lib/esm/test/hubaccess/SemanticRebase.test.js.map +1 -1
  48. package/lib/esm/test/schema/SchemaViewKoQ.test.js +12 -3
  49. package/lib/esm/test/schema/SchemaViewKoQ.test.js.map +1 -1
  50. package/lib/esm/test/standalone/IModelWrite.test.js +6 -0
  51. package/lib/esm/test/standalone/IModelWrite.test.js.map +1 -1
  52. package/lib/esm/test/standalone/Workspace.test.js +23 -0
  53. package/lib/esm/test/standalone/Workspace.test.js.map +1 -1
  54. package/lib/esm/workspace/Workspace.d.ts +3 -1
  55. package/lib/esm/workspace/Workspace.d.ts.map +1 -1
  56. package/lib/esm/workspace/Workspace.js.map +1 -1
  57. package/package.json +12 -12
@@ -92,6 +92,7 @@ describe("WithQueryReaderTests", () => {
92
92
  }, undefined, config);
93
93
  });
94
94
  it("checking rowFormat UseJsPropertyNames - values accessed by JavaScript property name", () => {
95
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
95
96
  const config = new QueryOptionsBuilder().setRowFormat(QueryRowFormat.UseJsPropertyNames).getOptions();
96
97
  iModel.withQueryReader("SELECT ECInstanceId, ECClassId FROM bis.Element", (reader) => {
97
98
  assert.isTrue(reader.step());
@@ -1 +1 @@
1
- {"version":3,"file":"ECSqlSyncReader.test.js","sourceRoot":"","sources":["../../../../src/test/ecdb/ECSqlSyncReader.test.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAE/F,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AACtC,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzE,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAE3C,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;IACpC,IAAI,MAAkB,CAAC;IAEvB,MAAM,CAAC,KAAK,IAAI,EAAE;QAChB,MAAM,GAAG,UAAU,CAAC,QAAQ,CAAC,eAAe,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAAC;IAC7E,CAAC,CAAC,CAAC;IAEH,KAAK,CAAC,KAAK,IAAI,EAAE;QACf,MAAM,CAAC,KAAK,EAAE,CAAC;IACjB,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;QAC3D,IAAI,cAAc,GAAG,CAAC,CAAC;QACvB,MAAM,mBAAmB,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;YAC/D,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QAE1C,MAAM,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,eAAe,CAAC,2BAA2B,EAAE,CAAC,MAAM,EAAE,EAAE;YAC1E,IAAI,SAAS,GAAG,CAAC,CAAC;YAClB,kCAAkC;YAClC,OAAO,SAAS,GAAG,EAAE,EAAE,CAAC;gBACtB,MAAM,CAAC,IAAI,EAAE,CAAA;gBACb,cAAc,EAAE,CAAC;gBACjB,SAAS,EAAE,CAAC;gBACZ,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;gBACpC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,mBAAmB,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC,CAAC;YAC3E,CAAC;YACD,MAAM,CAAC,KAAK,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;YAC5B,MAAM,CAAC,WAAW,EAAE,CAAC;YAErB,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,qCAAqC;QACtD,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IAC9B,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,kEAAkE,EAAE,GAAG,EAAE;QAC1E,MAAM,UAAU,GAAG,MAAM,CAAC,QAAQ,CAAC;QACnC,MAAM,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,eAAe,CAAC,2BAA2B,EAAE,CAAC,MAAM,EAAE,EAAE;YAC1E,IAAI,SAAS,GAAG,CAAC,CAAC;YAClB,OAAO,SAAS,GAAG,EAAE,EAAE,CAAC;gBACtB,MAAM,CAAC,IAAI,EAAE,CAAC;gBACd,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;gBACpC,SAAS,EAAE,CAAC;YACd,CAAC;YACD,MAAM,CAAC,KAAK,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;YAC5B,MAAM,CAAC,KAAK,EAAE,CAAC;YAEf,MAAM,GAAG,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;YACzC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;YACpC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,4CAA4C;QAC7D,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,2FAA2F,EAAE,GAAG,EAAE;QACnG,MAAM,SAAS,GAAG,MAAM,CAAC,eAAe,CAAC,2BAA2B,EAAE,CAAC,MAAM,EAAE,EAAE;YAC/E,MAAM,CAAC,IAAI,EAAE,CAAC;YACd,OAAO,MAAM,CAAC;QAChB,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,4DAA4D;QAC1G,MAAM,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;IACvE,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,gEAAgE,EAAE,GAAG,EAAE;QACxE,kGAAkG;QAClG,MAAM,CAAC,eAAe,CAAC,iDAAiD,EAAE,CAAC,MAAM,EAAE,EAAE;YACnF,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;YAC7B,MAAM,EAAE,GAAW,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YACrC,MAAM,OAAO,GAAW,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YAC1C,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YACrC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;YAChC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;QAC3B,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uEAAuE,EAAE,GAAG,EAAE;QAC/E,MAAM,MAAM,GAAG,IAAI,mBAAmB,EAAE,CAAC,YAAY,CAAC,cAAc,CAAC,uBAAuB,CAAC,CAAC,UAAU,EAAE,CAAC;QAC3G,MAAM,CAAC,eAAe,CAAC,iDAAiD,EAAE,CAAC,MAAM,EAAE,EAAE;YACnF,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;YAC7B,8CAA8C;YAC9C,MAAM,EAAE,GAAW,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YACrC,MAAM,OAAO,GAAW,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YAC1C,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;YACzB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YACrC,iDAAiD;QACnD,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IACxB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mFAAmF,EAAE,GAAG,EAAE;QAC3F,MAAM,MAAM,GAAG,IAAI,mBAAmB,EAAE,CAAC,YAAY,CAAC,cAAc,CAAC,qBAAqB,CAAC,CAAC,UAAU,EAAE,CAAC;QACzG,MAAM,CAAC,eAAe,CAAC,iDAAiD,EAAE,CAAC,MAAM,EAAE,EAAE;YACnF,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;YAC7B,MAAM,EAAE,GAAW,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC;YAC/C,MAAM,OAAO,GAAW,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC;YACjD,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;YACzB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;QACvC,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IACxB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qFAAqF,EAAE,GAAG,EAAE;QAC7F,MAAM,MAAM,GAAG,IAAI,mBAAmB,EAAE,CAAC,YAAY,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAAC,UAAU,EAAE,CAAC;QACtG,MAAM,CAAC,eAAe,CAAC,iDAAiD,EAAE,CAAC,MAAM,EAAE,EAAE;YACnF,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;YAC7B,6FAA6F;YAC7F,MAAM,EAAE,GAAW,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;YACrC,MAAM,SAAS,GAAW,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC;YACnD,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;YACzB,yDAAyD;YACzD,MAAM,CAAC,KAAK,CAAC,SAAS,EAAE,yBAAyB,CAAC,CAAC;QACrD,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IACxB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qHAAqH,EAAE,GAAG,EAAE;QAC7H,MAAM,MAAM,GAAG,IAAI,mBAAmB,EAAE;aACrC,YAAY,CAAC,cAAc,CAAC,qBAAqB,CAAC;YACnD,4DAA4D;aAC3D,yBAAyB,CAAC,IAAI,CAAC;aAC/B,UAAU,EAAE,CAAC;QAChB,MAAM,CAAC,eAAe,CAAC,iDAAiD,EAAE,CAAC,MAAM,EAAE,EAAE;YACnF,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;YAC7B,MAAM,EAAE,GAAW,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC;YAC/C,MAAM,OAAO,GAAW,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC;YACjD,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;YACzB,qGAAqG;YACrG,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,yBAAyB,CAAC,CAAC;QACnD,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IACxB,CAAC,CAAC,CAAC;AACL,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 { assert, expect } from \"chai\";\nimport { QueryOptionsBuilder, QueryRowFormat } from \"@itwin/core-common\";\nimport { SnapshotDb } from \"../../IModelDb\";\nimport { IModelTestUtils } from \"../IModelTestUtils\";\nimport { Id64 } from \"@itwin/core-bentley\";\n\ndescribe(\"WithQueryReaderTests\", () => {\n let iModel: SnapshotDb;\n\n before(async () => {\n iModel = SnapshotDb.openFile(IModelTestUtils.resolveAssetFile(\"test.bim\"));\n });\n\n after(async () => {\n iModel.close();\n });\n it(\"check behvaiour if we call clearCaches in between\", () => {\n let actualRowCount = 0;\n const expectedInstanceIds = [\"0x1\", \"0xe\", \"0x10\", \"0x11\", \"0x12\",\n \"0x13\", \"0x14\", \"0x15\", \"0x16\", \"0x17\"];\n\n expect(() => iModel.withQueryReader(\"SELECT * FROM bis.Element\", (reader) => {\n let loopCount = 0;\n // First loop - read first 10 rows\n while (loopCount < 10) {\n reader.step()\n actualRowCount++;\n loopCount++;\n assert.isDefined(reader.current[0]);\n assert.equal(reader.current[0], expectedInstanceIds[actualRowCount - 1]);\n }\n assert.equal(loopCount, 10);\n iModel.clearCaches();\n\n reader.step(); // step should fail after clearCaches\n })).to.throw(\"Step failed\");\n });\n it(\"should throw error if we try to step on a closed iModelDb object\", () => {\n const imodelPath = iModel.pathName;\n expect(() => iModel.withQueryReader(\"SELECT * FROM bis.Element\", (reader) => {\n let loopCount = 0;\n while (loopCount < 10) {\n reader.step();\n assert.isDefined(reader.current[0]);\n loopCount++;\n }\n assert.equal(loopCount, 10);\n iModel.close();\n\n iModel = SnapshotDb.openFile(imodelPath);\n assert.isDefined(reader.current[0]);\n reader.step(); // step should fail after iModelDb is closed\n })).to.throw(\"Statement is not prepared\");\n });\n it(\"returning reader from withQueryReader callback should throw error if we try to step on it\", () => {\n const readerObj = iModel.withQueryReader(\"SELECT * FROM bis.Element\", (reader) => {\n reader.step();\n return reader;\n });\n expect(readerObj.current[0]).to.equal(\"0x1\"); // will not throw error as we are just accessing current row\n expect(() => readerObj.step()).to.throw(\"Statement is not prepared\");\n });\n it(\"checking rowFormat unspecified case - values accessed by index\", () => {\n // Default rowFormat is UseECSqlPropertyIndexes: columns are accessed by their SELECT-order index.\n iModel.withQueryReader(\"SELECT ECInstanceId, ECClassId FROM bis.Element\", (reader) => {\n assert.isTrue(reader.step());\n const id: string = reader.current[0];\n const classId: string = reader.current[1];\n assert.isTrue(Id64.isValid(classId));\n assert.isTrue(Id64.isValid(id));\n assert.equal(id, \"0x19\");\n });\n });\n\n it(\"checking rowFormat UseECSqlPropertyIndexes - values accessed by index\", () => {\n const config = new QueryOptionsBuilder().setRowFormat(QueryRowFormat.UseECSqlPropertyIndexes).getOptions();\n iModel.withQueryReader(\"SELECT ECInstanceId, ECClassId FROM bis.Element\", (reader) => {\n assert.isTrue(reader.step());\n // Index 0 → ECInstanceId, index 1 → ECClassId\n const id: string = reader.current[0];\n const classId: string = reader.current[1];\n assert.equal(id, \"0x19\");\n assert.isTrue(Id64.isValid(classId));\n // Swapping column order changes index, not value\n }, undefined, config);\n });\n\n it(\"checking rowFormat UseECSqlPropertyNames - values accessed by ECSQL property name\", () => {\n const config = new QueryOptionsBuilder().setRowFormat(QueryRowFormat.UseECSqlPropertyNames).getOptions();\n iModel.withQueryReader(\"SELECT ECInstanceId, ECClassId FROM bis.Element\", (reader) => {\n assert.isTrue(reader.step());\n const id: string = reader.current.ECInstanceId;\n const classId: string = reader.current.ECClassId;\n assert.equal(id, \"0x19\");\n assert.isTrue(Id64.isValid(classId));\n }, undefined, config);\n });\n\n it(\"checking rowFormat UseJsPropertyNames - values accessed by JavaScript property name\", () => {\n const config = new QueryOptionsBuilder().setRowFormat(QueryRowFormat.UseJsPropertyNames).getOptions();\n iModel.withQueryReader(\"SELECT ECInstanceId, ECClassId FROM bis.Element\", (reader) => {\n assert.isTrue(reader.step());\n // ECInstanceId → id, ECClassId → className (resolved to a fully-qualified class name string)\n const id: string = reader.current.id;\n const className: string = reader.current.className;\n assert.equal(id, \"0x19\");\n // className should be in the form \"SchemaName.ClassName\"\n assert.equal(className, \"BisCore.DrawingCategory\");\n }, undefined, config);\n });\n\n it(\"checking rowFormat UseECSqlPropertyNames with convertClassIdsToClassNames - ECClassId returned as class name string\", () => {\n const config = new QueryOptionsBuilder()\n .setRowFormat(QueryRowFormat.UseECSqlPropertyNames)\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n .setConvertClassIdsToNames(true)\n .getOptions();\n iModel.withQueryReader(\"SELECT ECInstanceId, ECClassId FROM bis.Element\", (reader) => {\n assert.isTrue(reader.step());\n const id: string = reader.current.ECInstanceId;\n const classId: string = reader.current.ECClassId;\n assert.equal(id, \"0x19\");\n // With convertClassIdsToClassNames, ECClassId is resolved to \"SchemaName.ClassName\" instead of an Id\n assert.equal(classId, \"BisCore.DrawingCategory\");\n }, undefined, config);\n });\n});\n"]}
1
+ {"version":3,"file":"ECSqlSyncReader.test.js","sourceRoot":"","sources":["../../../../src/test/ecdb/ECSqlSyncReader.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 { assert, expect } from \"chai\";\nimport { QueryOptionsBuilder, QueryRowFormat } from \"@itwin/core-common\";\nimport { SnapshotDb } from \"../../IModelDb\";\nimport { IModelTestUtils } from \"../IModelTestUtils\";\nimport { Id64 } from \"@itwin/core-bentley\";\n\ndescribe(\"WithQueryReaderTests\", () => {\n let iModel: SnapshotDb;\n\n before(async () => {\n iModel = SnapshotDb.openFile(IModelTestUtils.resolveAssetFile(\"test.bim\"));\n });\n\n after(async () => {\n iModel.close();\n });\n it(\"check behvaiour if we call clearCaches in between\", () => {\n let actualRowCount = 0;\n const expectedInstanceIds = [\"0x1\", \"0xe\", \"0x10\", \"0x11\", \"0x12\",\n \"0x13\", \"0x14\", \"0x15\", \"0x16\", \"0x17\"];\n\n expect(() => iModel.withQueryReader(\"SELECT * FROM bis.Element\", (reader) => {\n let loopCount = 0;\n // First loop - read first 10 rows\n while (loopCount < 10) {\n reader.step()\n actualRowCount++;\n loopCount++;\n assert.isDefined(reader.current[0]);\n assert.equal(reader.current[0], expectedInstanceIds[actualRowCount - 1]);\n }\n assert.equal(loopCount, 10);\n iModel.clearCaches();\n\n reader.step(); // step should fail after clearCaches\n })).to.throw(\"Step failed\");\n });\n it(\"should throw error if we try to step on a closed iModelDb object\", () => {\n const imodelPath = iModel.pathName;\n expect(() => iModel.withQueryReader(\"SELECT * FROM bis.Element\", (reader) => {\n let loopCount = 0;\n while (loopCount < 10) {\n reader.step();\n assert.isDefined(reader.current[0]);\n loopCount++;\n }\n assert.equal(loopCount, 10);\n iModel.close();\n\n iModel = SnapshotDb.openFile(imodelPath);\n assert.isDefined(reader.current[0]);\n reader.step(); // step should fail after iModelDb is closed\n })).to.throw(\"Statement is not prepared\");\n });\n it(\"returning reader from withQueryReader callback should throw error if we try to step on it\", () => {\n const readerObj = iModel.withQueryReader(\"SELECT * FROM bis.Element\", (reader) => {\n reader.step();\n return reader;\n });\n expect(readerObj.current[0]).to.equal(\"0x1\"); // will not throw error as we are just accessing current row\n expect(() => readerObj.step()).to.throw(\"Statement is not prepared\");\n });\n it(\"checking rowFormat unspecified case - values accessed by index\", () => {\n // Default rowFormat is UseECSqlPropertyIndexes: columns are accessed by their SELECT-order index.\n iModel.withQueryReader(\"SELECT ECInstanceId, ECClassId FROM bis.Element\", (reader) => {\n assert.isTrue(reader.step());\n const id: string = reader.current[0];\n const classId: string = reader.current[1];\n assert.isTrue(Id64.isValid(classId));\n assert.isTrue(Id64.isValid(id));\n assert.equal(id, \"0x19\");\n });\n });\n\n it(\"checking rowFormat UseECSqlPropertyIndexes - values accessed by index\", () => {\n const config = new QueryOptionsBuilder().setRowFormat(QueryRowFormat.UseECSqlPropertyIndexes).getOptions();\n iModel.withQueryReader(\"SELECT ECInstanceId, ECClassId FROM bis.Element\", (reader) => {\n assert.isTrue(reader.step());\n // Index 0 → ECInstanceId, index 1 → ECClassId\n const id: string = reader.current[0];\n const classId: string = reader.current[1];\n assert.equal(id, \"0x19\");\n assert.isTrue(Id64.isValid(classId));\n // Swapping column order changes index, not value\n }, undefined, config);\n });\n\n it(\"checking rowFormat UseECSqlPropertyNames - values accessed by ECSQL property name\", () => {\n const config = new QueryOptionsBuilder().setRowFormat(QueryRowFormat.UseECSqlPropertyNames).getOptions();\n iModel.withQueryReader(\"SELECT ECInstanceId, ECClassId FROM bis.Element\", (reader) => {\n assert.isTrue(reader.step());\n const id: string = reader.current.ECInstanceId;\n const classId: string = reader.current.ECClassId;\n assert.equal(id, \"0x19\");\n assert.isTrue(Id64.isValid(classId));\n }, undefined, config);\n });\n\n it(\"checking rowFormat UseJsPropertyNames - values accessed by JavaScript property name\", () => {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n const config = new QueryOptionsBuilder().setRowFormat(QueryRowFormat.UseJsPropertyNames).getOptions();\n iModel.withQueryReader(\"SELECT ECInstanceId, ECClassId FROM bis.Element\", (reader) => {\n assert.isTrue(reader.step());\n // ECInstanceId → id, ECClassId → className (resolved to a fully-qualified class name string)\n const id: string = reader.current.id;\n const className: string = reader.current.className;\n assert.equal(id, \"0x19\");\n // className should be in the form \"SchemaName.ClassName\"\n assert.equal(className, \"BisCore.DrawingCategory\");\n }, undefined, config);\n });\n\n it(\"checking rowFormat UseECSqlPropertyNames with convertClassIdsToClassNames - ECClassId returned as class name string\", () => {\n const config = new QueryOptionsBuilder()\n .setRowFormat(QueryRowFormat.UseECSqlPropertyNames)\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n .setConvertClassIdsToNames(true)\n .getOptions();\n iModel.withQueryReader(\"SELECT ECInstanceId, ECClassId FROM bis.Element\", (reader) => {\n assert.isTrue(reader.step());\n const id: string = reader.current.ECInstanceId;\n const classId: string = reader.current.ECClassId;\n assert.equal(id, \"0x19\");\n // With convertClassIdsToClassNames, ECClassId is resolved to \"SchemaName.ClassName\" instead of an Id\n assert.equal(classId, \"BisCore.DrawingCategory\");\n }, undefined, config);\n });\n});\n"]}
@@ -90,6 +90,7 @@ describe("QueryReaders - createQueryReader() and withQueryReader() api tests", (
90
90
  const params = new QueryBinder();
91
91
  params.bindIdSet(1, ["0x32"]);
92
92
  const optionBuilder = new QueryOptionsBuilder();
93
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
93
94
  optionBuilder.setRowFormat(QueryRowFormat.UseJsPropertyNames);
94
95
  const readerCallback = async (readerObj) => {
95
96
  const rows = await readerObj.toArray();
@@ -126,6 +127,7 @@ describe("QueryReaders - createQueryReader() and withQueryReader() api tests", (
126
127
  const params = new QueryBinder();
127
128
  params.bindIdSet(1, ["0x32"]);
128
129
  const optionBuilder = new QueryOptionsBuilder();
130
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
129
131
  optionBuilder.setRowFormat(QueryRowFormat.UseJsPropertyNames);
130
132
  const readerCallback = async (readerObj) => {
131
133
  const rows = await readerObj.toArray();
@@ -162,6 +164,7 @@ describe("QueryReaders - createQueryReader() and withQueryReader() api tests", (
162
164
  const params = new QueryBinder();
163
165
  params.bindIdSet(1, ["50"]);
164
166
  const optionBuilder = new QueryOptionsBuilder();
167
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
165
168
  optionBuilder.setRowFormat(QueryRowFormat.UseJsPropertyNames);
166
169
  const readerCallback = async (readerObj) => {
167
170
  const rows = await readerObj.toArray();
@@ -477,7 +480,9 @@ describe("QueryReaders - createQueryReader() and withQueryReader() api tests", (
477
480
  }
478
481
  assert.equal(rowCount, 5);
479
482
  };
483
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
480
484
  iModel.withQueryReader("SELECT * FROM meta.ECSchemaDef LIMIT 5", syncReaderCallback, undefined, { rowFormat: QueryRowFormat.UseJsPropertyNames });
485
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
481
486
  const reader = iModel.createQueryReader("SELECT * FROM meta.ECSchemaDef", undefined, { limit: { count: 5 }, rowFormat: QueryRowFormat.UseJsPropertyNames });
482
487
  await readerCallback(reader);
483
488
  });
@@ -621,7 +626,9 @@ describe("QueryReaders - createQueryReader() and withQueryReader() api tests", (
621
626
  }
622
627
  assert.equal(rowCount, 5);
623
628
  };
629
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
624
630
  iModel.withQueryReader("SELECT * FROM meta.ECSchemaDef LIMIT 5", syncReaderCallback, undefined, { rowFormat: QueryRowFormat.UseJsPropertyNames });
631
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
625
632
  const reader = iModel.createQueryReader("SELECT * FROM meta.ECSchemaDef", undefined, { limit: { count: 5 }, rowFormat: QueryRowFormat.UseJsPropertyNames });
626
633
  await readerCallback(reader);
627
634
  });
@@ -769,7 +776,9 @@ describe("QueryReaders - createQueryReader() and withQueryReader() api tests", (
769
776
  }
770
777
  assert.equal(rowCount, 5);
771
778
  };
779
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
772
780
  iModel.withQueryReader("SELECT * FROM bis.Element c JOIN bis.Element p ON p.ECInstanceId = c.ECInstanceId LIMIT 5", syncReaderCallback, undefined, { rowFormat: QueryRowFormat.UseJsPropertyNames });
781
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
773
782
  const reader = iModel.createQueryReader("SELECT * FROM bis.Element c JOIN bis.Element p ON p.ECInstanceId = c.ECInstanceId", undefined, { limit: { count: 5 }, rowFormat: QueryRowFormat.UseJsPropertyNames });
774
783
  await readerCallback(reader);
775
784
  });
@@ -917,7 +926,9 @@ describe("QueryReaders - createQueryReader() and withQueryReader() api tests", (
917
926
  }
918
927
  assert.equal(rowCount, 5);
919
928
  };
929
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
920
930
  iModel.withQueryReader("SELECT ECInstanceId FROM meta.ECSchemaDef ORDER BY ECInstanceId ASC LIMIT 5", syncReaderCallback, undefined, { rowFormat: QueryRowFormat.UseJsPropertyNames });
931
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
921
932
  const reader = iModel.createQueryReader("SELECT ECInstanceId FROM meta.ECSchemaDef ORDER BY ECInstanceId ASC", undefined, { limit: { count: 5 }, rowFormat: QueryRowFormat.UseJsPropertyNames });
922
933
  await readerCallback(reader);
923
934
  });
@@ -1055,7 +1066,9 @@ describe("QueryReaders - createQueryReader() and withQueryReader() api tests", (
1055
1066
  }
1056
1067
  assert.equal(rowCount, 5);
1057
1068
  };
1069
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
1058
1070
  iModel.withQueryReader("SELECT ECInstanceId customColumnName FROM meta.ECSchemaDef ORDER BY ECInstanceId ASC LIMIT 5", syncReaderCallback, undefined, { rowFormat: QueryRowFormat.UseJsPropertyNames });
1071
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
1059
1072
  const reader = iModel.createQueryReader("SELECT ECInstanceId customColumnName FROM meta.ECSchemaDef ORDER BY ECInstanceId ASC", undefined, { limit: { count: 5 }, rowFormat: QueryRowFormat.UseJsPropertyNames });
1060
1073
  await readerCallback(reader);
1061
1074
  });