@itwin/core-backend 5.9.0-dev.8 → 5.10.0-dev.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.
Files changed (244) hide show
  1. package/CHANGELOG.md +18 -1
  2. package/lib/cjs/BackendHubAccess.d.ts +38 -0
  3. package/lib/cjs/BackendHubAccess.d.ts.map +1 -1
  4. package/lib/cjs/BackendHubAccess.js.map +1 -1
  5. package/lib/cjs/BriefcaseManager.d.ts.map +1 -1
  6. package/lib/cjs/BriefcaseManager.js +6 -3
  7. package/lib/cjs/BriefcaseManager.js.map +1 -1
  8. package/lib/cjs/ChangesetECAdaptor.d.ts +9 -1
  9. package/lib/cjs/ChangesetECAdaptor.d.ts.map +1 -1
  10. package/lib/cjs/ChangesetECAdaptor.js +7 -1
  11. package/lib/cjs/ChangesetECAdaptor.js.map +1 -1
  12. package/lib/cjs/ChangesetReader.d.ts +186 -0
  13. package/lib/cjs/ChangesetReader.d.ts.map +1 -0
  14. package/lib/cjs/ChangesetReader.js +372 -0
  15. package/lib/cjs/ChangesetReader.js.map +1 -0
  16. package/lib/cjs/ChangesetReaderTypes.d.ts +120 -0
  17. package/lib/cjs/ChangesetReaderTypes.d.ts.map +1 -0
  18. package/lib/cjs/ChangesetReaderTypes.js +23 -0
  19. package/lib/cjs/ChangesetReaderTypes.js.map +1 -0
  20. package/lib/cjs/CloudSqlite.d.ts +1 -1
  21. package/lib/cjs/CloudSqlite.d.ts.map +1 -1
  22. package/lib/cjs/CloudSqlite.js +68 -13
  23. package/lib/cjs/CloudSqlite.js.map +1 -1
  24. package/lib/cjs/ConcurrentQuery.js.map +1 -1
  25. package/lib/cjs/DevTools.js.map +1 -1
  26. package/lib/cjs/DisplayStyle.js.map +1 -1
  27. package/lib/cjs/ECSqlStatement.d.ts.map +1 -1
  28. package/lib/cjs/ECSqlStatement.js.map +1 -1
  29. package/lib/cjs/EditTxn.d.ts +55 -1
  30. package/lib/cjs/EditTxn.d.ts.map +1 -1
  31. package/lib/cjs/EditTxn.js +43 -1
  32. package/lib/cjs/EditTxn.js.map +1 -1
  33. package/lib/cjs/Element.d.ts +69 -0
  34. package/lib/cjs/Element.d.ts.map +1 -1
  35. package/lib/cjs/Element.js +36 -0
  36. package/lib/cjs/Element.js.map +1 -1
  37. package/lib/cjs/ElementGraphics.js.map +1 -1
  38. package/lib/cjs/ExternalSource.js.map +1 -1
  39. package/lib/cjs/GeographicCRSServices.d.ts +15 -0
  40. package/lib/cjs/GeographicCRSServices.d.ts.map +1 -1
  41. package/lib/cjs/GeographicCRSServices.js +13 -4
  42. package/lib/cjs/GeographicCRSServices.js.map +1 -1
  43. package/lib/cjs/IModelDb.d.ts +9 -1
  44. package/lib/cjs/IModelDb.d.ts.map +1 -1
  45. package/lib/cjs/IModelDb.js +25 -6
  46. package/lib/cjs/IModelDb.js.map +1 -1
  47. package/lib/cjs/IModelIncrementalSchemaLocater.js.map +1 -1
  48. package/lib/cjs/IpcHost.d.ts.map +1 -1
  49. package/lib/cjs/IpcHost.js +33 -13
  50. package/lib/cjs/IpcHost.js.map +1 -1
  51. package/lib/cjs/LockControl.d.ts +85 -1
  52. package/lib/cjs/LockControl.d.ts.map +1 -1
  53. package/lib/cjs/LockControl.js.map +1 -1
  54. package/lib/cjs/Model.d.ts +34 -0
  55. package/lib/cjs/Model.d.ts.map +1 -1
  56. package/lib/cjs/Model.js +24 -0
  57. package/lib/cjs/Model.js.map +1 -1
  58. package/lib/cjs/PartialChangeUnifier.d.ts +77 -0
  59. package/lib/cjs/PartialChangeUnifier.d.ts.map +1 -0
  60. package/lib/cjs/PartialChangeUnifier.js +234 -0
  61. package/lib/cjs/PartialChangeUnifier.js.map +1 -0
  62. package/lib/cjs/SheetIndex.js.map +1 -1
  63. package/lib/cjs/SqliteChangesetReader.d.ts.map +1 -1
  64. package/lib/cjs/SqliteChangesetReader.js +1 -1
  65. package/lib/cjs/SqliteChangesetReader.js.map +1 -1
  66. package/lib/cjs/TxnManager.d.ts +114 -4
  67. package/lib/cjs/TxnManager.d.ts.map +1 -1
  68. package/lib/cjs/TxnManager.js +196 -8
  69. package/lib/cjs/TxnManager.js.map +1 -1
  70. package/lib/cjs/ViewDefinition.d.ts +19 -7
  71. package/lib/cjs/ViewDefinition.d.ts.map +1 -1
  72. package/lib/cjs/ViewDefinition.js +77 -25
  73. package/lib/cjs/ViewDefinition.js.map +1 -1
  74. package/lib/cjs/ViewStore.d.ts.map +1 -1
  75. package/lib/cjs/ViewStore.js +63 -21
  76. package/lib/cjs/ViewStore.js.map +1 -1
  77. package/lib/cjs/annotations/TextAnnotationElement.js.map +1 -1
  78. package/lib/cjs/core-backend.d.ts +3 -0
  79. package/lib/cjs/core-backend.d.ts.map +1 -1
  80. package/lib/cjs/core-backend.js +3 -0
  81. package/lib/cjs/core-backend.js.map +1 -1
  82. package/lib/cjs/internal/HubMock.d.ts +2 -0
  83. package/lib/cjs/internal/HubMock.d.ts.map +1 -1
  84. package/lib/cjs/internal/HubMock.js +7 -0
  85. package/lib/cjs/internal/HubMock.js.map +1 -1
  86. package/lib/cjs/internal/IntegrityCheck.d.ts +10 -10
  87. package/lib/cjs/internal/IntegrityCheck.js +22 -22
  88. package/lib/cjs/internal/IntegrityCheck.js.map +1 -1
  89. package/lib/cjs/internal/NoLocks.d.ts.map +1 -1
  90. package/lib/cjs/internal/NoLocks.js +6 -0
  91. package/lib/cjs/internal/NoLocks.js.map +1 -1
  92. package/lib/cjs/internal/ServerBasedLocks.d.ts +12 -0
  93. package/lib/cjs/internal/ServerBasedLocks.d.ts.map +1 -1
  94. package/lib/cjs/internal/ServerBasedLocks.js +285 -4
  95. package/lib/cjs/internal/ServerBasedLocks.js.map +1 -1
  96. package/lib/cjs/internal/workspace/WorkspaceImpl.js.map +1 -1
  97. package/lib/cjs/workspace/Settings.d.ts +6 -4
  98. package/lib/cjs/workspace/Settings.d.ts.map +1 -1
  99. package/lib/cjs/workspace/Settings.js.map +1 -1
  100. package/lib/esm/BackendHubAccess.d.ts +38 -0
  101. package/lib/esm/BackendHubAccess.d.ts.map +1 -1
  102. package/lib/esm/BackendHubAccess.js.map +1 -1
  103. package/lib/esm/BriefcaseManager.d.ts.map +1 -1
  104. package/lib/esm/BriefcaseManager.js +6 -3
  105. package/lib/esm/BriefcaseManager.js.map +1 -1
  106. package/lib/esm/ChangesetECAdaptor.d.ts +9 -1
  107. package/lib/esm/ChangesetECAdaptor.d.ts.map +1 -1
  108. package/lib/esm/ChangesetECAdaptor.js +7 -1
  109. package/lib/esm/ChangesetECAdaptor.js.map +1 -1
  110. package/lib/esm/ChangesetReader.d.ts +186 -0
  111. package/lib/esm/ChangesetReader.d.ts.map +1 -0
  112. package/lib/esm/ChangesetReader.js +368 -0
  113. package/lib/esm/ChangesetReader.js.map +1 -0
  114. package/lib/esm/ChangesetReaderTypes.d.ts +120 -0
  115. package/lib/esm/ChangesetReaderTypes.d.ts.map +1 -0
  116. package/lib/esm/ChangesetReaderTypes.js +20 -0
  117. package/lib/esm/ChangesetReaderTypes.js.map +1 -0
  118. package/lib/esm/CloudSqlite.d.ts +1 -1
  119. package/lib/esm/CloudSqlite.d.ts.map +1 -1
  120. package/lib/esm/CloudSqlite.js +69 -14
  121. package/lib/esm/CloudSqlite.js.map +1 -1
  122. package/lib/esm/ConcurrentQuery.js.map +1 -1
  123. package/lib/esm/DevTools.js.map +1 -1
  124. package/lib/esm/DisplayStyle.js.map +1 -1
  125. package/lib/esm/ECSqlStatement.d.ts.map +1 -1
  126. package/lib/esm/ECSqlStatement.js.map +1 -1
  127. package/lib/esm/EditTxn.d.ts +55 -1
  128. package/lib/esm/EditTxn.d.ts.map +1 -1
  129. package/lib/esm/EditTxn.js +43 -1
  130. package/lib/esm/EditTxn.js.map +1 -1
  131. package/lib/esm/Element.d.ts +69 -0
  132. package/lib/esm/Element.d.ts.map +1 -1
  133. package/lib/esm/Element.js +36 -0
  134. package/lib/esm/Element.js.map +1 -1
  135. package/lib/esm/ElementGraphics.js.map +1 -1
  136. package/lib/esm/ExternalSource.js.map +1 -1
  137. package/lib/esm/GeographicCRSServices.d.ts +15 -0
  138. package/lib/esm/GeographicCRSServices.d.ts.map +1 -1
  139. package/lib/esm/GeographicCRSServices.js +12 -4
  140. package/lib/esm/GeographicCRSServices.js.map +1 -1
  141. package/lib/esm/IModelDb.d.ts +9 -1
  142. package/lib/esm/IModelDb.d.ts.map +1 -1
  143. package/lib/esm/IModelDb.js +26 -7
  144. package/lib/esm/IModelDb.js.map +1 -1
  145. package/lib/esm/IModelIncrementalSchemaLocater.js.map +1 -1
  146. package/lib/esm/IpcHost.d.ts.map +1 -1
  147. package/lib/esm/IpcHost.js +33 -13
  148. package/lib/esm/IpcHost.js.map +1 -1
  149. package/lib/esm/LockControl.d.ts +85 -1
  150. package/lib/esm/LockControl.d.ts.map +1 -1
  151. package/lib/esm/LockControl.js.map +1 -1
  152. package/lib/esm/Model.d.ts +34 -0
  153. package/lib/esm/Model.d.ts.map +1 -1
  154. package/lib/esm/Model.js +24 -0
  155. package/lib/esm/Model.js.map +1 -1
  156. package/lib/esm/PartialChangeUnifier.d.ts +77 -0
  157. package/lib/esm/PartialChangeUnifier.d.ts.map +1 -0
  158. package/lib/esm/PartialChangeUnifier.js +230 -0
  159. package/lib/esm/PartialChangeUnifier.js.map +1 -0
  160. package/lib/esm/SheetIndex.js.map +1 -1
  161. package/lib/esm/SqliteChangesetReader.d.ts.map +1 -1
  162. package/lib/esm/SqliteChangesetReader.js +1 -1
  163. package/lib/esm/SqliteChangesetReader.js.map +1 -1
  164. package/lib/esm/TxnManager.d.ts +114 -4
  165. package/lib/esm/TxnManager.d.ts.map +1 -1
  166. package/lib/esm/TxnManager.js +196 -8
  167. package/lib/esm/TxnManager.js.map +1 -1
  168. package/lib/esm/ViewDefinition.d.ts +19 -7
  169. package/lib/esm/ViewDefinition.d.ts.map +1 -1
  170. package/lib/esm/ViewDefinition.js +78 -26
  171. package/lib/esm/ViewDefinition.js.map +1 -1
  172. package/lib/esm/ViewStore.d.ts.map +1 -1
  173. package/lib/esm/ViewStore.js +64 -22
  174. package/lib/esm/ViewStore.js.map +1 -1
  175. package/lib/esm/annotations/TextAnnotationElement.js.map +1 -1
  176. package/lib/esm/core-backend.d.ts +3 -0
  177. package/lib/esm/core-backend.d.ts.map +1 -1
  178. package/lib/esm/core-backend.js +3 -0
  179. package/lib/esm/core-backend.js.map +1 -1
  180. package/lib/esm/internal/HubMock.d.ts +2 -0
  181. package/lib/esm/internal/HubMock.d.ts.map +1 -1
  182. package/lib/esm/internal/HubMock.js +7 -0
  183. package/lib/esm/internal/HubMock.js.map +1 -1
  184. package/lib/esm/internal/IntegrityCheck.d.ts +10 -10
  185. package/lib/esm/internal/IntegrityCheck.js +22 -22
  186. package/lib/esm/internal/IntegrityCheck.js.map +1 -1
  187. package/lib/esm/internal/NoLocks.d.ts.map +1 -1
  188. package/lib/esm/internal/NoLocks.js +6 -0
  189. package/lib/esm/internal/NoLocks.js.map +1 -1
  190. package/lib/esm/internal/ServerBasedLocks.d.ts +12 -0
  191. package/lib/esm/internal/ServerBasedLocks.d.ts.map +1 -1
  192. package/lib/esm/internal/ServerBasedLocks.js +286 -5
  193. package/lib/esm/internal/ServerBasedLocks.js.map +1 -1
  194. package/lib/esm/internal/workspace/WorkspaceImpl.js.map +1 -1
  195. package/lib/esm/test/ElementDrivesElement.test.d.ts.map +1 -1
  196. package/lib/esm/test/ElementDrivesElement.test.js.map +1 -1
  197. package/lib/esm/test/IModelTestUtils.d.ts +1 -0
  198. package/lib/esm/test/IModelTestUtils.d.ts.map +1 -1
  199. package/lib/esm/test/IModelTestUtils.js +5 -0
  200. package/lib/esm/test/IModelTestUtils.js.map +1 -1
  201. package/lib/esm/test/IpcHost.test.js +112 -0
  202. package/lib/esm/test/IpcHost.test.js.map +1 -1
  203. package/lib/esm/test/annotations/LeaderGeometry.test.js +0 -1
  204. package/lib/esm/test/annotations/LeaderGeometry.test.js.map +1 -1
  205. package/lib/esm/test/ecsql/dataset/ECSqlDatasets.js.map +1 -1
  206. package/lib/esm/test/ecsql/src/ECSqlTestRunner.test.js.map +1 -1
  207. package/lib/esm/test/element/DeleteDefinitionElements.test.js +819 -26
  208. package/lib/esm/test/element/DeleteDefinitionElements.test.js.map +1 -1
  209. package/lib/esm/test/element/ElementRoundTrip.test.js +144 -3
  210. package/lib/esm/test/element/ElementRoundTrip.test.js.map +1 -1
  211. package/lib/esm/test/element/SheetInformationAspect.test.js.map +1 -1
  212. package/lib/esm/test/hubaccess/Rebase.test.js +1 -1
  213. package/lib/esm/test/hubaccess/Rebase.test.js.map +1 -1
  214. package/lib/esm/test/imodel/IModel.test.js +1 -1
  215. package/lib/esm/test/imodel/IModel.test.js.map +1 -1
  216. package/lib/esm/test/imodel/SchemaXmlImport.test.js +64 -0
  217. package/lib/esm/test/imodel/SchemaXmlImport.test.js.map +1 -1
  218. package/lib/esm/test/misc/GeoServices.test.js +43 -1
  219. package/lib/esm/test/misc/GeoServices.test.js.map +1 -1
  220. package/lib/esm/test/sheetindex/SheetIndex.test.js.map +1 -1
  221. package/lib/esm/test/standalone/ChangesetReader.test.js +4184 -1654
  222. package/lib/esm/test/standalone/ChangesetReader.test.js.map +1 -1
  223. package/lib/esm/test/standalone/DeleteElements.test.d.ts +2 -0
  224. package/lib/esm/test/standalone/DeleteElements.test.d.ts.map +1 -0
  225. package/lib/esm/test/standalone/DeleteElements.test.js +625 -0
  226. package/lib/esm/test/standalone/DeleteElements.test.js.map +1 -0
  227. package/lib/esm/test/standalone/GeometryStream.test.js.map +1 -1
  228. package/lib/esm/test/standalone/IntegrityCheck.test.js +214 -5
  229. package/lib/esm/test/standalone/IntegrityCheck.test.js.map +1 -1
  230. package/lib/esm/test/standalone/SQliteChangesetReaderAndChangesetECAdaptor.test.d.ts +2 -0
  231. package/lib/esm/test/standalone/SQliteChangesetReaderAndChangesetECAdaptor.test.d.ts.map +1 -0
  232. package/lib/esm/test/standalone/SQliteChangesetReaderAndChangesetECAdaptor.test.js +1862 -0
  233. package/lib/esm/test/standalone/SQliteChangesetReaderAndChangesetECAdaptor.test.js.map +1 -0
  234. package/lib/esm/test/standalone/ServerBasedLocks.test.js +907 -3
  235. package/lib/esm/test/standalone/ServerBasedLocks.test.js.map +1 -1
  236. package/lib/esm/test/standalone/TxnManager.test.js +90 -0
  237. package/lib/esm/test/standalone/TxnManager.test.js.map +1 -1
  238. package/lib/esm/test/standalone/ViewDefinition.test.js +18 -7
  239. package/lib/esm/test/standalone/ViewDefinition.test.js.map +1 -1
  240. package/lib/esm/test/standalone/Workspace.test.js.map +1 -1
  241. package/lib/esm/workspace/Settings.d.ts +6 -4
  242. package/lib/esm/workspace/Settings.d.ts.map +1 -1
  243. package/lib/esm/workspace/Settings.js.map +1 -1
  244. package/package.json +15 -15
@@ -1 +1 @@
1
- {"version":3,"file":"SheetIndex.test.js","sourceRoot":"","sources":["../../../../src/test/sheetindex/SheetIndex.test.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n * See LICENSE.md in the project root for license terms and full copyright notice.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\nimport { Id64, Id64String } from \"@itwin/core-bentley\";\r\nimport { BisCodeSpec, CodeScopeSpec, CodeSpec, EditTxnError, RelatedElement, SheetProps } from \"@itwin/core-common\";\r\nimport { EditTxn, withEditTxn } from \"../../EditTxn\";\r\n\r\nimport { SnapshotDb } from \"../../IModelDb\";\r\nimport { ExtensiveTestScenario, IModelTestUtils } from \"../IModelTestUtils\";\r\nimport { DocumentPartition, Sheet } from \"../../Element\";\r\nimport { expect } from \"chai\";\r\nimport { DocumentListModel, SheetIndexModel, SheetModel } from \"../../Model\";\r\nimport { ElementOwnsChildElements, SheetIndexFolderOwnsEntries, SheetIndexOwnsEntries, SheetIndexReferenceRefersToSheetIndex, SheetReferenceRefersToSheet } from \"../../NavigationRelationship\";\r\nimport { SheetIndex, SheetIndexFolder, SheetIndexReference, SheetReference } from \"../../SheetIndex\";\r\n\r\nconst getOrCreateDocumentList = (txn: EditTxn): Id64String => {\r\n const documentListName = \"SheetList\";\r\n const ids = txn.iModel.queryEntityIds({ from: DocumentPartition.classFullName, where: `CodeValue = '${documentListName}'` });\r\n if (ids.size === 1)\r\n return ids.values().next().value!;\r\n\r\n const subjectId = txn.iModel.elements.getRootSubject().id;\r\n return DocumentListModel.insert(txn, subjectId, documentListName);\r\n};\r\n\r\nconst insertSheet = (txn: EditTxn, sheetName: string): Id64String => {\r\n const modelId = getOrCreateDocumentList(txn);\r\n const sheetElementProps: SheetProps = {\r\n height: 42,\r\n width: 42,\r\n scale: 42,\r\n classFullName: Sheet.classFullName,\r\n code: Sheet.createCode(txn.iModel, modelId, sheetName),\r\n model: modelId,\r\n };\r\n const sheetElementId = txn.insertElement(sheetElementProps);\r\n return txn.insertModel({\r\n classFullName: SheetModel.classFullName,\r\n modeledElement: { id: sheetElementId, relClassName: \"BisCore:ModelModelsElement\" } as RelatedElement,\r\n });\r\n};\r\n\r\nconst insertCodeSpec = (txn: EditTxn) => {\r\n const indexSpec = CodeSpec.create(txn.iModel, BisCodeSpec.sheetIndex, CodeScopeSpec.Type.Model);\r\n txn.iModel.codeSpecs.insert(txn, indexSpec);\r\n\r\n const entrySpec = CodeSpec.create(txn.iModel, BisCodeSpec.sheetIndexEntry, CodeScopeSpec.Type.ParentElement);\r\n txn.iModel.codeSpecs.insert(txn, entrySpec);\r\n};\r\n\r\ndescribe(\"SheetIndex\", () => {\r\n let iModel: SnapshotDb;\r\n\r\n beforeEach(async () => {\r\n const iModelFile: string = IModelTestUtils.prepareOutputFile(\"IModel\", \"TestSheetIndex.bim\");\r\n\r\n const iModelDb = SnapshotDb.createEmpty(iModelFile, { rootSubject: { name: \"SheetIndex\" } });\r\n await ExtensiveTestScenario.prepareDb(iModelDb);\r\n await ExtensiveTestScenario.populateDb(iModelDb);\r\n iModel = iModelDb;\r\n\r\n withEditTxn(iModel, (txn) => insertCodeSpec(txn));\r\n });\r\n\r\n afterEach(() => {\r\n iModel.close();\r\n });\r\n\r\n it(\"SheetIndexModel Should insert\", () => {\r\n withEditTxn(iModel, (txn) => {\r\n const subjectId = iModel.elements.getRootSubject().id;\r\n const modelId = SheetIndexModel.insert(txn, subjectId, \"testSheetIndex\");\r\n expect(Id64.isValidId64(modelId)).to.be.true;\r\n });\r\n });\r\n\r\n it(\"SheetIndex Should insert\", () => {\r\n withEditTxn(iModel, (txn) => {\r\n const subjectId = iModel.elements.getRootSubject().id;\r\n const modelId = SheetIndexModel.insert(txn, subjectId, \"TestSheetIndexModel\");\r\n expect(Id64.isValidId64(modelId)).to.be.true;\r\n\r\n const sheetIndex = SheetIndex.insert(txn, modelId, \"TestSheetIndex\");\r\n expect(Id64.isValidId64(sheetIndex)).to.be.true;\r\n });\r\n });\r\n\r\n describe(\"Update\", () => {\r\n it(\"Priority\", () => {\r\n withEditTxn(iModel, (txn) => {\r\n const subjectId = iModel.elements.getRootSubject().id;\r\n const modelId = SheetIndexModel.insert(txn, subjectId, \"TestSheetIndexModel\");\r\n expect(Id64.isValidId64(modelId)).to.be.true;\r\n\r\n const sheetIndex1Id = SheetIndex.insert(txn, modelId, \"TestSheetIndex\");\r\n expect(Id64.isValidId64(sheetIndex1Id)).to.be.true;\r\n\r\n const folderId = SheetIndexFolder.insert(txn, { sheetIndexModelId: modelId, parentId: sheetIndex1Id, name: \"TestFolder\", priority: 1 });\r\n expect(Id64.isValidId64(folderId)).to.be.true;\r\n\r\n const folder = iModel.elements.tryGetElement<SheetIndexFolder>(folderId);\r\n expect(folder).to.not.be.undefined;\r\n expect(folder?.entryPriority).equals(1);\r\n\r\n folder!.entryPriority = 0;\r\n folder!.update(txn);\r\n\r\n const folderPostUpdate = iModel.elements.tryGetElement<SheetIndexFolder>(folderId);\r\n expect(folderPostUpdate?.entryPriority).equals(0);\r\n });\r\n });\r\n\r\n it(\"Parent\", () => {\r\n withEditTxn(iModel, (txn) => {\r\n const subjectId = iModel.elements.getRootSubject().id;\r\n const modelId = SheetIndexModel.insert(txn, subjectId, \"TestSheetIndexModel\");\r\n expect(Id64.isValidId64(modelId)).to.be.true;\r\n\r\n const sheetIndex1Id = SheetIndex.insert(txn, modelId, \"TestSheetIndex-1\");\r\n expect(Id64.isValidId64(sheetIndex1Id)).to.be.true;\r\n\r\n const sheetIndex2Id = SheetIndex.insert(txn, modelId, \"TestSheetIndex-2\");\r\n expect(Id64.isValidId64(sheetIndex2Id)).to.be.true;\r\n\r\n const folderId = SheetIndexFolder.insert(txn, { sheetIndexModelId: modelId, parentId: sheetIndex1Id, name: \"TestFolder\", priority: 1 });\r\n expect(Id64.isValidId64(folderId)).to.be.true;\r\n\r\n const folder = iModel.elements.tryGetElement<SheetIndexFolder>(folderId);\r\n expect(folder).to.not.be.undefined;\r\n\r\n const parentRel11 = iModel.relationships.tryGetInstanceProps(ElementOwnsChildElements.classFullName, { sourceId: sheetIndex1Id, targetId: folderId });\r\n expect(parentRel11).to.not.be.undefined;\r\n\r\n folder!.parent = new SheetIndexOwnsEntries(sheetIndex2Id);\r\n folder!.update(txn);\r\n\r\n const parentRel12 = iModel.relationships.tryGetInstanceProps(ElementOwnsChildElements.classFullName, { sourceId: sheetIndex1Id, targetId: folderId });\r\n expect(parentRel12).to.be.undefined;\r\n\r\n const parentRel22 = iModel.relationships.tryGetInstanceProps(ElementOwnsChildElements.classFullName, { sourceId: sheetIndex2Id, targetId: folderId });\r\n expect(parentRel22).to.not.be.undefined;\r\n });\r\n });\r\n\r\n it(\"Sheet Reference\", () => {\r\n withEditTxn(iModel, (txn) => {\r\n const sheet1Id = insertSheet(txn, \"sheet-1\");\r\n const sheet2Id = insertSheet(txn, \"sheet-2\");\r\n const subjectId = iModel.elements.getRootSubject().id;\r\n const modelId = SheetIndexModel.insert(txn, subjectId, \"TestSheetIndexModel\");\r\n expect(Id64.isValidId64(modelId)).to.be.true;\r\n\r\n const sheetIndexId = SheetIndex.insert(txn, modelId, \"TestSheetIndex\");\r\n expect(Id64.isValidId64(sheetIndexId)).to.be.true;\r\n\r\n const sheetRefId = SheetReference.insert(txn, { sheetIndexModelId: modelId, parentId: sheetIndexId, name: \"TestSheetReference\", priority: 1 });\r\n expect(Id64.isValidId64(sheetRefId)).to.be.true;\r\n\r\n const sheetRef = iModel.elements.tryGetElement<SheetReference>(sheetRefId);\r\n expect(sheetRef).to.not.be.undefined;\r\n expect(sheetRef!.sheet).to.be.undefined;\r\n\r\n sheetRef!.sheet = new SheetReferenceRefersToSheet(sheet1Id);\r\n sheetRef!.update(txn);\r\n\r\n const refersRel11 = iModel.relationships.tryGetInstanceProps(SheetReferenceRefersToSheet.classFullName, { sourceId: sheetRefId, targetId: sheet1Id });\r\n expect(refersRel11).to.not.be.undefined;\r\n\r\n const parentRel12 = iModel.relationships.tryGetInstanceProps(SheetReferenceRefersToSheet.classFullName, { sourceId: sheetRefId, targetId: sheet2Id });\r\n expect(parentRel12).to.be.undefined;\r\n\r\n sheetRef!.sheet = new SheetReferenceRefersToSheet(sheet2Id);\r\n sheetRef!.update(txn);\r\n\r\n const refersRel21 = iModel.relationships.tryGetInstanceProps(SheetReferenceRefersToSheet.classFullName, { sourceId: sheetRefId, targetId: sheet1Id });\r\n expect(refersRel21).to.be.undefined;\r\n\r\n const parentRel22 = iModel.relationships.tryGetInstanceProps(SheetReferenceRefersToSheet.classFullName, { sourceId: sheetRefId, targetId: sheet2Id });\r\n expect(parentRel22).to.not.be.undefined;\r\n });\r\n });\r\n\r\n it(\"Sheet Index Reference\", () => {\r\n withEditTxn(iModel, (txn) => {\r\n const subjectId = iModel.elements.getRootSubject().id;\r\n const modelId = SheetIndexModel.insert(txn, subjectId, \"TestSheetIndexModel\");\r\n expect(Id64.isValidId64(modelId)).to.be.true;\r\n\r\n const sheetIndex1Id = SheetIndex.insert(txn, modelId, \"TestSheetIndex-1\");\r\n expect(Id64.isValidId64(sheetIndex1Id)).to.be.true;\r\n\r\n const sheetIndex2Id = SheetIndex.insert(txn, modelId, \"TestSheetIndex-2\");\r\n expect(Id64.isValidId64(sheetIndex2Id)).to.be.true;\r\n const sheetIndex3Id = SheetIndex.insert(txn, modelId, \"TestSheetIndex-3\");\r\n expect(Id64.isValidId64(sheetIndex3Id)).to.be.true;\r\n\r\n const sheetIndexRefId = SheetIndexReference.insert(txn, { sheetIndexModelId: modelId, parentId: sheetIndex1Id, name: \"TestSheetReference\", priority: 1 });\r\n expect(Id64.isValidId64(sheetIndexRefId)).to.be.true;\r\n\r\n const sheetIndexRef = iModel.elements.tryGetElement<SheetIndexReference>(sheetIndexRefId);\r\n expect(sheetIndexRef).to.not.be.undefined;\r\n expect(sheetIndexRef!.sheetIndex).to.be.undefined;\r\n\r\n sheetIndexRef!.sheetIndex = new SheetIndexReferenceRefersToSheetIndex(sheetIndex2Id);\r\n sheetIndexRef!.update(txn);\r\n\r\n const parentRel11 = iModel.relationships.tryGetInstanceProps(SheetIndexReferenceRefersToSheetIndex.classFullName, { sourceId: sheetIndexRefId, targetId: sheetIndex2Id });\r\n expect(parentRel11).to.not.be.undefined;\r\n\r\n sheetIndexRef!.sheetIndex = new SheetIndexReferenceRefersToSheetIndex(sheetIndex3Id);\r\n sheetIndexRef!.update(txn);\r\n\r\n const refersRel21 = iModel.relationships.tryGetInstanceProps(SheetIndexReferenceRefersToSheetIndex.classFullName, { sourceId: sheetIndexRefId, targetId: sheetIndex2Id });\r\n expect(refersRel21).to.be.undefined;\r\n\r\n const parentRel22 = iModel.relationships.tryGetInstanceProps(SheetIndexReferenceRefersToSheetIndex.classFullName, { sourceId: sheetIndexRefId, targetId: sheetIndex3Id });\r\n expect(parentRel22).to.not.be.undefined;\r\n });\r\n });\r\n });\r\n\r\n describe(\"SheetIndexFolder\", () => {\r\n it(\"Should insert\", () => {\r\n withEditTxn(iModel, (txn) => {\r\n const subjectId = iModel.elements.getRootSubject().id;\r\n const modelId = SheetIndexModel.insert(txn, subjectId, \"TestSheetIndexModel\");\r\n expect(Id64.isValidId64(modelId)).to.be.true;\r\n const sheetIndexId = SheetIndex.insert(txn, modelId, \"TestSheetIndex\");\r\n expect(Id64.isValidId64(sheetIndexId)).to.be.true;\r\n\r\n const folderId = SheetIndexFolder.insert(txn, { sheetIndexModelId: modelId, parentId: sheetIndexId, name: \"TestFolder-1\", priority: 1 });\r\n expect(Id64.isValidId64(folderId)).to.be.true;\r\n\r\n const folder = iModel.elements.tryGetElement<SheetIndexFolder>(folderId);\r\n expect(folder).to.not.be.undefined;\r\n\r\n const relationship = iModel.relationships.tryGetInstanceProps(ElementOwnsChildElements.classFullName, { sourceId: sheetIndexId, targetId: folderId });\r\n expect(relationship).to.not.be.undefined;\r\n expect(relationship?.classFullName).equals(SheetIndexOwnsEntries.classFullName);\r\n\r\n expect(folder?.parent?.id).equals(sheetIndexId);\r\n });\r\n });\r\n\r\n it(\"Should not insert SheetIndexFolder with the same name\", () => {\r\n withEditTxn(iModel, (txn) => {\r\n const subjectId = iModel.elements.getRootSubject().id;\r\n const modelId = SheetIndexModel.insert(txn, subjectId, \"TestSheetIndexModel\");\r\n expect(Id64.isValidId64(modelId)).to.be.true;\r\n const sheetIndex = SheetIndex.insert(txn, modelId, \"TestSheetIndex\");\r\n expect(Id64.isValidId64(sheetIndex)).to.be.true;\r\n\r\n const folder = SheetIndexFolder.insert(txn, { sheetIndexModelId: modelId, parentId: sheetIndex, name: \"TestFolder\", priority: 1 });\r\n expect(Id64.isValidId64(folder)).to.be.true;\r\n\r\n const failInsert = () => SheetIndexFolder.insert(txn, { sheetIndexModelId: modelId, parentId: sheetIndex, name: \"TestFolder\", priority: 0 });\r\n\r\n expect(failInsert).throws();\r\n });\r\n });\r\n\r\n it(\"Should have children\", () => {\r\n withEditTxn(iModel, (txn) => {\r\n const subjectId = iModel.elements.getRootSubject().id;\r\n const modelId = SheetIndexModel.insert(txn, subjectId, \"TestSheetIndexModel\");\r\n expect(Id64.isValidId64(modelId)).to.be.true;\r\n const sheetIndexId = SheetIndex.insert(txn, modelId, \"TestSheetIndex\");\r\n expect(Id64.isValidId64(sheetIndexId)).to.be.true;\r\n\r\n const folder1Id = SheetIndexFolder.insert(txn, { sheetIndexModelId: modelId, parentId: sheetIndexId, name: \"TestFolder-1\", priority: 1 });\r\n expect(Id64.isValidId64(folder1Id)).to.be.true;\r\n\r\n const folder2Id = SheetIndexFolder.insert(txn, { sheetIndexModelId: modelId, parentId: folder1Id, name: \"TestFolder-2\", priority: 1 });\r\n expect(Id64.isValidId64(folder2Id)).to.be.true;\r\n const folder2 = iModel.elements.tryGetElement<SheetIndexFolder>(folder2Id);\r\n expect(folder2).to.not.be.undefined;\r\n\r\n const relationship = iModel.relationships.tryGetInstanceProps(ElementOwnsChildElements.classFullName, { sourceId: folder1Id, targetId: folder2Id });\r\n expect(relationship).to.not.be.undefined;\r\n expect(relationship?.classFullName).equals(SheetIndexFolderOwnsEntries.classFullName);\r\n\r\n expect(folder2?.parent?.id).equals(folder1Id);\r\n });\r\n });\r\n });\r\n\r\n describe(\"SheetReferences\", () => {\r\n it(\"Should not insert SheetReferences with the same name\", () => {\r\n withEditTxn(iModel, (txn) => {\r\n const subjectId = iModel.elements.getRootSubject().id;\r\n const modelId = SheetIndexModel.insert(txn, subjectId, \"TestSheetIndexModel\");\r\n expect(Id64.isValidId64(modelId)).to.be.true;\r\n const sheetIndex = SheetIndex.insert(txn, modelId, \"TestSheetIndex\");\r\n expect(Id64.isValidId64(sheetIndex)).to.be.true;\r\n\r\n const sheetRef1 = SheetReference.insert(txn, { sheetIndexModelId: modelId, parentId: sheetIndex, name: \"TestSheetRef\", priority: 1 });\r\n expect(Id64.isValidId64(sheetRef1)).to.be.true;\r\n\r\n const failInsert = () => SheetReference.insert(txn, { sheetIndexModelId: modelId, parentId: sheetIndex, name: \"TestSheetRef\", priority: 0 });\r\n\r\n expect(failInsert).throws();\r\n });\r\n });\r\n\r\n it(\"Should insert SheetReferences without a Sheet\", () => {\r\n withEditTxn(iModel, (txn) => {\r\n const subjectId = iModel.elements.getRootSubject().id;\r\n const modelId = SheetIndexModel.insert(txn, subjectId, \"TestSheetIndexModel\");\r\n expect(Id64.isValidId64(modelId)).to.be.true;\r\n const sheetIndex = SheetIndex.insert(txn, modelId, \"TestSheetIndex\");\r\n expect(Id64.isValidId64(sheetIndex)).to.be.true;\r\n\r\n const sheetRef = SheetReference.insert(txn, { sheetIndexModelId: modelId, parentId: sheetIndex, name: \"TestSheetRef\", priority: 1 });\r\n expect(Id64.isValidId64(sheetRef)).to.be.true;\r\n });\r\n });\r\n\r\n it(\"Should insert and with a Sheet\", () => {\r\n withEditTxn(iModel, (txn) => {\r\n const sheetId = insertSheet(txn, \"sheet-1\");\r\n const subjectId = iModel.elements.getRootSubject().id;\r\n const modelId = SheetIndexModel.insert(txn, subjectId, \"TestSheetIndexModel\");\r\n expect(Id64.isValidId64(modelId)).to.be.true;\r\n const sheetIndex = SheetIndex.insert(txn, modelId, \"TestSheetIndex\");\r\n expect(Id64.isValidId64(sheetIndex)).to.be.true;\r\n\r\n const sheetRefId = SheetReference.insert(txn, { sheetIndexModelId: modelId, parentId: sheetIndex, name: \"TestSheetRef\", priority: 1, sheetId });\r\n expect(Id64.isValidId64(sheetRefId)).to.be.true;\r\n\r\n const ref = iModel.elements.tryGetElement<SheetReference>(sheetRefId);\r\n expect(ref).to.not.be.undefined;\r\n\r\n const relationship = iModel.relationships.tryGetInstanceProps(SheetReferenceRefersToSheet.classFullName, { sourceId: sheetRefId, targetId: sheetId });\r\n expect(relationship).to.not.be.undefined;\r\n expect(relationship?.classFullName).equals(SheetReferenceRefersToSheet.classFullName);\r\n\r\n expect(ref?.sheet?.id).equals(sheetId);\r\n });\r\n });\r\n\r\n it(\"supports deprecated SheetReference.insert overload when implicit writes are allowed\", () => {\r\n const previousEnforcement = EditTxn.implicitWriteEnforcement;\r\n EditTxn.implicitWriteEnforcement = \"allow\";\r\n\r\n try {\r\n withEditTxn(iModel, (txn) => {\r\n const sheetId = insertSheet(txn, \"legacy-sheet\");\r\n const subjectId = iModel.elements.getRootSubject().id;\r\n const modelId = SheetIndexModel.insert(txn, subjectId, \"LegacySheetRefModel\");\r\n const sheetIndex = SheetIndex.insert(txn, modelId, \"LegacySheetIndex\");\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-deprecated\r\n const sheetRefId = SheetReference.insert({\r\n iModelDb: iModel,\r\n sheetIndexModelId: modelId,\r\n parentId: sheetIndex,\r\n name: \"LegacySheetRef\",\r\n priority: 1,\r\n sheetId,\r\n });\r\n\r\n expect(Id64.isValidId64(sheetRefId)).to.be.true;\r\n const ref = iModel.elements.tryGetElement<SheetReference>(sheetRefId);\r\n expect(ref?.sheet?.id).to.equal(sheetId);\r\n });\r\n } finally {\r\n EditTxn.implicitWriteEnforcement = previousEnforcement;\r\n }\r\n });\r\n\r\n it(\"rejects deprecated SheetReference.insert overload when implicit writes are disallowed\", () => {\r\n const previousEnforcement = EditTxn.implicitWriteEnforcement;\r\n EditTxn.implicitWriteEnforcement = \"throw\";\r\n\r\n try {\r\n withEditTxn(iModel, (txn) => {\r\n const sheetId = insertSheet(txn, \"legacy-throw-sheet\");\r\n const subjectId = iModel.elements.getRootSubject().id;\r\n const modelId = SheetIndexModel.insert(txn, subjectId, \"LegacyThrowSheetRefModel\");\r\n const sheetIndex = SheetIndex.insert(txn, modelId, \"LegacyThrowSheetIndex\");\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-deprecated\r\n expect(() => SheetReference.insert({\r\n iModelDb: iModel,\r\n sheetIndexModelId: modelId,\r\n parentId: sheetIndex,\r\n name: \"LegacyThrowSheetRef\",\r\n priority: 1,\r\n sheetId,\r\n })).to.throw().that.satisfies((error: unknown) => EditTxnError.isError(error, \"implicit-txn-write-disallowed\"));\r\n });\r\n } finally {\r\n EditTxn.implicitWriteEnforcement = previousEnforcement;\r\n }\r\n });\r\n\r\n it.skip(\"Should not insert with the same Sheet twice\", () => {\r\n withEditTxn(iModel, (txn) => {\r\n const sheetId = insertSheet(txn, \"sheet-1\");\r\n const subjectId = iModel.elements.getRootSubject().id;\r\n const modelId = SheetIndexModel.insert(txn, subjectId, \"TestSheetIndexModel\");\r\n expect(Id64.isValidId64(modelId)).to.be.true;\r\n const sheetIndex = SheetIndex.insert(txn, modelId, \"TestSheetIndex\");\r\n\r\n SheetReference.insert(txn, { sheetIndexModelId: modelId, parentId: sheetIndex, name: \"TestSheetRef-1\", priority: 1, sheetId });\r\n\r\n const sameIndex = () => SheetReference.insert(txn, { sheetIndexModelId: modelId, parentId: sheetIndex, name: \"TestSheetRef-2\", priority: 2, sheetId });\r\n\r\n expect(sameIndex).throws();\r\n });\r\n });\r\n });\r\n\r\n describe(\"SheetIndexReferences\", () => {\r\n it(\"Should not insert SheetIndexReferences with the same name\", () => {\r\n withEditTxn(iModel, (txn) => {\r\n const subjectId = iModel.elements.getRootSubject().id;\r\n const modelId = SheetIndexModel.insert(txn, subjectId, \"TestSheetIndexModel\");\r\n expect(Id64.isValidId64(modelId)).to.be.true;\r\n const sheetIndex = SheetIndex.insert(txn, modelId, \"TestSheetIndex\");\r\n expect(Id64.isValidId64(sheetIndex)).to.be.true;\r\n\r\n const sheetIndexRef = SheetIndexReference.insert(txn, { sheetIndexModelId: modelId, parentId: sheetIndex, name: \"TestSheetIndexRef\", priority: 1 });\r\n expect(Id64.isValidId64(sheetIndexRef)).to.be.true;\r\n\r\n const failInsert = () => SheetIndexReference.insert(txn, { sheetIndexModelId: modelId, parentId: sheetIndex, name: \"TestSheetIndexRef\", priority: 0 });\r\n\r\n expect(failInsert).throws();\r\n });\r\n });\r\n\r\n it(\"Should insert SheetIndexReferences without a SheetIndexRef\", () => {\r\n withEditTxn(iModel, (txn) => {\r\n const subjectId = iModel.elements.getRootSubject().id;\r\n const modelId = SheetIndexModel.insert(txn, subjectId, \"TestSheetIndexModel\");\r\n expect(Id64.isValidId64(modelId)).to.be.true;\r\n const sheetIndex1Id = SheetIndex.insert(txn, modelId, \"TestSheetIndex\");\r\n expect(Id64.isValidId64(sheetIndex1Id)).to.be.true;\r\n\r\n const sheetRef = SheetIndexReference.insert(txn, { sheetIndexModelId: modelId, parentId: sheetIndex1Id, name: \"TestSheetIndexRef\", priority: 1 });\r\n expect(Id64.isValidId64(sheetRef)).to.be.true;\r\n });\r\n });\r\n\r\n it(\"Should insert and with a SheetIndexRef\", () => {\r\n withEditTxn(iModel, (txn) => {\r\n const subjectId = iModel.elements.getRootSubject().id;\r\n const modelId = SheetIndexModel.insert(txn, subjectId, \"TestSheetIndexModel\");\r\n expect(Id64.isValidId64(modelId)).to.be.true;\r\n const sheetIndex1Id = SheetIndex.insert(txn, modelId, \"TestSheetIndex-1\");\r\n expect(Id64.isValidId64(sheetIndex1Id)).to.be.true;\r\n const sheetIndex2Id = SheetIndex.insert(txn, modelId, \"TestSheetIndex-2\");\r\n expect(Id64.isValidId64(sheetIndex1Id)).to.be.true;\r\n\r\n const sheetIndexRefId = SheetIndexReference.insert(txn, { sheetIndexModelId: modelId, parentId: sheetIndex1Id, name: \"TestSheetRef\", priority: 1, sheetIndexId: sheetIndex2Id });\r\n expect(Id64.isValidId64(sheetIndexRefId)).to.be.true;\r\n\r\n const ref = iModel.elements.tryGetElement<SheetIndexReference>(sheetIndexRefId);\r\n expect(ref).to.not.be.undefined;\r\n\r\n const relationship = iModel.relationships.tryGetInstanceProps(SheetIndexReferenceRefersToSheetIndex.classFullName, { sourceId: sheetIndexRefId, targetId: sheetIndex2Id });\r\n expect(relationship).to.not.be.undefined;\r\n expect(relationship?.classFullName).equals(SheetIndexReferenceRefersToSheetIndex.classFullName);\r\n\r\n expect(ref?.sheetIndex?.id).equals(sheetIndex2Id);\r\n });\r\n });\r\n });\r\n});\r\n\r\n\r\n\r\n\r\n"]}
1
+ {"version":3,"file":"SheetIndex.test.js","sourceRoot":"","sources":["../../../../src/test/sheetindex/SheetIndex.test.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n * See LICENSE.md in the project root for license terms and full copyright notice.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\nimport { Id64, Id64String } from \"@itwin/core-bentley\";\r\nimport { BisCodeSpec, CodeScopeSpec, CodeSpec, EditTxnError, SheetProps } from \"@itwin/core-common\";\r\nimport { EditTxn, withEditTxn } from \"../../EditTxn\";\r\n\r\nimport { SnapshotDb } from \"../../IModelDb\";\r\nimport { ExtensiveTestScenario, IModelTestUtils } from \"../IModelTestUtils\";\r\nimport { DocumentPartition, Sheet } from \"../../Element\";\r\nimport { expect } from \"chai\";\r\nimport { DocumentListModel, SheetIndexModel, SheetModel } from \"../../Model\";\r\nimport { ElementOwnsChildElements, SheetIndexFolderOwnsEntries, SheetIndexOwnsEntries, SheetIndexReferenceRefersToSheetIndex, SheetReferenceRefersToSheet } from \"../../NavigationRelationship\";\r\nimport { SheetIndex, SheetIndexFolder, SheetIndexReference, SheetReference } from \"../../SheetIndex\";\r\n\r\nconst getOrCreateDocumentList = (txn: EditTxn): Id64String => {\r\n const documentListName = \"SheetList\";\r\n const ids = txn.iModel.queryEntityIds({ from: DocumentPartition.classFullName, where: `CodeValue = '${documentListName}'` });\r\n if (ids.size === 1)\r\n return ids.values().next().value!;\r\n\r\n const subjectId = txn.iModel.elements.getRootSubject().id;\r\n return DocumentListModel.insert(txn, subjectId, documentListName);\r\n};\r\n\r\nconst insertSheet = (txn: EditTxn, sheetName: string): Id64String => {\r\n const modelId = getOrCreateDocumentList(txn);\r\n const sheetElementProps: SheetProps = {\r\n height: 42,\r\n width: 42,\r\n scale: 42,\r\n classFullName: Sheet.classFullName,\r\n code: Sheet.createCode(txn.iModel, modelId, sheetName),\r\n model: modelId,\r\n };\r\n const sheetElementId = txn.insertElement(sheetElementProps);\r\n return txn.insertModel({\r\n classFullName: SheetModel.classFullName,\r\n modeledElement: { id: sheetElementId, relClassName: \"BisCore:ModelModelsElement\" },\r\n });\r\n};\r\n\r\nconst insertCodeSpec = (txn: EditTxn) => {\r\n const indexSpec = CodeSpec.create(txn.iModel, BisCodeSpec.sheetIndex, CodeScopeSpec.Type.Model);\r\n txn.iModel.codeSpecs.insert(txn, indexSpec);\r\n\r\n const entrySpec = CodeSpec.create(txn.iModel, BisCodeSpec.sheetIndexEntry, CodeScopeSpec.Type.ParentElement);\r\n txn.iModel.codeSpecs.insert(txn, entrySpec);\r\n};\r\n\r\ndescribe(\"SheetIndex\", () => {\r\n let iModel: SnapshotDb;\r\n\r\n beforeEach(async () => {\r\n const iModelFile: string = IModelTestUtils.prepareOutputFile(\"IModel\", \"TestSheetIndex.bim\");\r\n\r\n const iModelDb = SnapshotDb.createEmpty(iModelFile, { rootSubject: { name: \"SheetIndex\" } });\r\n await ExtensiveTestScenario.prepareDb(iModelDb);\r\n await ExtensiveTestScenario.populateDb(iModelDb);\r\n iModel = iModelDb;\r\n\r\n withEditTxn(iModel, (txn) => insertCodeSpec(txn));\r\n });\r\n\r\n afterEach(() => {\r\n iModel.close();\r\n });\r\n\r\n it(\"SheetIndexModel Should insert\", () => {\r\n withEditTxn(iModel, (txn) => {\r\n const subjectId = iModel.elements.getRootSubject().id;\r\n const modelId = SheetIndexModel.insert(txn, subjectId, \"testSheetIndex\");\r\n expect(Id64.isValidId64(modelId)).to.be.true;\r\n });\r\n });\r\n\r\n it(\"SheetIndex Should insert\", () => {\r\n withEditTxn(iModel, (txn) => {\r\n const subjectId = iModel.elements.getRootSubject().id;\r\n const modelId = SheetIndexModel.insert(txn, subjectId, \"TestSheetIndexModel\");\r\n expect(Id64.isValidId64(modelId)).to.be.true;\r\n\r\n const sheetIndex = SheetIndex.insert(txn, modelId, \"TestSheetIndex\");\r\n expect(Id64.isValidId64(sheetIndex)).to.be.true;\r\n });\r\n });\r\n\r\n describe(\"Update\", () => {\r\n it(\"Priority\", () => {\r\n withEditTxn(iModel, (txn) => {\r\n const subjectId = iModel.elements.getRootSubject().id;\r\n const modelId = SheetIndexModel.insert(txn, subjectId, \"TestSheetIndexModel\");\r\n expect(Id64.isValidId64(modelId)).to.be.true;\r\n\r\n const sheetIndex1Id = SheetIndex.insert(txn, modelId, \"TestSheetIndex\");\r\n expect(Id64.isValidId64(sheetIndex1Id)).to.be.true;\r\n\r\n const folderId = SheetIndexFolder.insert(txn, { sheetIndexModelId: modelId, parentId: sheetIndex1Id, name: \"TestFolder\", priority: 1 });\r\n expect(Id64.isValidId64(folderId)).to.be.true;\r\n\r\n const folder = iModel.elements.tryGetElement<SheetIndexFolder>(folderId);\r\n expect(folder).to.not.be.undefined;\r\n expect(folder?.entryPriority).equals(1);\r\n\r\n folder!.entryPriority = 0;\r\n folder!.update(txn);\r\n\r\n const folderPostUpdate = iModel.elements.tryGetElement<SheetIndexFolder>(folderId);\r\n expect(folderPostUpdate?.entryPriority).equals(0);\r\n });\r\n });\r\n\r\n it(\"Parent\", () => {\r\n withEditTxn(iModel, (txn) => {\r\n const subjectId = iModel.elements.getRootSubject().id;\r\n const modelId = SheetIndexModel.insert(txn, subjectId, \"TestSheetIndexModel\");\r\n expect(Id64.isValidId64(modelId)).to.be.true;\r\n\r\n const sheetIndex1Id = SheetIndex.insert(txn, modelId, \"TestSheetIndex-1\");\r\n expect(Id64.isValidId64(sheetIndex1Id)).to.be.true;\r\n\r\n const sheetIndex2Id = SheetIndex.insert(txn, modelId, \"TestSheetIndex-2\");\r\n expect(Id64.isValidId64(sheetIndex2Id)).to.be.true;\r\n\r\n const folderId = SheetIndexFolder.insert(txn, { sheetIndexModelId: modelId, parentId: sheetIndex1Id, name: \"TestFolder\", priority: 1 });\r\n expect(Id64.isValidId64(folderId)).to.be.true;\r\n\r\n const folder = iModel.elements.tryGetElement<SheetIndexFolder>(folderId);\r\n expect(folder).to.not.be.undefined;\r\n\r\n const parentRel11 = iModel.relationships.tryGetInstanceProps(ElementOwnsChildElements.classFullName, { sourceId: sheetIndex1Id, targetId: folderId });\r\n expect(parentRel11).to.not.be.undefined;\r\n\r\n folder!.parent = new SheetIndexOwnsEntries(sheetIndex2Id);\r\n folder!.update(txn);\r\n\r\n const parentRel12 = iModel.relationships.tryGetInstanceProps(ElementOwnsChildElements.classFullName, { sourceId: sheetIndex1Id, targetId: folderId });\r\n expect(parentRel12).to.be.undefined;\r\n\r\n const parentRel22 = iModel.relationships.tryGetInstanceProps(ElementOwnsChildElements.classFullName, { sourceId: sheetIndex2Id, targetId: folderId });\r\n expect(parentRel22).to.not.be.undefined;\r\n });\r\n });\r\n\r\n it(\"Sheet Reference\", () => {\r\n withEditTxn(iModel, (txn) => {\r\n const sheet1Id = insertSheet(txn, \"sheet-1\");\r\n const sheet2Id = insertSheet(txn, \"sheet-2\");\r\n const subjectId = iModel.elements.getRootSubject().id;\r\n const modelId = SheetIndexModel.insert(txn, subjectId, \"TestSheetIndexModel\");\r\n expect(Id64.isValidId64(modelId)).to.be.true;\r\n\r\n const sheetIndexId = SheetIndex.insert(txn, modelId, \"TestSheetIndex\");\r\n expect(Id64.isValidId64(sheetIndexId)).to.be.true;\r\n\r\n const sheetRefId = SheetReference.insert(txn, { sheetIndexModelId: modelId, parentId: sheetIndexId, name: \"TestSheetReference\", priority: 1 });\r\n expect(Id64.isValidId64(sheetRefId)).to.be.true;\r\n\r\n const sheetRef = iModel.elements.tryGetElement<SheetReference>(sheetRefId);\r\n expect(sheetRef).to.not.be.undefined;\r\n expect(sheetRef!.sheet).to.be.undefined;\r\n\r\n sheetRef!.sheet = new SheetReferenceRefersToSheet(sheet1Id);\r\n sheetRef!.update(txn);\r\n\r\n const refersRel11 = iModel.relationships.tryGetInstanceProps(SheetReferenceRefersToSheet.classFullName, { sourceId: sheetRefId, targetId: sheet1Id });\r\n expect(refersRel11).to.not.be.undefined;\r\n\r\n const parentRel12 = iModel.relationships.tryGetInstanceProps(SheetReferenceRefersToSheet.classFullName, { sourceId: sheetRefId, targetId: sheet2Id });\r\n expect(parentRel12).to.be.undefined;\r\n\r\n sheetRef!.sheet = new SheetReferenceRefersToSheet(sheet2Id);\r\n sheetRef!.update(txn);\r\n\r\n const refersRel21 = iModel.relationships.tryGetInstanceProps(SheetReferenceRefersToSheet.classFullName, { sourceId: sheetRefId, targetId: sheet1Id });\r\n expect(refersRel21).to.be.undefined;\r\n\r\n const parentRel22 = iModel.relationships.tryGetInstanceProps(SheetReferenceRefersToSheet.classFullName, { sourceId: sheetRefId, targetId: sheet2Id });\r\n expect(parentRel22).to.not.be.undefined;\r\n });\r\n });\r\n\r\n it(\"Sheet Index Reference\", () => {\r\n withEditTxn(iModel, (txn) => {\r\n const subjectId = iModel.elements.getRootSubject().id;\r\n const modelId = SheetIndexModel.insert(txn, subjectId, \"TestSheetIndexModel\");\r\n expect(Id64.isValidId64(modelId)).to.be.true;\r\n\r\n const sheetIndex1Id = SheetIndex.insert(txn, modelId, \"TestSheetIndex-1\");\r\n expect(Id64.isValidId64(sheetIndex1Id)).to.be.true;\r\n\r\n const sheetIndex2Id = SheetIndex.insert(txn, modelId, \"TestSheetIndex-2\");\r\n expect(Id64.isValidId64(sheetIndex2Id)).to.be.true;\r\n const sheetIndex3Id = SheetIndex.insert(txn, modelId, \"TestSheetIndex-3\");\r\n expect(Id64.isValidId64(sheetIndex3Id)).to.be.true;\r\n\r\n const sheetIndexRefId = SheetIndexReference.insert(txn, { sheetIndexModelId: modelId, parentId: sheetIndex1Id, name: \"TestSheetReference\", priority: 1 });\r\n expect(Id64.isValidId64(sheetIndexRefId)).to.be.true;\r\n\r\n const sheetIndexRef = iModel.elements.tryGetElement<SheetIndexReference>(sheetIndexRefId);\r\n expect(sheetIndexRef).to.not.be.undefined;\r\n expect(sheetIndexRef!.sheetIndex).to.be.undefined;\r\n\r\n sheetIndexRef!.sheetIndex = new SheetIndexReferenceRefersToSheetIndex(sheetIndex2Id);\r\n sheetIndexRef!.update(txn);\r\n\r\n const parentRel11 = iModel.relationships.tryGetInstanceProps(SheetIndexReferenceRefersToSheetIndex.classFullName, { sourceId: sheetIndexRefId, targetId: sheetIndex2Id });\r\n expect(parentRel11).to.not.be.undefined;\r\n\r\n sheetIndexRef!.sheetIndex = new SheetIndexReferenceRefersToSheetIndex(sheetIndex3Id);\r\n sheetIndexRef!.update(txn);\r\n\r\n const refersRel21 = iModel.relationships.tryGetInstanceProps(SheetIndexReferenceRefersToSheetIndex.classFullName, { sourceId: sheetIndexRefId, targetId: sheetIndex2Id });\r\n expect(refersRel21).to.be.undefined;\r\n\r\n const parentRel22 = iModel.relationships.tryGetInstanceProps(SheetIndexReferenceRefersToSheetIndex.classFullName, { sourceId: sheetIndexRefId, targetId: sheetIndex3Id });\r\n expect(parentRel22).to.not.be.undefined;\r\n });\r\n });\r\n });\r\n\r\n describe(\"SheetIndexFolder\", () => {\r\n it(\"Should insert\", () => {\r\n withEditTxn(iModel, (txn) => {\r\n const subjectId = iModel.elements.getRootSubject().id;\r\n const modelId = SheetIndexModel.insert(txn, subjectId, \"TestSheetIndexModel\");\r\n expect(Id64.isValidId64(modelId)).to.be.true;\r\n const sheetIndexId = SheetIndex.insert(txn, modelId, \"TestSheetIndex\");\r\n expect(Id64.isValidId64(sheetIndexId)).to.be.true;\r\n\r\n const folderId = SheetIndexFolder.insert(txn, { sheetIndexModelId: modelId, parentId: sheetIndexId, name: \"TestFolder-1\", priority: 1 });\r\n expect(Id64.isValidId64(folderId)).to.be.true;\r\n\r\n const folder = iModel.elements.tryGetElement<SheetIndexFolder>(folderId);\r\n expect(folder).to.not.be.undefined;\r\n\r\n const relationship = iModel.relationships.tryGetInstanceProps(ElementOwnsChildElements.classFullName, { sourceId: sheetIndexId, targetId: folderId });\r\n expect(relationship).to.not.be.undefined;\r\n expect(relationship?.classFullName).equals(SheetIndexOwnsEntries.classFullName);\r\n\r\n expect(folder?.parent?.id).equals(sheetIndexId);\r\n });\r\n });\r\n\r\n it(\"Should not insert SheetIndexFolder with the same name\", () => {\r\n withEditTxn(iModel, (txn) => {\r\n const subjectId = iModel.elements.getRootSubject().id;\r\n const modelId = SheetIndexModel.insert(txn, subjectId, \"TestSheetIndexModel\");\r\n expect(Id64.isValidId64(modelId)).to.be.true;\r\n const sheetIndex = SheetIndex.insert(txn, modelId, \"TestSheetIndex\");\r\n expect(Id64.isValidId64(sheetIndex)).to.be.true;\r\n\r\n const folder = SheetIndexFolder.insert(txn, { sheetIndexModelId: modelId, parentId: sheetIndex, name: \"TestFolder\", priority: 1 });\r\n expect(Id64.isValidId64(folder)).to.be.true;\r\n\r\n const failInsert = () => SheetIndexFolder.insert(txn, { sheetIndexModelId: modelId, parentId: sheetIndex, name: \"TestFolder\", priority: 0 });\r\n\r\n expect(failInsert).throws();\r\n });\r\n });\r\n\r\n it(\"Should have children\", () => {\r\n withEditTxn(iModel, (txn) => {\r\n const subjectId = iModel.elements.getRootSubject().id;\r\n const modelId = SheetIndexModel.insert(txn, subjectId, \"TestSheetIndexModel\");\r\n expect(Id64.isValidId64(modelId)).to.be.true;\r\n const sheetIndexId = SheetIndex.insert(txn, modelId, \"TestSheetIndex\");\r\n expect(Id64.isValidId64(sheetIndexId)).to.be.true;\r\n\r\n const folder1Id = SheetIndexFolder.insert(txn, { sheetIndexModelId: modelId, parentId: sheetIndexId, name: \"TestFolder-1\", priority: 1 });\r\n expect(Id64.isValidId64(folder1Id)).to.be.true;\r\n\r\n const folder2Id = SheetIndexFolder.insert(txn, { sheetIndexModelId: modelId, parentId: folder1Id, name: \"TestFolder-2\", priority: 1 });\r\n expect(Id64.isValidId64(folder2Id)).to.be.true;\r\n const folder2 = iModel.elements.tryGetElement<SheetIndexFolder>(folder2Id);\r\n expect(folder2).to.not.be.undefined;\r\n\r\n const relationship = iModel.relationships.tryGetInstanceProps(ElementOwnsChildElements.classFullName, { sourceId: folder1Id, targetId: folder2Id });\r\n expect(relationship).to.not.be.undefined;\r\n expect(relationship?.classFullName).equals(SheetIndexFolderOwnsEntries.classFullName);\r\n\r\n expect(folder2?.parent?.id).equals(folder1Id);\r\n });\r\n });\r\n });\r\n\r\n describe(\"SheetReferences\", () => {\r\n it(\"Should not insert SheetReferences with the same name\", () => {\r\n withEditTxn(iModel, (txn) => {\r\n const subjectId = iModel.elements.getRootSubject().id;\r\n const modelId = SheetIndexModel.insert(txn, subjectId, \"TestSheetIndexModel\");\r\n expect(Id64.isValidId64(modelId)).to.be.true;\r\n const sheetIndex = SheetIndex.insert(txn, modelId, \"TestSheetIndex\");\r\n expect(Id64.isValidId64(sheetIndex)).to.be.true;\r\n\r\n const sheetRef1 = SheetReference.insert(txn, { sheetIndexModelId: modelId, parentId: sheetIndex, name: \"TestSheetRef\", priority: 1 });\r\n expect(Id64.isValidId64(sheetRef1)).to.be.true;\r\n\r\n const failInsert = () => SheetReference.insert(txn, { sheetIndexModelId: modelId, parentId: sheetIndex, name: \"TestSheetRef\", priority: 0 });\r\n\r\n expect(failInsert).throws();\r\n });\r\n });\r\n\r\n it(\"Should insert SheetReferences without a Sheet\", () => {\r\n withEditTxn(iModel, (txn) => {\r\n const subjectId = iModel.elements.getRootSubject().id;\r\n const modelId = SheetIndexModel.insert(txn, subjectId, \"TestSheetIndexModel\");\r\n expect(Id64.isValidId64(modelId)).to.be.true;\r\n const sheetIndex = SheetIndex.insert(txn, modelId, \"TestSheetIndex\");\r\n expect(Id64.isValidId64(sheetIndex)).to.be.true;\r\n\r\n const sheetRef = SheetReference.insert(txn, { sheetIndexModelId: modelId, parentId: sheetIndex, name: \"TestSheetRef\", priority: 1 });\r\n expect(Id64.isValidId64(sheetRef)).to.be.true;\r\n });\r\n });\r\n\r\n it(\"Should insert and with a Sheet\", () => {\r\n withEditTxn(iModel, (txn) => {\r\n const sheetId = insertSheet(txn, \"sheet-1\");\r\n const subjectId = iModel.elements.getRootSubject().id;\r\n const modelId = SheetIndexModel.insert(txn, subjectId, \"TestSheetIndexModel\");\r\n expect(Id64.isValidId64(modelId)).to.be.true;\r\n const sheetIndex = SheetIndex.insert(txn, modelId, \"TestSheetIndex\");\r\n expect(Id64.isValidId64(sheetIndex)).to.be.true;\r\n\r\n const sheetRefId = SheetReference.insert(txn, { sheetIndexModelId: modelId, parentId: sheetIndex, name: \"TestSheetRef\", priority: 1, sheetId });\r\n expect(Id64.isValidId64(sheetRefId)).to.be.true;\r\n\r\n const ref = iModel.elements.tryGetElement<SheetReference>(sheetRefId);\r\n expect(ref).to.not.be.undefined;\r\n\r\n const relationship = iModel.relationships.tryGetInstanceProps(SheetReferenceRefersToSheet.classFullName, { sourceId: sheetRefId, targetId: sheetId });\r\n expect(relationship).to.not.be.undefined;\r\n expect(relationship?.classFullName).equals(SheetReferenceRefersToSheet.classFullName);\r\n\r\n expect(ref?.sheet?.id).equals(sheetId);\r\n });\r\n });\r\n\r\n it(\"supports deprecated SheetReference.insert overload when implicit writes are allowed\", () => {\r\n const previousEnforcement = EditTxn.implicitWriteEnforcement;\r\n EditTxn.implicitWriteEnforcement = \"allow\";\r\n\r\n try {\r\n withEditTxn(iModel, (txn) => {\r\n const sheetId = insertSheet(txn, \"legacy-sheet\");\r\n const subjectId = iModel.elements.getRootSubject().id;\r\n const modelId = SheetIndexModel.insert(txn, subjectId, \"LegacySheetRefModel\");\r\n const sheetIndex = SheetIndex.insert(txn, modelId, \"LegacySheetIndex\");\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-deprecated\r\n const sheetRefId = SheetReference.insert({\r\n iModelDb: iModel,\r\n sheetIndexModelId: modelId,\r\n parentId: sheetIndex,\r\n name: \"LegacySheetRef\",\r\n priority: 1,\r\n sheetId,\r\n });\r\n\r\n expect(Id64.isValidId64(sheetRefId)).to.be.true;\r\n const ref = iModel.elements.tryGetElement<SheetReference>(sheetRefId);\r\n expect(ref?.sheet?.id).to.equal(sheetId);\r\n });\r\n } finally {\r\n EditTxn.implicitWriteEnforcement = previousEnforcement;\r\n }\r\n });\r\n\r\n it(\"rejects deprecated SheetReference.insert overload when implicit writes are disallowed\", () => {\r\n const previousEnforcement = EditTxn.implicitWriteEnforcement;\r\n EditTxn.implicitWriteEnforcement = \"throw\";\r\n\r\n try {\r\n withEditTxn(iModel, (txn) => {\r\n const sheetId = insertSheet(txn, \"legacy-throw-sheet\");\r\n const subjectId = iModel.elements.getRootSubject().id;\r\n const modelId = SheetIndexModel.insert(txn, subjectId, \"LegacyThrowSheetRefModel\");\r\n const sheetIndex = SheetIndex.insert(txn, modelId, \"LegacyThrowSheetIndex\");\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-deprecated\r\n expect(() => SheetReference.insert({\r\n iModelDb: iModel,\r\n sheetIndexModelId: modelId,\r\n parentId: sheetIndex,\r\n name: \"LegacyThrowSheetRef\",\r\n priority: 1,\r\n sheetId,\r\n })).to.throw().that.satisfies((error: unknown) => EditTxnError.isError(error, \"implicit-txn-write-disallowed\"));\r\n });\r\n } finally {\r\n EditTxn.implicitWriteEnforcement = previousEnforcement;\r\n }\r\n });\r\n\r\n it.skip(\"Should not insert with the same Sheet twice\", () => {\r\n withEditTxn(iModel, (txn) => {\r\n const sheetId = insertSheet(txn, \"sheet-1\");\r\n const subjectId = iModel.elements.getRootSubject().id;\r\n const modelId = SheetIndexModel.insert(txn, subjectId, \"TestSheetIndexModel\");\r\n expect(Id64.isValidId64(modelId)).to.be.true;\r\n const sheetIndex = SheetIndex.insert(txn, modelId, \"TestSheetIndex\");\r\n\r\n SheetReference.insert(txn, { sheetIndexModelId: modelId, parentId: sheetIndex, name: \"TestSheetRef-1\", priority: 1, sheetId });\r\n\r\n const sameIndex = () => SheetReference.insert(txn, { sheetIndexModelId: modelId, parentId: sheetIndex, name: \"TestSheetRef-2\", priority: 2, sheetId });\r\n\r\n expect(sameIndex).throws();\r\n });\r\n });\r\n });\r\n\r\n describe(\"SheetIndexReferences\", () => {\r\n it(\"Should not insert SheetIndexReferences with the same name\", () => {\r\n withEditTxn(iModel, (txn) => {\r\n const subjectId = iModel.elements.getRootSubject().id;\r\n const modelId = SheetIndexModel.insert(txn, subjectId, \"TestSheetIndexModel\");\r\n expect(Id64.isValidId64(modelId)).to.be.true;\r\n const sheetIndex = SheetIndex.insert(txn, modelId, \"TestSheetIndex\");\r\n expect(Id64.isValidId64(sheetIndex)).to.be.true;\r\n\r\n const sheetIndexRef = SheetIndexReference.insert(txn, { sheetIndexModelId: modelId, parentId: sheetIndex, name: \"TestSheetIndexRef\", priority: 1 });\r\n expect(Id64.isValidId64(sheetIndexRef)).to.be.true;\r\n\r\n const failInsert = () => SheetIndexReference.insert(txn, { sheetIndexModelId: modelId, parentId: sheetIndex, name: \"TestSheetIndexRef\", priority: 0 });\r\n\r\n expect(failInsert).throws();\r\n });\r\n });\r\n\r\n it(\"Should insert SheetIndexReferences without a SheetIndexRef\", () => {\r\n withEditTxn(iModel, (txn) => {\r\n const subjectId = iModel.elements.getRootSubject().id;\r\n const modelId = SheetIndexModel.insert(txn, subjectId, \"TestSheetIndexModel\");\r\n expect(Id64.isValidId64(modelId)).to.be.true;\r\n const sheetIndex1Id = SheetIndex.insert(txn, modelId, \"TestSheetIndex\");\r\n expect(Id64.isValidId64(sheetIndex1Id)).to.be.true;\r\n\r\n const sheetRef = SheetIndexReference.insert(txn, { sheetIndexModelId: modelId, parentId: sheetIndex1Id, name: \"TestSheetIndexRef\", priority: 1 });\r\n expect(Id64.isValidId64(sheetRef)).to.be.true;\r\n });\r\n });\r\n\r\n it(\"Should insert and with a SheetIndexRef\", () => {\r\n withEditTxn(iModel, (txn) => {\r\n const subjectId = iModel.elements.getRootSubject().id;\r\n const modelId = SheetIndexModel.insert(txn, subjectId, \"TestSheetIndexModel\");\r\n expect(Id64.isValidId64(modelId)).to.be.true;\r\n const sheetIndex1Id = SheetIndex.insert(txn, modelId, \"TestSheetIndex-1\");\r\n expect(Id64.isValidId64(sheetIndex1Id)).to.be.true;\r\n const sheetIndex2Id = SheetIndex.insert(txn, modelId, \"TestSheetIndex-2\");\r\n expect(Id64.isValidId64(sheetIndex1Id)).to.be.true;\r\n\r\n const sheetIndexRefId = SheetIndexReference.insert(txn, { sheetIndexModelId: modelId, parentId: sheetIndex1Id, name: \"TestSheetRef\", priority: 1, sheetIndexId: sheetIndex2Id });\r\n expect(Id64.isValidId64(sheetIndexRefId)).to.be.true;\r\n\r\n const ref = iModel.elements.tryGetElement<SheetIndexReference>(sheetIndexRefId);\r\n expect(ref).to.not.be.undefined;\r\n\r\n const relationship = iModel.relationships.tryGetInstanceProps(SheetIndexReferenceRefersToSheetIndex.classFullName, { sourceId: sheetIndexRefId, targetId: sheetIndex2Id });\r\n expect(relationship).to.not.be.undefined;\r\n expect(relationship?.classFullName).equals(SheetIndexReferenceRefersToSheetIndex.classFullName);\r\n\r\n expect(ref?.sheetIndex?.id).equals(sheetIndex2Id);\r\n });\r\n });\r\n });\r\n});\r\n\r\n\r\n\r\n\r\n"]}