@itwin/core-backend 5.1.1 → 5.1.3-experimental.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 (357) hide show
  1. package/CHANGELOG.md +11 -1
  2. package/lib/cjs/BackendHubAccess.js.map +1 -1
  3. package/lib/cjs/BackendLoggerCategory.js.map +1 -1
  4. package/lib/cjs/BisCoreSchema.js.map +1 -1
  5. package/lib/cjs/BlobContainerService.js.map +1 -1
  6. package/lib/cjs/BriefcaseManager.d.ts.map +1 -1
  7. package/lib/cjs/BriefcaseManager.js +19 -5
  8. package/lib/cjs/BriefcaseManager.js.map +1 -1
  9. package/lib/cjs/CatalogDb.js.map +1 -1
  10. package/lib/cjs/Category.js.map +1 -1
  11. package/lib/cjs/ChangeSummaryManager.js.map +1 -1
  12. package/lib/cjs/ChangedElementsDb.js.map +1 -1
  13. package/lib/cjs/ChangesetECAdaptor.js.map +1 -1
  14. package/lib/cjs/ChannelControl.js.map +1 -1
  15. package/lib/cjs/CheckpointManager.js.map +1 -1
  16. package/lib/cjs/ClassRegistry.js.map +1 -1
  17. package/lib/cjs/CloudSqlite.js.map +1 -1
  18. package/lib/cjs/CodeService.js.map +1 -1
  19. package/lib/cjs/CodeSpecs.js.map +1 -1
  20. package/lib/cjs/ConcurrentQuery.js.map +1 -1
  21. package/lib/cjs/CustomViewState3dCreator.js.map +1 -1
  22. package/lib/cjs/DevTools.js.map +1 -1
  23. package/lib/cjs/DisplayStyle.js.map +1 -1
  24. package/lib/cjs/ECDb.js.map +1 -1
  25. package/lib/cjs/ECSchemaXmlContext.js.map +1 -1
  26. package/lib/cjs/ECSqlStatement.js.map +1 -1
  27. package/lib/cjs/Element.js.map +1 -1
  28. package/lib/cjs/ElementAspect.js.map +1 -1
  29. package/lib/cjs/ElementGraphics.js.map +1 -1
  30. package/lib/cjs/ElementTreeWalker.js.map +1 -1
  31. package/lib/cjs/Entity.js.map +1 -1
  32. package/lib/cjs/EntityReferences.js.map +1 -1
  33. package/lib/cjs/ExportGraphics.js.map +1 -1
  34. package/lib/cjs/ExternalSource.js.map +1 -1
  35. package/lib/cjs/FontFile.js.map +1 -1
  36. package/lib/cjs/GeoCoordConfig.js.map +1 -1
  37. package/lib/cjs/GeographicCRSServices.js.map +1 -1
  38. package/lib/cjs/GeometrySummary.js.map +1 -1
  39. package/lib/cjs/IModelDb.d.ts +22 -2
  40. package/lib/cjs/IModelDb.d.ts.map +1 -1
  41. package/lib/cjs/IModelDb.js +23 -3
  42. package/lib/cjs/IModelDb.js.map +1 -1
  43. package/lib/cjs/IModelDbFonts.js.map +1 -1
  44. package/lib/cjs/IModelElementCloneContext.js.map +1 -1
  45. package/lib/cjs/IModelHost.js.map +1 -1
  46. package/lib/cjs/IModelIncrementalSchemaLocater.js.map +1 -1
  47. package/lib/cjs/IModelJsFs.js.map +1 -1
  48. package/lib/cjs/ImageSourceConversion.js.map +1 -1
  49. package/lib/cjs/IpcHost.js.map +1 -1
  50. package/lib/cjs/LineStyle.js.map +1 -1
  51. package/lib/cjs/LocalHub.js.map +1 -1
  52. package/lib/cjs/LocalhostIpcHost.js.map +1 -1
  53. package/lib/cjs/LockControl.js.map +1 -1
  54. package/lib/cjs/Material.js.map +1 -1
  55. package/lib/cjs/Model.js.map +1 -1
  56. package/lib/cjs/NativeAppStorage.js.map +1 -1
  57. package/lib/cjs/NativeHost.js.map +1 -1
  58. package/lib/cjs/NavigationRelationship.js.map +1 -1
  59. package/lib/cjs/PromiseMemoizer.js.map +1 -1
  60. package/lib/cjs/PropertyStore.js.map +1 -1
  61. package/lib/cjs/Relationship.js.map +1 -1
  62. package/lib/cjs/RpcBackend.js.map +1 -1
  63. package/lib/cjs/SQLiteDb.js.map +1 -1
  64. package/lib/cjs/Schema.js.map +1 -1
  65. package/lib/cjs/SchemaSync.js.map +1 -1
  66. package/lib/cjs/SchemaUtils.js.map +1 -1
  67. package/lib/cjs/SheetIndex.js.map +1 -1
  68. package/lib/cjs/SqliteChangesetReader.js.map +1 -1
  69. package/lib/cjs/SqliteStatement.js.map +1 -1
  70. package/lib/cjs/Texture.js.map +1 -1
  71. package/lib/cjs/TileStorage.js.map +1 -1
  72. package/lib/cjs/TxnManager.d.ts +57 -10
  73. package/lib/cjs/TxnManager.d.ts.map +1 -1
  74. package/lib/cjs/TxnManager.js +76 -13
  75. package/lib/cjs/TxnManager.js.map +1 -1
  76. package/lib/cjs/ViewDefinition.js.map +1 -1
  77. package/lib/cjs/ViewStateHydrator.js.map +1 -1
  78. package/lib/cjs/ViewStore.js.map +1 -1
  79. package/lib/cjs/annotations/ElementDrivesTextAnnotation.js.map +1 -1
  80. package/lib/cjs/annotations/FrameGeometry.js.map +1 -1
  81. package/lib/cjs/annotations/LeaderGeometry.js.map +1 -1
  82. package/lib/cjs/annotations/TextAnnotationElement.js.map +1 -1
  83. package/lib/cjs/annotations/TextAnnotationGeometry.js.map +1 -1
  84. package/lib/cjs/annotations/TextBlockGeometry.js.map +1 -1
  85. package/lib/cjs/annotations/TextBlockLayout.js.map +1 -1
  86. package/lib/cjs/core-backend.js.map +1 -1
  87. package/lib/cjs/domains/FunctionalElements.js.map +1 -1
  88. package/lib/cjs/domains/FunctionalSchema.js.map +1 -1
  89. package/lib/cjs/domains/GenericElements.js.map +1 -1
  90. package/lib/cjs/domains/GenericSchema.js.map +1 -1
  91. package/lib/cjs/internal/ChangesetConflictArgs.js.map +1 -1
  92. package/lib/cjs/internal/ChannelAdmin.js +1 -1
  93. package/lib/cjs/internal/ChannelAdmin.js.map +1 -1
  94. package/lib/cjs/internal/ElementLRUCache.js.map +1 -1
  95. package/lib/cjs/internal/FontFileImpl.js.map +1 -1
  96. package/lib/cjs/internal/HubMock.js.map +1 -1
  97. package/lib/cjs/internal/IModelDbFontsImpl.js.map +1 -1
  98. package/lib/cjs/internal/NativePlatform.js.map +1 -1
  99. package/lib/cjs/internal/NoLocks.js.map +1 -1
  100. package/lib/cjs/internal/ServerBasedLocks.js.map +1 -1
  101. package/lib/cjs/internal/Symbols.js.map +1 -1
  102. package/lib/cjs/internal/annotations/fields.js.map +1 -1
  103. package/lib/cjs/internal/cross-package.js.map +1 -1
  104. package/lib/cjs/internal/workspace/SettingsImpl.js.map +1 -1
  105. package/lib/cjs/internal/workspace/SettingsSchemasImpl.js.map +1 -1
  106. package/lib/cjs/internal/workspace/WorkspaceImpl.js.map +1 -1
  107. package/lib/cjs/internal/workspace/WorkspaceSqliteDb.js.map +1 -1
  108. package/lib/cjs/rpc/multipart.js.map +1 -1
  109. package/lib/cjs/rpc/tracing.js.map +1 -1
  110. package/lib/cjs/rpc/web/logging.js.map +1 -1
  111. package/lib/cjs/rpc/web/request.js.map +1 -1
  112. package/lib/cjs/rpc/web/response.js.map +1 -1
  113. package/lib/cjs/rpc-impl/DevToolsRpcImpl.js.map +1 -1
  114. package/lib/cjs/rpc-impl/IModelReadRpcImpl.js.map +1 -1
  115. package/lib/cjs/rpc-impl/IModelTileRpcImpl.js.map +1 -1
  116. package/lib/cjs/rpc-impl/RpcBriefcaseUtility.js.map +1 -1
  117. package/lib/cjs/rpc-impl/SnapshotIModelRpcImpl.js.map +1 -1
  118. package/lib/cjs/workspace/Settings.js.map +1 -1
  119. package/lib/cjs/workspace/SettingsSchemas.js.map +1 -1
  120. package/lib/cjs/workspace/Workspace.js.map +1 -1
  121. package/lib/cjs/workspace/WorkspaceEditor.js.map +1 -1
  122. package/lib/esm/BackendHubAccess.js.map +1 -1
  123. package/lib/esm/BackendLoggerCategory.js.map +1 -1
  124. package/lib/esm/BisCoreSchema.js.map +1 -1
  125. package/lib/esm/BlobContainerService.js.map +1 -1
  126. package/lib/esm/BriefcaseManager.d.ts.map +1 -1
  127. package/lib/esm/BriefcaseManager.js +20 -6
  128. package/lib/esm/BriefcaseManager.js.map +1 -1
  129. package/lib/esm/CatalogDb.js.map +1 -1
  130. package/lib/esm/Category.js.map +1 -1
  131. package/lib/esm/ChangeSummaryManager.js.map +1 -1
  132. package/lib/esm/ChangedElementsDb.js.map +1 -1
  133. package/lib/esm/ChangesetECAdaptor.js.map +1 -1
  134. package/lib/esm/ChannelControl.js.map +1 -1
  135. package/lib/esm/CheckpointManager.js.map +1 -1
  136. package/lib/esm/ClassRegistry.js.map +1 -1
  137. package/lib/esm/CloudSqlite.js.map +1 -1
  138. package/lib/esm/CodeService.js.map +1 -1
  139. package/lib/esm/CodeSpecs.js.map +1 -1
  140. package/lib/esm/ConcurrentQuery.js.map +1 -1
  141. package/lib/esm/CustomViewState3dCreator.js.map +1 -1
  142. package/lib/esm/DevTools.js.map +1 -1
  143. package/lib/esm/DisplayStyle.js.map +1 -1
  144. package/lib/esm/ECDb.js.map +1 -1
  145. package/lib/esm/ECSchemaXmlContext.js.map +1 -1
  146. package/lib/esm/ECSqlStatement.js.map +1 -1
  147. package/lib/esm/Element.js.map +1 -1
  148. package/lib/esm/ElementAspect.js.map +1 -1
  149. package/lib/esm/ElementGraphics.js.map +1 -1
  150. package/lib/esm/ElementTreeWalker.js.map +1 -1
  151. package/lib/esm/Entity.js.map +1 -1
  152. package/lib/esm/EntityReferences.js.map +1 -1
  153. package/lib/esm/ExportGraphics.js.map +1 -1
  154. package/lib/esm/ExternalSource.js.map +1 -1
  155. package/lib/esm/FontFile.js.map +1 -1
  156. package/lib/esm/GeoCoordConfig.js.map +1 -1
  157. package/lib/esm/GeographicCRSServices.js.map +1 -1
  158. package/lib/esm/GeometrySummary.js.map +1 -1
  159. package/lib/esm/IModelDb.d.ts +22 -2
  160. package/lib/esm/IModelDb.d.ts.map +1 -1
  161. package/lib/esm/IModelDb.js +23 -3
  162. package/lib/esm/IModelDb.js.map +1 -1
  163. package/lib/esm/IModelDbFonts.js.map +1 -1
  164. package/lib/esm/IModelElementCloneContext.js.map +1 -1
  165. package/lib/esm/IModelHost.js.map +1 -1
  166. package/lib/esm/IModelIncrementalSchemaLocater.js.map +1 -1
  167. package/lib/esm/IModelJsFs.js.map +1 -1
  168. package/lib/esm/ImageSourceConversion.js.map +1 -1
  169. package/lib/esm/IpcHost.js.map +1 -1
  170. package/lib/esm/LineStyle.js.map +1 -1
  171. package/lib/esm/LocalHub.js.map +1 -1
  172. package/lib/esm/LocalhostIpcHost.js.map +1 -1
  173. package/lib/esm/LockControl.js.map +1 -1
  174. package/lib/esm/Material.js.map +1 -1
  175. package/lib/esm/Model.js.map +1 -1
  176. package/lib/esm/NativeAppStorage.js.map +1 -1
  177. package/lib/esm/NativeHost.js.map +1 -1
  178. package/lib/esm/NavigationRelationship.js.map +1 -1
  179. package/lib/esm/PromiseMemoizer.js.map +1 -1
  180. package/lib/esm/PropertyStore.js.map +1 -1
  181. package/lib/esm/Relationship.js.map +1 -1
  182. package/lib/esm/RpcBackend.js.map +1 -1
  183. package/lib/esm/SQLiteDb.js.map +1 -1
  184. package/lib/esm/Schema.js.map +1 -1
  185. package/lib/esm/SchemaSync.js.map +1 -1
  186. package/lib/esm/SchemaUtils.js.map +1 -1
  187. package/lib/esm/SheetIndex.js.map +1 -1
  188. package/lib/esm/SqliteChangesetReader.js.map +1 -1
  189. package/lib/esm/SqliteStatement.js.map +1 -1
  190. package/lib/esm/Texture.js.map +1 -1
  191. package/lib/esm/TileStorage.js.map +1 -1
  192. package/lib/esm/TxnManager.d.ts +57 -10
  193. package/lib/esm/TxnManager.d.ts.map +1 -1
  194. package/lib/esm/TxnManager.js +77 -14
  195. package/lib/esm/TxnManager.js.map +1 -1
  196. package/lib/esm/ViewDefinition.js.map +1 -1
  197. package/lib/esm/ViewStateHydrator.js.map +1 -1
  198. package/lib/esm/ViewStore.js.map +1 -1
  199. package/lib/esm/annotations/ElementDrivesTextAnnotation.js.map +1 -1
  200. package/lib/esm/annotations/FrameGeometry.js.map +1 -1
  201. package/lib/esm/annotations/LeaderGeometry.js.map +1 -1
  202. package/lib/esm/annotations/TextAnnotationElement.js.map +1 -1
  203. package/lib/esm/annotations/TextAnnotationGeometry.js.map +1 -1
  204. package/lib/esm/annotations/TextBlockGeometry.js.map +1 -1
  205. package/lib/esm/annotations/TextBlockLayout.js.map +1 -1
  206. package/lib/esm/core-backend.js.map +1 -1
  207. package/lib/esm/domains/FunctionalElements.js.map +1 -1
  208. package/lib/esm/domains/FunctionalSchema.js.map +1 -1
  209. package/lib/esm/domains/GenericElements.js.map +1 -1
  210. package/lib/esm/domains/GenericSchema.js.map +1 -1
  211. package/lib/esm/internal/ChangesetConflictArgs.js.map +1 -1
  212. package/lib/esm/internal/ChannelAdmin.js +1 -1
  213. package/lib/esm/internal/ChannelAdmin.js.map +1 -1
  214. package/lib/esm/internal/ElementLRUCache.js.map +1 -1
  215. package/lib/esm/internal/FontFileImpl.js.map +1 -1
  216. package/lib/esm/internal/HubMock.js.map +1 -1
  217. package/lib/esm/internal/IModelDbFontsImpl.js.map +1 -1
  218. package/lib/esm/internal/NativePlatform.js.map +1 -1
  219. package/lib/esm/internal/NoLocks.js.map +1 -1
  220. package/lib/esm/internal/ServerBasedLocks.js.map +1 -1
  221. package/lib/esm/internal/Symbols.js.map +1 -1
  222. package/lib/esm/internal/annotations/fields.js.map +1 -1
  223. package/lib/esm/internal/cross-package.js.map +1 -1
  224. package/lib/esm/internal/workspace/SettingsImpl.js.map +1 -1
  225. package/lib/esm/internal/workspace/SettingsSchemasImpl.js.map +1 -1
  226. package/lib/esm/internal/workspace/WorkspaceImpl.js.map +1 -1
  227. package/lib/esm/internal/workspace/WorkspaceSqliteDb.js.map +1 -1
  228. package/lib/esm/rpc/multipart.js.map +1 -1
  229. package/lib/esm/rpc/tracing.js.map +1 -1
  230. package/lib/esm/rpc/web/logging.js.map +1 -1
  231. package/lib/esm/rpc/web/request.js.map +1 -1
  232. package/lib/esm/rpc/web/response.js.map +1 -1
  233. package/lib/esm/rpc-impl/DevToolsRpcImpl.js.map +1 -1
  234. package/lib/esm/rpc-impl/IModelReadRpcImpl.js.map +1 -1
  235. package/lib/esm/rpc-impl/IModelTileRpcImpl.js.map +1 -1
  236. package/lib/esm/rpc-impl/RpcBriefcaseUtility.js.map +1 -1
  237. package/lib/esm/rpc-impl/SnapshotIModelRpcImpl.js.map +1 -1
  238. package/lib/esm/test/AdvancedEqual.js.map +1 -1
  239. package/lib/esm/test/AnnotationTestUtils.js.map +1 -1
  240. package/lib/esm/test/AttachDb.test.js.map +1 -1
  241. package/lib/esm/test/ElementLRUCache.test.js.map +1 -1
  242. package/lib/esm/test/GeometryTestUtil.js.map +1 -1
  243. package/lib/esm/test/IModelHost.test.js.map +1 -1
  244. package/lib/esm/test/IModelTestUtils.js.map +1 -1
  245. package/lib/esm/test/ImageSourceConversion.test.js.map +1 -1
  246. package/lib/esm/test/IpcHost.test.js.map +1 -1
  247. package/lib/esm/test/KnownTestLocations.js.map +1 -1
  248. package/lib/esm/test/PrintElementTree.js.map +1 -1
  249. package/lib/esm/test/PropertyDb.test.js.map +1 -1
  250. package/lib/esm/test/RevisionUtility.js.map +1 -1
  251. package/lib/esm/test/SchemaUtils.test.js.map +1 -1
  252. package/lib/esm/test/SequentialLogMatcher.js.map +1 -1
  253. package/lib/esm/test/TestChangeSetUtility.js.map +1 -1
  254. package/lib/esm/test/TestUtils.js.map +1 -1
  255. package/lib/esm/test/annotations/Fields.test.js.map +1 -1
  256. package/lib/esm/test/annotations/FrameGeometry.test.js.map +1 -1
  257. package/lib/esm/test/annotations/LeaderGeometry.test.js.map +1 -1
  258. package/lib/esm/test/annotations/TextAnnotation.test.js.map +1 -1
  259. package/lib/esm/test/annotations/TextBlock.test.js.map +1 -1
  260. package/lib/esm/test/assets/IncrementalSchemaLocater/configs/old.config.js.map +1 -1
  261. package/lib/esm/test/assets/IncrementalSchemaLocater/configs/simple.config.js.map +1 -1
  262. package/lib/esm/test/categories/Category.test.js.map +1 -1
  263. package/lib/esm/test/codespec/CodeSpec.test.js.map +1 -1
  264. package/lib/esm/test/ecdb/CTE.test.js.map +1 -1
  265. package/lib/esm/test/ecdb/ConcurrentQuery.test.js.map +1 -1
  266. package/lib/esm/test/ecdb/ConcurrentQueryLoad.test.js.map +1 -1
  267. package/lib/esm/test/ecdb/ECDb.test.js.map +1 -1
  268. package/lib/esm/test/ecdb/ECDbTestHelper.js.map +1 -1
  269. package/lib/esm/test/ecdb/ECSchemaXmlContext.test.js.map +1 -1
  270. package/lib/esm/test/ecdb/ECSqlAst.test.js.map +1 -1
  271. package/lib/esm/test/ecdb/ECSqlQuery.test.js.map +1 -1
  272. package/lib/esm/test/ecdb/ECSqlReader.test.js.map +1 -1
  273. package/lib/esm/test/ecdb/ECSqlStatement.test.js.map +1 -1
  274. package/lib/esm/test/ecdb/SqliteStatement.test.js.map +1 -1
  275. package/lib/esm/test/ecsql/dataset/ECSqlDatasets.js.map +1 -1
  276. package/lib/esm/test/ecsql/src/ECSqlTestGenerator.js.map +1 -1
  277. package/lib/esm/test/ecsql/src/ECSqlTestParser.js.map +1 -1
  278. package/lib/esm/test/ecsql/src/ECSqlTestRunner.test.js.map +1 -1
  279. package/lib/esm/test/element/DeleteDefinitionElements.test.js.map +1 -1
  280. package/lib/esm/test/element/ElementAspect.test.js.map +1 -1
  281. package/lib/esm/test/element/ElementDependencyGraph.test.js.map +1 -1
  282. package/lib/esm/test/element/ElementRoundTrip.test.js.map +1 -1
  283. package/lib/esm/test/element/ExcludedElements.test.js.map +1 -1
  284. package/lib/esm/test/element/ExternalSource.test.js.map +1 -1
  285. package/lib/esm/test/element/NullStructArray.test.js.map +1 -1
  286. package/lib/esm/test/element/UrlLink.test.js.map +1 -1
  287. package/lib/esm/test/font/FontFile.test.js.map +1 -1
  288. package/lib/esm/test/font/IModelDbFonts.test.js.map +1 -1
  289. package/lib/esm/test/hubaccess/ApplyChangeset.test.js.map +1 -1
  290. package/lib/esm/test/hubaccess/BriefcaseManager.test.js.map +1 -1
  291. package/lib/esm/test/hubaccess/CheckpointManager.test.js.map +1 -1
  292. package/lib/esm/test/hubaccess/Rebase.test.d.ts +2 -0
  293. package/lib/esm/test/hubaccess/Rebase.test.d.ts.map +1 -0
  294. package/lib/esm/test/hubaccess/Rebase.test.js +172 -0
  295. package/lib/esm/test/hubaccess/Rebase.test.js.map +1 -0
  296. package/lib/esm/test/imageData.js.map +1 -1
  297. package/lib/esm/test/imodel/ElementTreeWalker.test.js.map +1 -1
  298. package/lib/esm/test/imodel/GetTextureImage.test.js.map +1 -1
  299. package/lib/esm/test/imodel/IModel.test.js.map +1 -1
  300. package/lib/esm/test/imodel/ProjectExtents.test.js.map +1 -1
  301. package/lib/esm/test/imodel/SchemaXmlImport.test.js.map +1 -1
  302. package/lib/esm/test/incrementalSchemaLocater/ECSqlQueries.test.js.map +1 -1
  303. package/lib/esm/test/incrementalSchemaLocater/IncrementalLoading.test.js.map +1 -1
  304. package/lib/esm/test/incrementalSchemaLocater/utils/IModelSchemaLocater.js.map +1 -1
  305. package/lib/esm/test/incrementalSchemaLocater/utils/IncrementalTestHelper.js.map +1 -1
  306. package/lib/esm/test/incrementalSchemaLocater/utils/TestSqlSchemaLocater.js.map +1 -1
  307. package/lib/esm/test/index.js.map +1 -1
  308. package/lib/esm/test/misc/DevTools.test.js.map +1 -1
  309. package/lib/esm/test/misc/EntitySubClasses.test.js.map +1 -1
  310. package/lib/esm/test/misc/GeoServices.test.js.map +1 -1
  311. package/lib/esm/test/misc/PromiseMemoizer.test.js.map +1 -1
  312. package/lib/esm/test/native/DgnDbWorker.test.js.map +1 -1
  313. package/lib/esm/test/rpc/response.test.js.map +1 -1
  314. package/lib/esm/test/schema/ClassRegistry.test.js.map +1 -1
  315. package/lib/esm/test/schema/FunctionalDomain.test.js.map +1 -1
  316. package/lib/esm/test/schema/GenericDomain.test.js.map +1 -1
  317. package/lib/esm/test/schema/IModelSchemaContext.test.js.map +1 -1
  318. package/lib/esm/test/sheetindex/SheetIndex.test.js.map +1 -1
  319. package/lib/esm/test/standalone/ChangeMerge.test.js +10 -10
  320. package/lib/esm/test/standalone/ChangeMerge.test.js.map +1 -1
  321. package/lib/esm/test/standalone/ChangesetReader.test.js.map +1 -1
  322. package/lib/esm/test/standalone/CustomViewState3dCreator.test.js.map +1 -1
  323. package/lib/esm/test/standalone/DisplayStyle.test.js.map +1 -1
  324. package/lib/esm/test/standalone/Drawing.test.js.map +1 -1
  325. package/lib/esm/test/standalone/ElementGraphics.test.js.map +1 -1
  326. package/lib/esm/test/standalone/ElementMesh.test.js.map +1 -1
  327. package/lib/esm/test/standalone/ExportGraphics.test.js.map +1 -1
  328. package/lib/esm/test/standalone/GeometryChangeEvents.test.js.map +1 -1
  329. package/lib/esm/test/standalone/GeometryStream.test.js.map +1 -1
  330. package/lib/esm/test/standalone/HubMock.test.js.map +1 -1
  331. package/lib/esm/test/standalone/IModelLimits.test.js.map +1 -1
  332. package/lib/esm/test/standalone/IModelWrite.test.js.map +1 -1
  333. package/lib/esm/test/standalone/InlineGeometryPartReferences.test.js.map +1 -1
  334. package/lib/esm/test/standalone/MergeConflict.test.js.map +1 -1
  335. package/lib/esm/test/standalone/NativeAppStorage.test.js.map +1 -1
  336. package/lib/esm/test/standalone/RenderMaterialElement.test.js.map +1 -1
  337. package/lib/esm/test/standalone/RenderTimeline.test.js.map +1 -1
  338. package/lib/esm/test/standalone/SQLiteDb.test.js.map +1 -1
  339. package/lib/esm/test/standalone/SchemaUtils.test.js.map +1 -1
  340. package/lib/esm/test/standalone/SectionDrawing.test.js.map +1 -1
  341. package/lib/esm/test/standalone/ServerBasedLocks.test.js.map +1 -1
  342. package/lib/esm/test/standalone/Setting.test.js.map +1 -1
  343. package/lib/esm/test/standalone/Settings.test.js.map +1 -1
  344. package/lib/esm/test/standalone/SettingsSchemas.test.js.map +1 -1
  345. package/lib/esm/test/standalone/SnapshotDb.test.js.map +1 -1
  346. package/lib/esm/test/standalone/Texture.test.js.map +1 -1
  347. package/lib/esm/test/standalone/TileCache.test.js.map +1 -1
  348. package/lib/esm/test/standalone/TileTree.test.js.map +1 -1
  349. package/lib/esm/test/standalone/TxnManager.test.js.map +1 -1
  350. package/lib/esm/test/standalone/ViewDefinition.test.js.map +1 -1
  351. package/lib/esm/test/standalone/ViewStoreDb.test.js.map +1 -1
  352. package/lib/esm/test/standalone/Workspace.test.js.map +1 -1
  353. package/lib/esm/workspace/Settings.js.map +1 -1
  354. package/lib/esm/workspace/SettingsSchemas.js.map +1 -1
  355. package/lib/esm/workspace/Workspace.js.map +1 -1
  356. package/lib/esm/workspace/WorkspaceEditor.js.map +1 -1
  357. package/package.json +13 -13
@@ -1 +1 @@
1
- {"version":3,"file":"ClassRegistry.test.js","sourceRoot":"","sources":["../../../../src/test/schema/ClassRegistry.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\nimport { assert, expect } from \"chai\";\r\nimport * as sinon from \"sinon\";\r\nimport * as path from \"path\";\r\nimport {\r\n BisCodeSpec, Code, ConcreteEntityTypes, DefinitionElementProps, ECJsNames, ElementAspectProps, ElementProps, EntityReferenceSet, ModelProps,\r\n PropertyMetaData,\r\n RelatedElement, RelatedElementProps, RelationshipProps, SchemaState,\r\n} from \"@itwin/core-common\";\r\nimport {\r\n DefinitionElement, DefinitionModel, ElementRefersToElements, Entity, EntityReferences, IModelDb, IModelJsFs, Model, RepositoryLink,\r\n Schema, SnapshotDb, SpatialViewDefinition, StandaloneDb, UrlLink, ViewDefinition3d,\r\n} from \"../../core-backend\";\r\nimport { IModelTestUtils } from \"../IModelTestUtils\";\r\nimport { KnownTestLocations } from \"../KnownTestLocations\";\r\nimport { Element } from \"../../Element\";\r\nimport { Schemas } from \"../../Schema\";\r\nimport { ClassRegistry } from \"../../ClassRegistry\";\r\nimport { OpenMode } from \"@itwin/core-bentley\";\r\nimport { EntityClass, NavigationProperty, PrimitiveProperty, SchemaItemKey, SchemaKey } from \"@itwin/ecschema-metadata\";\r\n\r\ndescribe(\"Class Registry\", () => {\r\n let imodel: SnapshotDb;\r\n\r\n before(() => {\r\n const seedFileName = IModelTestUtils.resolveAssetFile(\"test.bim\");\r\n const testFileName = IModelTestUtils.prepareOutputFile(\"ClassRegistry\", \"ClassRegistryTest.bim\");\r\n imodel = IModelTestUtils.createSnapshotFromSeed(testFileName, seedFileName);\r\n assert.exists(imodel);\r\n });\r\n\r\n after(() => {\r\n imodel?.close();\r\n });\r\n\r\n it(\"should verify the Entity metadata of known element subclasses\", async () => {\r\n const code1 = new Code({ spec: \"0x10\", scope: \"0x11\", value: \"RF1.dgn\" });\r\n const el = imodel.elements.getElement(code1);\r\n assert.exists(el);\r\n if (el) {\r\n const metaData = await el.getMetaData();\r\n assert.exists(metaData);\r\n\r\n assert.equal(metaData.fullName, el.classFullName.replace(\":\", \".\"));\r\n // I happen to know that this is a BisCore:RepositoryLink\r\n assert.equal(metaData.fullName, RepositoryLink.classFullName.replace(\":\", \".\"));\r\n // Check the metadata on the class itself\r\n assert.isDefined(metaData.baseClass);\r\n assert.equal(metaData.baseClass?.fullName, UrlLink.classFullName.replace(\":\", \".\"));\r\n assert.isTrue(metaData.customAttributes?.has(\"BisCore.ClassHasHandler\"));\r\n // Check the metadata on the one property that RepositoryLink defines, RepositoryGuid\r\n const repositoryGuidProperty = await metaData.getProperty(\"repositoryGuid\") as PrimitiveProperty;\r\n assert.isDefined(repositoryGuidProperty);\r\n assert.equal(repositoryGuidProperty.extendedTypeName, \"BeGuid\");\r\n assert.isTrue(repositoryGuidProperty.customAttributes?.has(\"CoreCustomAttributes.HiddenProperty\"));\r\n }\r\n const el2 = imodel.elements.getElement(\"0x34\");\r\n assert.exists(el2);\r\n if (el2) {\r\n const metaData = await el2.getMetaData();\r\n assert.exists(metaData);\r\n\r\n assert.equal(metaData.fullName, el2.classFullName.replace(\":\", \".\"));\r\n // I happen to know that this is a BisCore.SpatialViewDefinition\r\n assert.equal(metaData.fullName, SpatialViewDefinition.classFullName.replace(\":\", \".\"));\r\n assert.isDefined(metaData.baseClass);\r\n assert.equal(metaData.baseClass?.fullName, ViewDefinition3d.classFullName.replace(\":\", \".\"));\r\n const modelSelectorProperty = await metaData.getProperty(\"modelSelector\") as NavigationProperty;\r\n assert.isDefined(modelSelectorProperty);\r\n assert.equal(modelSelectorProperty.relationshipClass.fullName, \"BisCore.SpatialViewDefinitionUsesModelSelector\");\r\n }\r\n });\r\n\r\n it(\"should verify Entity metadata with both base class and mixin properties\", async () => {\r\n const schemaPathname = path.join(KnownTestLocations.assetsDir, \"TestDomain.ecschema.xml\");\r\n await imodel.importSchemas([schemaPathname]); // will throw an exception if import fails\r\n\r\n const testDomainClass = await imodel.schemaContext.getSchemaItem(\"TestDomain\", \"TestDomainClass\", EntityClass);\r\n assert.isDefined(testDomainClass);\r\n\r\n assert.isDefined(testDomainClass?.baseClass);\r\n assert.equal(testDomainClass?.baseClass?.fullName, DefinitionElement.classFullName.replace(\":\", \".\"));\r\n\r\n assert.isDefined(testDomainClass?.mixins);\r\n assert.equal(testDomainClass?.mixins.length, 1);\r\n assert.equal(testDomainClass?.mixins[0].fullName, \"TestDomain.IMixin\");\r\n\r\n // Verify that the forEach method which is called when constructing an entity\r\n // is picking up all expected properties.\r\n const testData: string[] = [];\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-deprecated\r\n IModelDb.forEachMetaData(imodel, \"TestDomain:TestDomainClass\", true, (propName: string, _property: PropertyMetaData) => {\r\n testData.push(ECJsNames.toJsName(propName));\r\n }, false);\r\n\r\n const expectedString = testData.find((testString: string) => {\r\n return testString === \"testMixinProperty\";\r\n });\r\n\r\n assert.isDefined(expectedString);\r\n });\r\n});\r\n\r\ndescribe(\"Class Registry - getRootMetaData\", () => {\r\n let imodel: StandaloneDb;\r\n\r\n before(async () => {\r\n const seedFileName = IModelTestUtils.resolveAssetFile(\"test.bim\");\r\n const testFileName = IModelTestUtils.prepareOutputFile(\"ClassRegistry\", \"GetRootMetaData.bim\");\r\n IModelJsFs.copySync(seedFileName, testFileName);\r\n\r\n const schemaState: SchemaState = StandaloneDb.validateSchemas(testFileName, true);\r\n assert.strictEqual(schemaState, SchemaState.UpgradeRecommended);\r\n StandaloneDb.upgradeStandaloneSchemas(testFileName);\r\n\r\n imodel = StandaloneDb.openFile(testFileName, OpenMode.ReadWrite);\r\n assert.exists(imodel);\r\n await imodel.importSchemaStrings([\r\n `<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n <ECSchema schemaName=\"TestSchema1\" alias=\"ts1\" version=\"01.00\" xmlns=\"http://www.bentley.com/schemas/Bentley.ECXML.3.1\">\r\n <ECSchemaReference name=\"BisCore\" version=\"01.00\" alias=\"bis\"/>\r\n <ECSchemaReference name=\"CoreCustomAttributes\" version=\"01.00.03\" alias=\"CoreCA\"/>\r\n\r\n <ECEntityClass typeName=\"TestBase\">\r\n <BaseClass>bis:PhysicalElement</BaseClass>\r\n </ECEntityClass>\r\n\r\n <ECEntityClass typeName=\"TestDerived\">\r\n <BaseClass>TestBase</BaseClass>\r\n </ECEntityClass>\r\n\r\n <ECEntityClass typeName=\"ITestMixinForAspectsBase\">\r\n <ECCustomAttributes>\r\n <IsMixin xmlns=\"CoreCustomAttributes.01.00.03\">\r\n <AppliesToEntityClass>bis:ElementUniqueAspect</AppliesToEntityClass>\r\n </IsMixin>\r\n </ECCustomAttributes>\r\n </ECEntityClass>\r\n\r\n <ECEntityClass typeName=\"ITestMixinForAspectsDerived\">\r\n <BaseClass>ITestMixinForAspectsBase</BaseClass>\r\n <ECCustomAttributes>\r\n <IsMixin xmlns=\"CoreCustomAttributes.01.00.03\">\r\n <AppliesToEntityClass>bis:ElementUniqueAspect</AppliesToEntityClass>\r\n </IsMixin>\r\n </ECCustomAttributes>\r\n </ECEntityClass>\r\n\r\n <ECEntityClass typeName=\"ITestMixinForElements\" modifier=\"Abstract\">\r\n <ECCustomAttributes>\r\n <IsMixin xmlns=\"CoreCustomAttributes.01.00.03\">\r\n <AppliesToEntityClass>bis:Element</AppliesToEntityClass>\r\n </IsMixin>\r\n </ECCustomAttributes>\r\n </ECEntityClass>\r\n\r\n <ECEntityClass typeName=\"TestMixedInAndDerived\">\r\n <BaseClass>TestBase</BaseClass>\r\n <BaseClass>ITestMixinForElements</BaseClass>\r\n </ECEntityClass>\r\n\r\n </ECSchema>\r\n `,\r\n ]); // will throw an exception if import fails\r\n });\r\n\r\n after(() => {\r\n imodel?.close();\r\n });\r\n\r\n it(\"should get the root metadata\", async () => {\r\n for (const [testClass, expectedRoot] of [\r\n [\"TestSchema1.TestBase\", \"BisCore:Element\"],\r\n [\"TestSchema1.TestDerived\", \"BisCore:Element\"],\r\n [\"TestSchema1.ITestMixinForAspectsBase\", \"BisCore:ElementAspect\"],\r\n [\"TestSchema1.ITestMixinForAspectsDerived\", \"BisCore:ElementAspect\"],\r\n [\"TestSchema1.ITestMixinForElements\", \"BisCore:Element\"],\r\n [\"TestSchema1.TestMixedInAndDerived\", \"BisCore:Element\"],\r\n ] as const) {\r\n const rootMetaData = ClassRegistry.getRootEntity(imodel, testClass);\r\n expect(rootMetaData.replace(\".\", \":\")).to.equal(expectedRoot);\r\n }\r\n });\r\n});\r\n\r\ndescribe(\"Class Registry - generated classes\", () => {\r\n let imodel: SnapshotDb;\r\n const testSchemaPath = path.join(KnownTestLocations.assetsDir, \"TestGeneratedClasses.ecschema.xml\");\r\n\r\n before(async () => {\r\n const seedFileName = IModelTestUtils.resolveAssetFile(\"test.bim\");\r\n const testFileName = IModelTestUtils.prepareOutputFile(\"ClassRegistry\", \"GeneratedClasses.bim\");\r\n imodel = IModelTestUtils.createSnapshotFromSeed(testFileName, seedFileName);\r\n assert.exists(imodel);\r\n await imodel.importSchemas([testSchemaPath]); // will throw an exception if import fails\r\n });\r\n\r\n after(() => {\r\n imodel?.close();\r\n });\r\n\r\n interface TestModelWithNavPropProps extends ModelProps {\r\n elemNavProp: RelatedElementProps;\r\n aspectNavProp: RelatedElementProps;\r\n relNavProp: RelatedElementProps;\r\n }\r\n\r\n interface TestEntityProps extends DefinitionElementProps {\r\n prop: string;\r\n }\r\n\r\n interface LinkTableRelWithNavPropProps extends RelationshipProps {\r\n elemNavProp: RelatedElementProps;\r\n modelNavProp: RelatedElementProps;\r\n aspectNavProp: RelatedElementProps;\r\n }\r\n\r\n interface TestElementWithNavPropProps extends DefinitionElementProps {\r\n navProp: RelatedElementProps;\r\n }\r\n\r\n interface DerivedWithNavPropProps extends TestElementWithNavPropProps {\r\n derivedNavProp: RelatedElementProps;\r\n }\r\n\r\n interface TestAspectWithNavProp extends ElementAspectProps {\r\n navProp: RelatedElement;\r\n }\r\n\r\n class TestGeneratedClasses extends Schema {\r\n public static override get schemaName(): string { return \"TestGeneratedClasses\"; }\r\n public static get classes() {\r\n return [TestModelWithNavProp, TestElementWithNavProp, LinkTableRelWithNavProp, DerivedWithNavProp, Derived2, Derived3, Derived4, Derived5, Derived6];\r\n }\r\n public static registerSchema() {\r\n if (this !== Schemas.getRegisteredSchema(this.schemaName)) {\r\n Schemas.unregisterSchema(this.schemaName);\r\n Schemas.registerSchema(this);\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n for (const class_ of this.classes) {\r\n ClassRegistry.register(class_, this);\r\n }\r\n }\r\n }\r\n\r\n public static unregisterSchema() {\r\n Schemas.unregisterSchema(this.schemaName);\r\n }\r\n }\r\n\r\n class TestElementWithNavProp extends DefinitionElement {\r\n public static override get className() { return \"TestElementWithNavProp\"; }\r\n public static override schema = TestGeneratedClasses;\r\n public navProp: RelatedElement;\r\n public constructor(props: TestElementWithNavPropProps, inIModel: IModelDb) {\r\n super(props, inIModel);\r\n this.navProp = new RelatedElement(props.navProp);\r\n }\r\n }\r\n\r\n class TestModelWithNavProp extends DefinitionModel {\r\n public static override get className() { return \"TestModelWithNavProp\"; }\r\n public static override schema = TestGeneratedClasses;\r\n public elemNavProp: RelatedElement;\r\n public aspectNavProp: RelatedElement;\r\n public relNavProp: RelatedElement;\r\n public constructor(props: TestModelWithNavPropProps, inIModel: IModelDb) {\r\n super(props, inIModel);\r\n this.elemNavProp = new RelatedElement(props.elemNavProp);\r\n this.aspectNavProp = new RelatedElement(props.aspectNavProp);\r\n this.relNavProp = new RelatedElement(props.relNavProp);\r\n }\r\n }\r\n\r\n class LinkTableRelWithNavProp extends ElementRefersToElements {\r\n public static override get className() { return \"LinkTableRelWithNavProp\"; }\r\n public static override schema = TestGeneratedClasses;\r\n public elemNavProp: RelatedElement;\r\n public aspectNavProp: RelatedElement;\r\n public modelNavProp: RelatedElement;\r\n public constructor(props: LinkTableRelWithNavPropProps, inIModel: IModelDb) {\r\n super(props, inIModel);\r\n this.elemNavProp = new RelatedElement(props.elemNavProp);\r\n this.aspectNavProp = new RelatedElement(props.aspectNavProp);\r\n this.modelNavProp = new RelatedElement(props.modelNavProp);\r\n }\r\n }\r\n\r\n class DerivedWithNavProp extends TestElementWithNavProp {\r\n public static override get className() { return \"DerivedWithNavProp\"; }\r\n public static override schema = TestGeneratedClasses;\r\n public derivedNavProp: RelatedElement;\r\n public constructor(props: DerivedWithNavPropProps, inIModel: IModelDb) {\r\n super(props, inIModel);\r\n this.derivedNavProp = new RelatedElement(props.derivedNavProp);\r\n }\r\n }\r\n\r\n class Derived2 extends DerivedWithNavProp {\r\n public static override get className() { return \"Derived2\"; }\r\n }\r\n class Derived3 extends Derived2 {\r\n public static override get className() { return \"Derived3\"; }\r\n }\r\n class Derived4 extends Derived3 {\r\n public static override get className() { return \"Derived4\"; }\r\n }\r\n class Derived5 extends Derived4 {\r\n public static override get className() { return \"Derived5\"; }\r\n }\r\n class Derived6 extends Derived5 {\r\n public static override get className() { return \"Derived6\"; }\r\n }\r\n\r\n class NonGeneratedElement extends DefinitionElement {\r\n public static override get className() { return \"NonGeneratedElement\"; }\r\n }\r\n\r\n it(\"Should provide correct schemas and full-names on generated classes\", async () => {\r\n await imodel.importSchemaStrings([\r\n `<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n <ECSchema schemaName=\"CustomA\" alias=\"custA\" version=\"1.0.0\"\r\n xmlns=\"http://www.bentley.com/schemas/Bentley.ECXML.3.1\">\r\n <ECSchemaReference name=\"BisCore\" version=\"01.00\" alias=\"bis\"/>\r\n <ECSchemaReference name=\"Functional\" version=\"1.00\" alias=\"func\"/>\r\n <ECEntityClass typeName=\"NonGeneratedElement\">\r\n <BaseClass>bis:DefinitionElement</BaseClass>\r\n </ECEntityClass>\r\n <ECEntityClass typeName=\"GeneratedElement\">\r\n <BaseClass>NonGeneratedElement</BaseClass>\r\n </ECEntityClass>\r\n <ECEntityClass typeName=\"ElementC\">\r\n <BaseClass>GeneratedElement</BaseClass>\r\n </ECEntityClass>\r\n </ECSchema>\r\n `,\r\n `<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n <ECSchema schemaName=\"CustomB\" alias=\"custB\" version=\"1.0.0\"\r\n xmlns=\"http://www.bentley.com/schemas/Bentley.ECXML.3.1\">\r\n <ECSchemaReference name=\"BisCore\" version=\"01.00\" alias=\"bis\"/>\r\n <ECSchemaReference name=\"Functional\" version=\"1.00\" alias=\"func\"/>\r\n <ECSchemaReference name=\"CustomA\" version=\"01.00\" alias=\"custA\"/>\r\n <ECEntityClass typeName=\"DummyElement\">\r\n <BaseClass>bis:DefinitionElement</BaseClass>\r\n </ECEntityClass>\r\n <ECEntityClass typeName=\"ErrorElement\">\r\n <BaseClass>custA:ElementC</BaseClass>\r\n </ECEntityClass>\r\n </ECSchema>\r\n `,\r\n ]);\r\n\r\n class CustomASchema extends Schema {\r\n public static override get schemaName(): string { return \"CustomA\"; }\r\n public static get classes(): typeof Entity[] {\r\n return [NonGeneratedElement];\r\n }\r\n public static registerSchema() {\r\n if (this !== Schemas.getRegisteredSchema(this.schemaName)) {\r\n Schemas.unregisterSchema(this.schemaName);\r\n Schemas.registerSchema(this);\r\n for (const ecClass of this.classes) {\r\n ClassRegistry.register(ecClass, this);\r\n }\r\n }\r\n }\r\n\r\n public static unregisterSchema() {\r\n Schemas.unregisterSchema(this.schemaName);\r\n }\r\n }\r\n\r\n CustomASchema.registerSchema();\r\n\r\n class DummyElement extends DefinitionElement {\r\n public static override get className() { return \"DummyElement\"; }\r\n }\r\n\r\n class CustomBSchema extends Schema {\r\n public static override get schemaName(): string { return \"CustomB\"; }\r\n public static get classes() {\r\n return [DummyElement];\r\n }\r\n public static registerSchema() {\r\n if (this !== Schemas.getRegisteredSchema(this.schemaName)) {\r\n Schemas.unregisterSchema(this.schemaName);\r\n Schemas.registerSchema(this);\r\n for (const ecClass of this.classes) {\r\n ClassRegistry.register(ecClass, this);\r\n }\r\n }\r\n }\r\n\r\n public static unregisterSchema() {\r\n Schemas.unregisterSchema(this.schemaName);\r\n }\r\n }\r\n\r\n CustomBSchema.registerSchema();\r\n\r\n const nonGeneratedElement = imodel.getJsClass(\"CustomA:NonGeneratedElement\");\r\n assert.equal(nonGeneratedElement.classFullName, \"CustomA:NonGeneratedElement\");\r\n const generatedElement = imodel.getJsClass(\"CustomA:GeneratedElement\");\r\n assert.equal(generatedElement.classFullName, \"CustomA:GeneratedElement\");\r\n const elementC = imodel.getJsClass(\"CustomA:ElementC\");\r\n assert.equal(elementC.classFullName, \"CustomA:ElementC\");\r\n const dummyElement = imodel.getJsClass(\"CustomB:DummyElement\");\r\n assert.equal(dummyElement.classFullName, \"CustomB:DummyElement\");\r\n\r\n //This is the class that had the wrong schema\r\n const errorElement = imodel.getJsClass(\"CustomB:ErrorElement\");\r\n assert.equal(errorElement.classFullName, \"CustomB:ErrorElement\");\r\n assert.isTrue(errorElement.schemaItemKey.matches(new SchemaItemKey(\"ErrorElement\", new SchemaKey(\"CustomB\", 1, 0, 0))));\r\n assert.equal(errorElement.className, \"ErrorElement\");\r\n assert.equal(errorElement.schema.schemaName, \"CustomB\");\r\n\r\n // Create an instance of ErrorElement\r\n const errorElementInstance = Entity.instantiate(errorElement, { classFullName: errorElement.classFullName }, imodel);\r\n assert.exists(errorElementInstance);\r\n assert.instanceOf(errorElementInstance, errorElement);\r\n assert.instanceOf(errorElementInstance, Entity);\r\n assert.equal(errorElementInstance.className, \"ErrorElement\");\r\n assert.equal(errorElementInstance.schemaName, \"CustomB\");\r\n const metadata = await errorElementInstance.getMetaData();\r\n assert.exists(metadata);\r\n assert.equal(metadata.fullName, \"CustomB.ErrorElement\");\r\n });\r\n\r\n // if a single inherited class is not generated, the entire hierarchy is considered not-generated\r\n it(\"should only generate automatic collectReferenceIds implementations for generated classes\", async () => {\r\n await imodel.importSchemas([testSchemaPath]); // will throw an exception if import fails\r\n\r\n class GeneratedTestElementWithNavProp extends imodel.getJsClass<typeof Element>(\"TestGeneratedClasses:TestElementWithNavProp\") {\r\n constructor(props: TestElementWithNavPropProps) {\r\n super(props, imodel);\r\n }\r\n }\r\n\r\n const testEntityId = imodel.elements.insertElement({\r\n classFullName: \"TestGeneratedClasses:TestEntity\",\r\n prop: \"sample-value\",\r\n model: IModelDb.dictionaryId,\r\n code: Code.createEmpty(),\r\n } as TestEntityProps);\r\n\r\n const elemWithNavProp = new GeneratedTestElementWithNavProp({\r\n classFullName: \"TestGeneratedClasses:TestElementWithNavProp\",\r\n navProp: {\r\n id: testEntityId,\r\n relClassName: \"TestGeneratedClasses:ElemRel\",\r\n },\r\n } as TestElementWithNavPropProps);\r\n\r\n // eslint-disable-next-line @typescript-eslint/dot-notation\r\n assert.isDefined(GeneratedTestElementWithNavProp.prototype[\"collectReferenceIds\"]);\r\n expect(\r\n [...elemWithNavProp.getReferenceIds()],\r\n ).to.have.members([\r\n EntityReferences.fromEntityType(elemWithNavProp.model, ConcreteEntityTypes.Model),\r\n EntityReferences.fromEntityType(elemWithNavProp.code.scope, ConcreteEntityTypes.Element),\r\n EntityReferences.fromEntityType(testEntityId, ConcreteEntityTypes.Element),\r\n ]);\r\n\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n const GeneratedTestAspectWithNavProp = imodel.getJsClass(\"TestGeneratedClasses:TestAspectWithNavProp\");\r\n assert.isTrue(GeneratedTestAspectWithNavProp.prototype.hasOwnProperty(\"collectReferenceIds\"));\r\n });\r\n\r\n it(\"should not override collectReferenceIds for BisCore schema classes\", async () => {\r\n // AnnotationFrameStyle is an example of an unregistered bis class without an implementation of collectReferenceIds\r\n assert.isTrue(imodel.getJsClass(\"BisCore:AnnotationFrameStyle\").prototype.hasOwnProperty(\"collectReferenceIds\"));\r\n });\r\n\r\n it(\"should get references from its bis superclass\", async () => {\r\n await imodel.importSchemas([testSchemaPath]); // will throw an exception if import fails\r\n\r\n class GeneratedTestElementWithNavProp extends imodel.getJsClass<typeof Element>(\"TestGeneratedClasses:TestElementWithNavProp\") {\r\n constructor(props: ElementProps) {\r\n super(props, imodel);\r\n }\r\n }\r\n\r\n const testEntityId = imodel.elements.insertElement({\r\n classFullName: \"TestGeneratedClasses:TestEntity\",\r\n prop: \"sample-value\",\r\n model: IModelDb.dictionaryId,\r\n code: Code.createEmpty(),\r\n } as TestEntityProps);\r\n\r\n const elemWithNavProp = new GeneratedTestElementWithNavProp({\r\n classFullName: \"TestGeneratedClasses:TestElementWithNavProp\",\r\n navProp: new RelatedElement({\r\n id: testEntityId,\r\n relClassName: \"TestGeneratedClasses:ElemRel\",\r\n }),\r\n model: IModelDb.dictionaryId,\r\n code: new Code({\r\n scope: IModelDb.rootSubjectId,\r\n spec: imodel.codeSpecs.getByName(BisCodeSpec.spatialCategory).id,\r\n value: \"\",\r\n }),\r\n parent: new RelatedElement({\r\n // since we don't actually insert this element in this test, using an arbitrary id string\r\n id: \"0x0000ffff\",\r\n relClassName: \"BisCore:ElementOwnsChildElements\",\r\n }),\r\n } as TestElementWithNavPropProps);\r\n\r\n // super class here is Element so we should get the code.scope, model and parent as references\r\n expect(\r\n [...elemWithNavProp.getReferenceIds()],\r\n ).to.have.members([\r\n EntityReferences.fromEntityType(elemWithNavProp.model, ConcreteEntityTypes.Model),\r\n EntityReferences.fromEntityType(elemWithNavProp.code.scope, ConcreteEntityTypes.Element),\r\n elemWithNavProp.parent && EntityReferences.fromEntityType(elemWithNavProp.parent?.id, ConcreteEntityTypes.Element),\r\n EntityReferences.fromEntityType(testEntityId, ConcreteEntityTypes.Element),\r\n ].filter((x) => x !== undefined));\r\n\r\n const modelTestEntityIds = new Array(2).fill(undefined).map((_, index) => imodel.elements.insertElement({\r\n classFullName: \"TestGeneratedClasses:TestEntity\",\r\n prop: `model-value-${index}`,\r\n model: IModelDb.dictionaryId,\r\n code: Code.createEmpty(),\r\n } as TestEntityProps));\r\n\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n const GeneratedTestAspectWithNavProp = imodel.getJsClass(\"TestGeneratedClasses:TestAspectWithNavProp\");\r\n\r\n const aspectWithNavPropId = imodel.elements.insertAspect({\r\n classFullName: GeneratedTestAspectWithNavProp.classFullName,\r\n navProp: { id: modelTestEntityIds[0], relClassName: \"TestGeneratedClasses:NonElemRel\" },\r\n element: { id: modelTestEntityIds[1] },\r\n } as TestAspectWithNavProp);\r\n\r\n class GeneratedTestModelWithNavProp extends imodel.getJsClass<typeof Model>(\"TestGeneratedClasses:TestModelWithNavProp\") {\r\n constructor(props: TestModelWithNavPropProps) {\r\n super(props, imodel);\r\n }\r\n }\r\n\r\n const modelWithNavProp = new GeneratedTestModelWithNavProp({\r\n classFullName: GeneratedTestModelWithNavProp.classFullName,\r\n modeledElement: { id: modelTestEntityIds[0] },\r\n parentModel: IModelDb.dictionaryId,\r\n elemNavProp: { id: modelTestEntityIds[1], relClassName: \"TestGeneratedClasses:ModelToElemNavRel\" },\r\n aspectNavProp: { id: aspectWithNavPropId, relClassName: \"TestGeneratedClasses:ModelToAspectNavRel\" },\r\n // removed due to a bug\r\n // relNavProp: { id: relWithNavPropId, relClassName: \"TestGeneratedClasses:ModelToRelNavRel\" },\r\n } as TestModelWithNavPropProps);\r\n\r\n const modelWithNavPropId = modelWithNavProp.insert();\r\n\r\n expect(\r\n [...modelWithNavProp.getReferenceIds()],\r\n ).to.have.members([\r\n EntityReferences.fromEntityType(modelTestEntityIds[1], ConcreteEntityTypes.Element),\r\n EntityReferences.fromEntityType(IModelDb.dictionaryId, ConcreteEntityTypes.Model),\r\n EntityReferences.fromEntityType(modelTestEntityIds[0], ConcreteEntityTypes.Element),\r\n EntityReferences.fromEntityType(aspectWithNavPropId, ConcreteEntityTypes.ElementAspect),\r\n // ignoring this one, because there seems to be a bug when specifying a relationship instance as a nav prop\r\n // EntityReferences.fromEntityType(relWithNavPropId, ConcreteEntityTypes.Relationship),\r\n ].filter((x) => x !== undefined));\r\n\r\n const relTestEntityIds = new Array(3).fill(undefined).map((_, index) => imodel.elements.insertElement({\r\n classFullName: \"TestGeneratedClasses:TestEntity\",\r\n prop: `rel-value-${index}`,\r\n model: IModelDb.dictionaryId,\r\n code: Code.createEmpty(),\r\n } as TestEntityProps));\r\n\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n const GeneratedLinkTableRelWithNavProp = imodel.getJsClass<typeof LinkTableRelWithNavProp>(\"TestGeneratedClasses:LinkTableRelWithNavProp\");\r\n\r\n const relWithNavProp = new GeneratedLinkTableRelWithNavProp({\r\n classFullName: GeneratedLinkTableRelWithNavProp.classFullName,\r\n sourceId: relTestEntityIds[0],\r\n targetId: relTestEntityIds[1],\r\n elemNavProp: {\r\n id: relTestEntityIds[2],\r\n relClassName: \"TestGeneratedClasses:LinkTableRelToElemNavRel\",\r\n },\r\n modelNavProp: {\r\n id: modelWithNavPropId,\r\n relClassName: \"TestGeneratedClasses:LinkTableRelToModelNavRel\",\r\n },\r\n aspectNavProp: {\r\n id: aspectWithNavPropId,\r\n relClassName: \"TestGeneratedClasses:LinkTableRelToAspectNavRel\",\r\n },\r\n }, imodel);\r\n\r\n const _relWithNavPropId = relWithNavProp.insert();\r\n\r\n expect(\r\n [...relWithNavProp.getReferenceIds()],\r\n ).to.have.members([\r\n ...relTestEntityIds.map((id) => EntityReferences.fromEntityType(id, ConcreteEntityTypes.Element)),\r\n EntityReferences.fromEntityType(modelWithNavPropId, ConcreteEntityTypes.Model),\r\n EntityReferences.fromEntityType(aspectWithNavPropId, ConcreteEntityTypes.ElementAspect),\r\n ]);\r\n });\r\n\r\n it(\"should not override custom registered schema class implementations of collectReferenceIds\", async () => {\r\n const testImplReferenceId = \"TEST-INVALID-ID\";\r\n class MyTestElementWithNavProp extends TestElementWithNavProp {\r\n public override collectReferenceIds(referenceIds: EntityReferenceSet) {\r\n super.collectReferenceIds(referenceIds);\r\n referenceIds.addElement(testImplReferenceId);\r\n }\r\n }\r\n class MyTestGeneratedClasses extends TestGeneratedClasses {\r\n public static override get classes() {\r\n return [MyTestElementWithNavProp, Derived2, Derived3, Derived4, Derived5, Derived6];\r\n }\r\n }\r\n imodel.jsClassMap.clear();\r\n MyTestGeneratedClasses.registerSchema();\r\n\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n const ActualTestElementWithNavProp = imodel.getJsClass<typeof MyTestElementWithNavProp>(TestElementWithNavProp.classFullName);\r\n\r\n const testElementWithNavPropCollectReferencesSpy = sinon.spy(ActualTestElementWithNavProp.prototype, \"collectReferenceIds\");\r\n\r\n class ActualDerivedWithNavProp extends imodel.getJsClass<typeof Element>(DerivedWithNavProp.classFullName) {\r\n constructor(props: DerivedWithNavPropProps) {\r\n super(props, imodel);\r\n }\r\n }\r\n\r\n const testEntity1Id = imodel.elements.insertElement({\r\n classFullName: \"TestGeneratedClasses:TestEntity\",\r\n prop: \"sample-value-1\",\r\n model: IModelDb.dictionaryId,\r\n code: Code.createEmpty(),\r\n } as TestEntityProps);\r\n\r\n const testEntity2Id = imodel.elements.insertElement({\r\n classFullName: \"TestGeneratedClasses:TestEntity\",\r\n prop: \"sample-value-2\",\r\n model: IModelDb.dictionaryId,\r\n code: Code.createEmpty(),\r\n } as TestEntityProps);\r\n\r\n const elemWithNavProp = new ActualTestElementWithNavProp({\r\n classFullName: TestElementWithNavProp.classFullName,\r\n navProp: {\r\n id: testEntity1Id,\r\n relClassName: \"TestGeneratedClasses:ElemRel\",\r\n },\r\n } as TestElementWithNavPropProps, imodel);\r\n\r\n // eslint-disable-next-line @typescript-eslint/unbound-method\r\n assert.isDefined(ActualTestElementWithNavProp.prototype.collectReferenceIds);\r\n expect(\r\n [...elemWithNavProp.getReferenceIds()],\r\n ).to.have.members([\r\n EntityReferences.fromEntityType(elemWithNavProp.model, ConcreteEntityTypes.Model),\r\n EntityReferences.fromEntityType(elemWithNavProp.code.scope, ConcreteEntityTypes.Element),\r\n elemWithNavProp.parent && EntityReferences.fromEntityType(elemWithNavProp.parent?.id, ConcreteEntityTypes.Element),\r\n EntityReferences.fromEntityType(testImplReferenceId, ConcreteEntityTypes.Element),\r\n ].filter((x) => x !== undefined));\r\n\r\n expect(testElementWithNavPropCollectReferencesSpy.called).to.be.true;\r\n testElementWithNavPropCollectReferencesSpy.resetHistory();\r\n\r\n const derivedElemWithNavProp = new ActualDerivedWithNavProp({\r\n classFullName: DerivedWithNavProp.classFullName,\r\n navProp: {\r\n id: testEntity1Id,\r\n relClassName: \"TestGeneratedClasses:ElemRel\",\r\n },\r\n derivedNavProp: {\r\n id: testEntity2Id,\r\n relClassName: \"TestGeneratedClasses:DerivedElemRel\",\r\n },\r\n } as DerivedWithNavPropProps);\r\n\r\n // eslint-disable-next-line @typescript-eslint/dot-notation\r\n assert.isDefined(ActualDerivedWithNavProp.prototype[\"collectReferenceIds\"]);\r\n // This demonstrates that if a non-generated class has a registered non-biscore base, it will not get a generated impl,\r\n expect(\r\n [...derivedElemWithNavProp.getReferenceIds()],\r\n ).to.have.members([\r\n EntityReferences.fromEntityType(elemWithNavProp.model, ConcreteEntityTypes.Model),\r\n EntityReferences.fromEntityType(elemWithNavProp.code.scope, ConcreteEntityTypes.Element),\r\n elemWithNavProp.parent && EntityReferences.fromEntityType(elemWithNavProp.parent?.id, ConcreteEntityTypes.Element),\r\n EntityReferences.fromEntityType(testImplReferenceId, ConcreteEntityTypes.Element),\r\n ].filter((x) => x !== undefined));\r\n // explicitly check we called the super function\r\n // (we already know its implementation was called, because testImplReferenceId is in the derived call's result)\r\n expect(testElementWithNavPropCollectReferencesSpy.called).to.be.true;\r\n\r\n sinon.restore();\r\n MyTestGeneratedClasses.unregisterSchema();\r\n });\r\n\r\n it(\"should work along a complex chain of overrides\", async () => {\r\n class MyDerived2 extends Derived2 {\r\n public override collectReferenceIds(referenceIds: EntityReferenceSet) {\r\n super.collectReferenceIds(referenceIds);\r\n referenceIds.addElement(\"derived-2\");\r\n }\r\n }\r\n class MyDerived4 extends Derived4 {\r\n public override collectReferenceIds(referenceIds: EntityReferenceSet) {\r\n super.collectReferenceIds(referenceIds);\r\n referenceIds.addElement(\"derived-4\");\r\n }\r\n }\r\n class MyTestGeneratedClasses extends TestGeneratedClasses {\r\n public static override get classes() {\r\n // leaving Derived3,5,6 generated\r\n return [MyDerived2, MyDerived4];\r\n }\r\n }\r\n imodel.jsClassMap.clear();\r\n MyTestGeneratedClasses.registerSchema();\r\n\r\n /* eslint-disable @typescript-eslint/naming-convention */\r\n const ActualTestElementWithNavProp = imodel.getJsClass<typeof Element>(\"TestGeneratedClasses:TestElementWithNavProp\");\r\n const ActualDerivedWithNavProp = imodel.getJsClass<typeof Element>(\"TestGeneratedClasses:DerivedWithNavProp\");\r\n const ActualDerived2 = imodel.getJsClass<typeof Element>(\"TestGeneratedClasses:Derived2\");\r\n const ActualDerived3 = imodel.getJsClass<typeof Element>(\"TestGeneratedClasses:Derived3\");\r\n const ActualDerived4 = imodel.getJsClass<typeof Element>(\"TestGeneratedClasses:Derived4\");\r\n const ActualDerived5 = imodel.getJsClass<typeof Element>(\"TestGeneratedClasses:Derived5\");\r\n const ActualDerived6 = imodel.getJsClass<typeof Element>(\"TestGeneratedClasses:Derived6\");\r\n\r\n expect(ActualTestElementWithNavProp.isGeneratedClass).to.be.true;\r\n expect(ActualDerivedWithNavProp.isGeneratedClass).to.be.true;\r\n expect(ActualDerived2.isGeneratedClass).to.be.false;\r\n expect(ActualDerived3.isGeneratedClass).to.be.true;\r\n expect(ActualDerived4.isGeneratedClass).to.be.false;\r\n expect(ActualDerived5.isGeneratedClass).to.be.true;\r\n expect(ActualDerived6.isGeneratedClass).to.be.true;\r\n\r\n assert.isTrue(ActualTestElementWithNavProp.prototype.hasOwnProperty(\"collectReferenceIds\")); // should have automatic impl\r\n assert.isTrue(ActualDerivedWithNavProp.prototype.hasOwnProperty(\"collectReferenceIds\"));\r\n assert.isTrue(ActualDerived2.prototype.hasOwnProperty(\"collectReferenceIds\")); // non-generated; manually implements so has method\r\n assert.isFalse(ActualDerived3.prototype.hasOwnProperty(\"collectReferenceIds\")); // base is non-generated so it shouldn't get the automatic impl\r\n assert.isTrue(ActualDerived4.prototype.hasOwnProperty(\"collectReferenceIds\")); // manually implements so it should have the method\r\n assert.isFalse(ActualDerived5.prototype.hasOwnProperty(\"collectReferenceIds\")); // ancestor is non-generated so it shouldn't get the automatic impl\r\n assert.isFalse(ActualDerived6.prototype.hasOwnProperty(\"collectReferenceIds\")); // ancestor is non-generated so it shouldn't get the automatic impl\r\n\r\n const testEntity1Id = imodel.elements.insertElement({\r\n classFullName: \"TestGeneratedClasses:Derived6\",\r\n prop: \"sample-value-1\",\r\n model: IModelDb.dictionaryId,\r\n code: Code.createEmpty(),\r\n } as TestEntityProps);\r\n\r\n const testEntity2Id = imodel.elements.insertElement({\r\n classFullName: \"TestGeneratedClasses:TestEntity\",\r\n prop: \"sample-value-2\",\r\n model: IModelDb.dictionaryId,\r\n code: Code.createEmpty(),\r\n } as TestEntityProps);\r\n\r\n const derived6Id = imodel.elements.insertElement({\r\n classFullName: Derived6.classFullName,\r\n model: IModelDb.dictionaryId,\r\n code: Code.createEmpty(),\r\n navProp: {\r\n id: testEntity1Id,\r\n relClassName: \"TestGeneratedClasses:ElemRel\",\r\n },\r\n derivedNavProp: {\r\n id: testEntity2Id,\r\n relClassName: \"TestGeneratedClasses:DerivedElemRel\",\r\n },\r\n } as DerivedWithNavPropProps);\r\n\r\n const derived6 = imodel.elements.getElement(derived6Id);\r\n\r\n /** it is not possible to make a spy of an already existing spy, so lazy try making one\r\n * this is necessary since due to prototypes, some \"methods\" we listen to are actually the same\r\n */\r\n function spyCollectReferenceIds(cls: typeof Element): sinon.SinonSpy {\r\n if ((cls.prototype as any).collectReferenceIds.isSinonProxy) {\r\n return (cls.prototype as any).collectReferenceIds;\r\n }\r\n return sinon.spy(cls.prototype, \"collectReferenceIds\" as any);\r\n }\r\n\r\n const elementMethodSpy = spyCollectReferenceIds(Element);\r\n const testElementWithNavPropSpy = spyCollectReferenceIds(ActualTestElementWithNavProp);\r\n const derivedWithNavPropSpy = spyCollectReferenceIds(ActualDerivedWithNavProp);\r\n const derived2Spy = spyCollectReferenceIds(ActualDerived2);\r\n const derived3Spy = spyCollectReferenceIds(ActualDerived3);\r\n const derived4Spy = spyCollectReferenceIds(ActualDerived4);\r\n const derived5Spy = spyCollectReferenceIds(ActualDerived5);\r\n const derived6Spy = spyCollectReferenceIds(ActualDerived6);\r\n\r\n // This demonstrates that if a generated class (Derived6) has a non-generated ancestor, it will not get a generated impl\r\n // instead it will just call the closest non-generated ancestor (Derived4)\r\n expect([...derived6.getReferenceIds()]).to.have.members(\r\n [\r\n EntityReferences.fromEntityType(derived6.model, ConcreteEntityTypes.Model),\r\n EntityReferences.fromEntityType(derived6.code.scope, ConcreteEntityTypes.Element),\r\n derived6.parent?.id && EntityReferences.fromEntityType(derived6.parent.id, ConcreteEntityTypes.Element),\r\n // \"TestGeneratedClasses:Derived4\" is MyDerived4 above, which extends the Derived4 class, which extends up\r\n // without any custom ancestor implementing collectReferenceIds, so Element.collectReferenceIds is called as the\r\n // super, and no navigation properties or other custom implementations are called so we only get \"derived-4\"\r\n EntityReferences.fromEntityType(\"derived-4\", ConcreteEntityTypes.Element),\r\n ].filter((x) => x !== undefined),\r\n );\r\n\r\n expect(elementMethodSpy.called).to.be.true; // this is the `super.collectReferenceIds` call in MyDerived4\r\n expect(testElementWithNavPropSpy.called).to.be.false;\r\n expect(derivedWithNavPropSpy.called).to.be.false;\r\n\r\n // these are the same (tested below)\r\n expect(derived2Spy.called).to.be.false;\r\n expect(derived3Spy.called).to.be.false;\r\n\r\n // these are all the same (tested below)\r\n expect(derived4Spy.called).to.be.true;\r\n expect(derived5Spy.called).to.be.true;\r\n expect(derived6Spy.called).to.be.true;\r\n\r\n expect(\r\n new Set(\r\n [\r\n Element,\r\n ActualTestElementWithNavProp,\r\n ActualDerivedWithNavProp,\r\n Derived2,\r\n Derived3, // same as above (so will be removed from set)\r\n Derived4,\r\n Derived5, // save as above (so will be removed from set)\r\n Derived6, // save as above (so will be removed from set)\r\n ].map((e) => e.prototype[\"collectReferenceIds\"]), // eslint-disable-line @typescript-eslint/dot-notation\r\n ),\r\n ).to.deep.equal(\r\n new Set(\r\n [\r\n Element,\r\n ActualTestElementWithNavProp,\r\n ActualDerivedWithNavProp,\r\n Derived2,\r\n Derived4,\r\n ].map((e) => e.prototype[\"collectReferenceIds\"]), // eslint-disable-line @typescript-eslint/dot-notation\r\n ),\r\n );\r\n\r\n MyTestGeneratedClasses.unregisterSchema();\r\n sinon.restore();\r\n });\r\n});\r\n\r\nclass Base {\r\n public static staticProperty: string = \"base\";\r\n public static get sqlName(): string { return `s.${this.staticProperty}`; }\r\n}\r\n\r\nclass Derived extends Base {\r\n}\r\n\r\ndescribe(\"Static Properties\", () => {\r\n it(\"should be inherited, and the subclass should get its own copy\", async () => {\r\n assert.equal(Base.staticProperty, \"base\");\r\n assert.equal(Derived.staticProperty, \"base\"); // Derived inherits Base's staticProperty (via its prototype)\r\n Derived.staticProperty = \"derived\"; // Derived now gets its own copy of staticProperty\r\n assert.equal(Base.staticProperty, \"base\"); // Base's staticProperty remains as it was\r\n assert.equal(Derived.staticProperty, \"derived\"); // Derived's staticProperty is now different\r\n assert.equal(Base.sqlName, \"s.base\");\r\n const d = new Derived();\r\n assert.equal((d.constructor as any).staticProperty, \"derived\"); // Instances of Derived see Derived.staticProperty\r\n const b = new Base();\r\n assert.equal((b.constructor as any).staticProperty, \"base\"); // Instances of Base see Base.staticProperty\r\n });\r\n\r\n});\r\n\r\ndescribe(\"Global state of ClassRegistry\", () => {\r\n let imodel1: SnapshotDb;\r\n let imodel2: SnapshotDb;\r\n\r\n before(() => {\r\n const seedFileName = IModelTestUtils.resolveAssetFile(\"test.bim\");\r\n const testFileName1 = IModelTestUtils.prepareOutputFile(\"ClassRegistry\", \"GlobalState1.bim\");\r\n const testFileName2 = IModelTestUtils.prepareOutputFile(\"ClassRegistry\", \"GlobalState2.bim\");\r\n imodel1 = IModelTestUtils.createSnapshotFromSeed(testFileName1, seedFileName);\r\n imodel2 = IModelTestUtils.createSnapshotFromSeed(testFileName2, seedFileName);\r\n assert.exists(imodel1);\r\n assert.exists(imodel2);\r\n });\r\n\r\n after(() => {\r\n imodel1?.close();\r\n imodel2?.close();\r\n });\r\n\r\n it(\"registering a class in different imodels should not affect each other\", async () => {\r\n await imodel1.importSchemaStrings([\r\n `<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n <ECSchema schemaName=\"TestSchema\" alias=\"ts\" version=\"01.00\" xmlns=\"http://www.bentley.com/schemas/Bentley.ECXML.3.1\">\r\n <ECSchemaReference name=\"BisCore\" version=\"01.00\" alias=\"bis\"/>\r\n\r\n <ECEntityClass typeName=\"TestClass\">\r\n <BaseClass>bis:PhysicalElement</BaseClass>\r\n <ECProperty propertyName=\"foo\" typeName=\"string\"/>\r\n <ECNavigationProperty propertyName=\"RelatedTestClass\" relationshipName=\"MyRelationship\" direction=\"backward\"/>\r\n </ECEntityClass>\r\n\r\n <ECRelationshipClass typeName=\"MyRelationship\" modifier=\"None\" strength=\"embedding\">\r\n <Source multiplicity=\"(0..1)\" roleLabel=\"has\" polymorphic=\"false\">\r\n <Class class=\"TestClass\"/>\r\n </Source>\r\n <Target multiplicity=\"(0..*)\" roleLabel=\"has\" polymorphic=\"false\">\r\n <Class class=\"TestClass\"/>\r\n </Target>\r\n </ECRelationshipClass>\r\n </ECSchema>\r\n `,\r\n ]);\r\n await imodel2.importSchemaStrings([\r\n `<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n <ECSchema schemaName=\"TestSchema\" alias=\"ts\" version=\"01.00\" xmlns=\"http://www.bentley.com/schemas/Bentley.ECXML.3.1\">\r\n <ECSchemaReference name=\"BisCore\" version=\"01.00\" alias=\"bis\"/>\r\n <ECEntityClass typeName=\"TestClass\">\r\n <BaseClass>bis:PhysicalElement</BaseClass>\r\n <ECProperty propertyName=\"bar\" typeName=\"string\"/>\r\n </ECEntityClass>\r\n </ECSchema>\r\n `,\r\n ]);\r\n\r\n const testClass1 = imodel1.getJsClass(\"TestSchema:TestClass\");\r\n assert.isFalse(testClass1.hasOwnProperty(\"testPropertyGuard\"));\r\n (testClass1 as any).testPropertyGuard = true;\r\n assert.isTrue(testClass1.hasOwnProperty(\"testPropertyGuard\"));\r\n\r\n const testClass2 = imodel2.getJsClass(\"TestSchema:TestClass\");\r\n assert.isFalse(testClass2.hasOwnProperty(\"testPropertyGuard\"));\r\n });\r\n\r\n\r\n});\r\n// TODO: add tests on the new model/aspect prefixes\r\n"]}
1
+ {"version":3,"file":"ClassRegistry.test.js","sourceRoot":"","sources":["../../../../src/test/schema/ClassRegistry.test.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"FunctionalDomain.test.js","sourceRoot":"","sources":["../../../../src/test/schema/FunctionalDomain.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 { assert, expect } from \"chai\";\r\nimport { join } from \"path\";\r\nimport { restore as sinonRestore, type SinonSpy, spy as sinonSpy } from \"sinon\";\r\nimport { Guid, Id64 } from \"@itwin/core-bentley\";\r\nimport { CodeScopeSpec, CodeSpec, ElementProps, IModel } from \"@itwin/core-common\";\r\nimport { ClassRegistry } from \"../../ClassRegistry\";\r\nimport { ElementUniqueAspect, OnAspectIdArg, OnAspectPropsArg } from \"../../ElementAspect\";\r\nimport {\r\n _nativeDb, ChannelControl, ChannelKey, FunctionalBreakdownElement, FunctionalComponentElement, FunctionalModel, FunctionalPartition,\r\n FunctionalSchema, InformationPartitionElement, OnChildElementIdArg, OnChildElementPropsArg, OnElementIdArg, OnElementInModelIdArg,\r\n OnElementInModelPropsArg, OnElementPropsArg, OnModelIdArg, OnModelPropsArg, OnSubModelIdArg, OnSubModelPropsArg, Schemas, StandaloneDb,\r\n} from \"../../core-backend\";\r\nimport { ElementOwnsChildElements, ElementOwnsUniqueAspect, SubjectOwnsPartitionElements } from \"../../NavigationRelationship\";\r\nimport { IModelTestUtils } from \"../IModelTestUtils\";\r\nimport { KnownTestLocations } from \"../KnownTestLocations\";\r\n\r\nlet iModelDb: StandaloneDb;\r\nconst insertedLabel = \"inserted label\";\r\nconst updatedLabel = \"updated label\";\r\n\r\n/** test schema for supplying element/model/aspect classes */\r\nclass TestSchema extends FunctionalSchema {\r\n public static override get schemaName() { return \"TestFunctional\"; }\r\n}\r\n\r\n/** partition element for testing `Element.onSubModelXxx` methods */\r\nclass TestFuncPartition extends InformationPartitionElement {\r\n public static override get className() { return \"TestFuncPartition\"; }\r\n\r\n public static override onSubModelInsert(arg: OnSubModelPropsArg): void {\r\n super.onSubModelInsert(arg);\r\n assert.equal(arg.iModel, iModelDb);\r\n assert.equal(arg.subModelProps.classFullName, TestFuncModel.classFullName);\r\n }\r\n public static override onSubModelInserted(arg: OnSubModelIdArg): void {\r\n super.onSubModelInserted(arg);\r\n assert.equal(arg.iModel, iModelDb);\r\n }\r\n public static override onSubModelDelete(arg: OnSubModelIdArg): void {\r\n super.onSubModelDelete(arg);\r\n assert.equal(arg.iModel, iModelDb);\r\n }\r\n public static override onSubModelDeleted(arg: OnSubModelIdArg): void {\r\n super.onSubModelDeleted(arg);\r\n assert.equal(arg.iModel, iModelDb);\r\n }\r\n}\r\n\r\n/** for testing `Model.onXxx` methods */\r\nclass TestFuncModel extends FunctionalModel {\r\n public static override get className() { return \"TestFuncModel\"; }\r\n public static dontDelete = \"\";\r\n\r\n public static override onInsert(arg: OnModelPropsArg): void {\r\n super.onInsert(arg);\r\n assert.equal(arg.iModel, iModelDb);\r\n assert.equal(arg.props.classFullName, this.classFullName);\r\n }\r\n public static override onInserted(arg: OnModelIdArg): void {\r\n super.onInserted(arg);\r\n assert.equal(arg.iModel, iModelDb);\r\n }\r\n public static override onUpdate(arg: OnModelPropsArg): void {\r\n super.onUpdate(arg);\r\n assert.equal(arg.iModel, iModelDb);\r\n }\r\n public static override onUpdated(arg: OnModelIdArg): void {\r\n super.onUpdated(arg);\r\n assert.equal(arg.iModel, iModelDb);\r\n }\r\n public static override onDelete(arg: OnModelIdArg): void {\r\n super.onDelete(arg);\r\n assert.equal(arg.iModel, iModelDb);\r\n }\r\n public static override onDeleted(arg: OnModelIdArg): void {\r\n super.onDeleted(arg);\r\n assert.equal(arg.iModel, iModelDb);\r\n }\r\n public static override onInsertElement(arg: OnElementInModelPropsArg): void {\r\n super.onInsertElement(arg);\r\n assert.equal(arg.iModel, iModelDb);\r\n if (arg.elementProps.code.value === \"badval\")\r\n throw new Error(\"bad element\");\r\n }\r\n public static override onInsertedElement(arg: OnElementInModelIdArg): void {\r\n super.onInsertedElement(arg);\r\n assert.equal(arg.iModel, iModelDb);\r\n }\r\n public static override onUpdateElement(arg: OnElementInModelPropsArg): void {\r\n super.onUpdateElement(arg);\r\n assert.equal(arg.iModel, iModelDb);\r\n }\r\n public static override onUpdatedElement(arg: OnElementInModelIdArg): void {\r\n super.onUpdatedElement(arg);\r\n assert.equal(arg.iModel, iModelDb);\r\n }\r\n public static override onDeleteElement(arg: OnElementInModelIdArg): void {\r\n super.onDeleteElement(arg);\r\n assert.equal(arg.iModel, iModelDb);\r\n if (arg.elementId === this.dontDelete)\r\n throw new Error(\"dont delete my element\");\r\n }\r\n public static override onDeletedElement(arg: OnElementInModelIdArg): void {\r\n super.onDeletedElement(arg);\r\n assert.equal(arg.iModel, iModelDb);\r\n }\r\n}\r\n\r\n/** for testing `Element.onXxx` methods */\r\nclass Breakdown extends FunctionalBreakdownElement {\r\n public static override get className() { return \"Breakdown\"; }\r\n public static dontDeleteChild = \"\";\r\n\r\n public static override onInsert(arg: OnElementPropsArg): void {\r\n arg.props.userLabel = insertedLabel;\r\n super.onInsert(arg);\r\n assert.equal(arg.iModel, iModelDb);\r\n assert.equal(arg.props.classFullName, this.classFullName);\r\n }\r\n public static override onInserted(arg: OnElementIdArg): void {\r\n super.onInserted(arg);\r\n assert.equal(arg.iModel, iModelDb);\r\n }\r\n public static override onUpdate(arg: OnElementPropsArg): void {\r\n arg.props.userLabel = updatedLabel;\r\n super.onUpdate(arg);\r\n assert.equal(arg.iModel, iModelDb);\r\n assert.equal(arg.props.classFullName, this.classFullName);\r\n }\r\n public static override onUpdated(arg: OnElementIdArg): void {\r\n super.onUpdated(arg);\r\n assert.equal(arg.iModel, iModelDb);\r\n }\r\n public static override onDelete(arg: OnElementIdArg): void {\r\n super.onDelete(arg);\r\n assert.equal(arg.iModel, iModelDb);\r\n }\r\n public static override onDeleted(arg: OnElementIdArg): void {\r\n super.onDeleted(arg);\r\n assert.equal(arg.iModel, iModelDb);\r\n }\r\n public static override onChildDelete(arg: OnChildElementIdArg): void {\r\n super.onChildDelete(arg);\r\n assert.equal(arg.iModel, iModelDb);\r\n if (arg.childId === this.dontDeleteChild)\r\n throw new Error(\"dont delete my child\");\r\n }\r\n public static override onChildDeleted(arg: OnChildElementIdArg): void {\r\n super.onChildDeleted(arg);\r\n assert.equal(arg.iModel, iModelDb);\r\n }\r\n public static override onChildInsert(arg: OnChildElementPropsArg): void {\r\n super.onChildInsert(arg);\r\n assert.equal(arg.iModel, iModelDb);\r\n }\r\n public static override onChildInserted(arg: OnChildElementIdArg): void {\r\n super.onChildInserted(arg);\r\n assert.equal(arg.iModel, iModelDb);\r\n }\r\n public static override onChildUpdate(arg: OnChildElementPropsArg): void {\r\n super.onChildUpdate(arg);\r\n assert.equal(arg.iModel, iModelDb);\r\n }\r\n public static override onChildUpdated(arg: OnChildElementIdArg): void {\r\n super.onChildUpdated(arg);\r\n assert.equal(arg.iModel, iModelDb);\r\n }\r\n public static override onChildAdd(arg: OnChildElementPropsArg): void {\r\n super.onChildAdd(arg);\r\n assert.equal(arg.iModel, iModelDb);\r\n }\r\n public static override onChildAdded(arg: OnChildElementIdArg): void {\r\n super.onChildAdded(arg);\r\n assert.equal(arg.iModel, iModelDb);\r\n }\r\n public static override onChildDrop(arg: OnChildElementIdArg): void {\r\n super.onChildDrop(arg);\r\n assert.equal(arg.iModel, iModelDb);\r\n }\r\n public static override onChildDropped(arg: OnChildElementIdArg): void {\r\n super.onChildDropped(arg);\r\n assert.equal(arg.iModel, iModelDb);\r\n }\r\n}\r\n\r\n/** for testing `ElementAspect.onXxx` methods */\r\nclass TestFuncAspect extends ElementUniqueAspect {\r\n public static override get className() { return \"TestFuncAspect\"; }\r\n public static expectedVal = \"\";\r\n\r\n public static override onInsert(arg: OnAspectPropsArg): void {\r\n super.onInsert(arg);\r\n assert.equal(arg.iModel, iModelDb);\r\n assert.equal((arg.props as any).strProp, this.expectedVal);\r\n }\r\n public static override onInserted(arg: OnAspectPropsArg): void {\r\n super.onInserted(arg);\r\n assert.equal(arg.iModel, iModelDb);\r\n assert.equal((arg.props as any).strProp, this.expectedVal);\r\n }\r\n public static override onUpdate(arg: OnAspectPropsArg): void {\r\n super.onUpdate(arg);\r\n assert.equal(arg.iModel, iModelDb);\r\n assert.equal((arg.props as any).strProp, this.expectedVal);\r\n }\r\n public static override onUpdated(arg: OnAspectPropsArg): void {\r\n super.onUpdated(arg);\r\n assert.equal(arg.iModel, iModelDb);\r\n assert.equal((arg.props as any).strProp, this.expectedVal);\r\n }\r\n public static override onDelete(arg: OnAspectIdArg): void {\r\n super.onDelete(arg);\r\n assert.equal(arg.iModel, iModelDb);\r\n }\r\n public static override onDeleted(arg: OnAspectIdArg): void {\r\n super.onDeleted(arg);\r\n assert.equal(arg.iModel, iModelDb);\r\n }\r\n}\r\n\r\nclass Component extends FunctionalComponentElement {\r\n public static override get className() { return \"Component\"; }\r\n}\r\n\r\ndescribe(\"Functional Domain\", () => {\r\n\r\n afterEach(() => {\r\n sinonRestore();\r\n });\r\n\r\n it(\"should populate FunctionalModel and test Element, Model, and ElementAspect callbacks\", async () => {\r\n iModelDb = StandaloneDb.createEmpty(IModelTestUtils.prepareOutputFile(\"FunctionalDomain\", \"FunctionalTest.bim\"), {\r\n rootSubject: { name: \"FunctionalTest\", description: \"Test of the Functional domain schema.\" },\r\n client: \"Functional\",\r\n globalOrigin: { x: 0, y: 0 },\r\n projectExtents: { low: { x: -500, y: -500, z: -50 }, high: { x: 500, y: 500, z: 50 } },\r\n guid: Guid.createValue(),\r\n });\r\n\r\n iModelDb[_nativeDb].resetBriefcaseId(100);\r\n\r\n // Import the Functional schema\r\n FunctionalSchema.registerSchema();\r\n Schemas.registerSchema(TestSchema);\r\n\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n ClassRegistry.registerModule({ TestFuncPartition, TestFuncModel, Breakdown, Component, TestFuncAspect }, TestSchema);\r\n\r\n await FunctionalSchema.importSchema(iModelDb);\r\n\r\n let commits = 0;\r\n let committed = 0;\r\n const elements = iModelDb.elements;\r\n const dropCommit = iModelDb.txns.onCommit.addListener(() => commits++);\r\n const dropCommitted = iModelDb.txns.onCommitted.addListener(() => committed++);\r\n iModelDb.saveChanges(\"Import Functional schema\");\r\n\r\n assert.equal(commits, 1);\r\n assert.equal(committed, 1);\r\n dropCommit();\r\n dropCommitted();\r\n\r\n IModelTestUtils.flushTxns(iModelDb); // importSchema below will fail if this is not called to flush local changes\r\n\r\n await iModelDb.importSchemas([join(KnownTestLocations.assetsDir, \"TestFunctional.ecschema.xml\")]);\r\n\r\n iModelDb.saveChanges(\"Import TestFunctional schema\");\r\n assert.equal(commits, 1);\r\n assert.equal(committed, 1);\r\n\r\n const testChannelKey1 = \"channel 1 for tests\";\r\n const testChannelKey2 = \"channel 2 for tests\";\r\n function testChannel<T>(channelKey: ChannelKey, fn: () => T, spies: SinonSpy[]) {\r\n iModelDb.channels.removeAllowedChannel(channelKey);\r\n expect(fn).throws(\"not allowed\");\r\n iModelDb.channels.addAllowedChannel(channelKey);\r\n spies.forEach((s) => s.resetHistory());\r\n return fn();\r\n }\r\n\r\n const spy = {\r\n model: {\r\n onInsert: sinonSpy(TestFuncModel, \"onInsert\"),\r\n onInserted: sinonSpy(TestFuncModel, \"onInserted\"),\r\n onUpdate: sinonSpy(TestFuncModel, \"onUpdate\"),\r\n onUpdated: sinonSpy(TestFuncModel, \"onUpdated\"),\r\n onDelete: sinonSpy(TestFuncModel, \"onDelete\"),\r\n onDeleted: sinonSpy(TestFuncModel, \"onDeleted\"),\r\n onInsertElement: sinonSpy(TestFuncModel, \"onInsertElement\"),\r\n onInsertedElement: sinonSpy(TestFuncModel, \"onInsertedElement\"),\r\n onUpdateElement: sinonSpy(TestFuncModel, \"onUpdateElement\"),\r\n onUpdatedElement: sinonSpy(TestFuncModel, \"onUpdatedElement\"),\r\n onDeleteElement: sinonSpy(TestFuncModel, \"onDeleteElement\"),\r\n onDeletedElement: sinonSpy(TestFuncModel, \"onDeletedElement\"),\r\n },\r\n partition: {\r\n onSubModelInsert: sinonSpy(TestFuncPartition, \"onSubModelInsert\"),\r\n onSubModelInserted: sinonSpy(TestFuncPartition, \"onSubModelInserted\"),\r\n onSubModelDelete: sinonSpy(TestFuncPartition, \"onSubModelDelete\"),\r\n onSubModelDeleted: sinonSpy(TestFuncPartition, \"onSubModelDeleted\"),\r\n },\r\n breakdown: {\r\n onInsert: sinonSpy(Breakdown, \"onInsert\"),\r\n onInserted: sinonSpy(Breakdown, \"onInserted\"),\r\n onUpdate: sinonSpy(Breakdown, \"onUpdate\"),\r\n onUpdated: sinonSpy(Breakdown, \"onUpdated\"),\r\n onDelete: sinonSpy(Breakdown, \"onDelete\"),\r\n onDeleted: sinonSpy(Breakdown, \"onDeleted\"),\r\n onChildDelete: sinonSpy(Breakdown, \"onChildDelete\"),\r\n onChildDeleted: sinonSpy(Breakdown, \"onChildDeleted\"),\r\n onChildInsert: sinonSpy(Breakdown, \"onChildInsert\"),\r\n onChildInserted: sinonSpy(Breakdown, \"onChildInserted\"),\r\n onChildUpdate: sinonSpy(Breakdown, \"onChildUpdate\"),\r\n onChildUpdated: sinonSpy(Breakdown, \"onChildUpdated\"),\r\n onChildAdd: sinonSpy(Breakdown, \"onChildAdd\"),\r\n onChildAdded: sinonSpy(Breakdown, \"onChildAdded\"),\r\n onChildDrop: sinonSpy(Breakdown, \"onChildDrop\"),\r\n onChildDropped: sinonSpy(Breakdown, \"onChildDropped\"),\r\n },\r\n aspect: {\r\n onInsert: sinonSpy(TestFuncAspect, \"onInsert\"),\r\n onInserted: sinonSpy(TestFuncAspect, \"onInserted\"),\r\n onUpdate: sinonSpy(TestFuncAspect, \"onUpdate\"),\r\n onUpdated: sinonSpy(TestFuncAspect, \"onUpdated\"),\r\n onDelete: sinonSpy(TestFuncAspect, \"onDelete\"),\r\n onDeleted: sinonSpy(TestFuncAspect, \"onDeleted\"),\r\n },\r\n };\r\n\r\n assert.equal(iModelDb.channels.queryChannelRoot(ChannelControl.sharedChannelName), IModel.rootSubjectId);\r\n\r\n const codeSpec = CodeSpec.create(iModelDb, \"Test Functional Elements\", CodeScopeSpec.Type.Model);\r\n iModelDb.codeSpecs.insert(codeSpec);\r\n assert.isTrue(Id64.isValidId64(codeSpec.id));\r\n\r\n // create a channel for all elements in this test\r\n assert.isUndefined(iModelDb.channels.queryChannelRoot(testChannelKey1));\r\n const subject1Id = iModelDb.channels.insertChannelSubject({ subjectName: \"Test Functional Subject\", channelKey: testChannelKey1 });\r\n assert.equal(iModelDb.channels.queryChannelRoot(testChannelKey1), subject1Id);\r\n\r\n const partitionCode = FunctionalPartition.createCode(iModelDb, subject1Id, \"Test Functional Model\");\r\n const partitionProps = {\r\n classFullName: TestFuncPartition.classFullName, model: IModel.repositoryModelId,\r\n parent: new SubjectOwnsPartitionElements(subject1Id), code: partitionCode,\r\n };\r\n\r\n iModelDb.channels.addAllowedChannel(testChannelKey1);\r\n let partitionId = iModelDb.elements.insertElement(partitionProps);\r\n\r\n const modelId = testChannel(testChannelKey1, () => iModelDb.models.insertModel({ classFullName: TestFuncModel.classFullName, modeledElement: { id: partitionId } }), [spy.model.onInsert]);\r\n\r\n assert.isTrue(Id64.isValidId64(modelId));\r\n assert.isTrue(spy.model.onInsert.calledOnce);\r\n assert.isTrue(spy.model.onInserted.calledOnce);\r\n assert.equal(spy.model.onInserted.getCall(0).args[0].id, modelId);\r\n assert.isFalse(spy.model.onUpdate.called, \"model insert should not call onUpdate\");\r\n assert.isFalse(spy.model.onUpdated.called, \"model insert should not call onUpdated\");\r\n\r\n assert.isTrue(spy.partition.onSubModelInsert.calledOnce);\r\n assert.isTrue(spy.partition.onSubModelInserted.calledOnce);\r\n assert.equal(spy.partition.onSubModelInserted.getCall(0).args[0].subModelId, modelId, \"Element.onSubModelInserted should have correct subModelId\");\r\n\r\n expect(() => iModelDb.channels.insertChannelSubject({ subjectName: \"Test Functional Subject 2\", channelKey: testChannelKey1 })).to.throw(`Channel ${testChannelKey1} root already exist`);\r\n const subject2Id = iModelDb.channels.insertChannelSubject({ subjectName: \"Test Functional Subject 2\", channelKey: testChannelKey2 });\r\n iModelDb.channels.addAllowedChannel(testChannelKey2);\r\n\r\n expect(() => iModelDb.channels.insertChannelSubject({ subjectName: \"Nested Subject\", parentSubjectId: subject2Id, channelKey: \"nested channel\" })).to.throw(\"may not nest\");\r\n\r\n partitionProps.code.value = \"Test Func 2\";\r\n partitionProps.parent = new SubjectOwnsPartitionElements(subject2Id);\r\n partitionId = iModelDb.elements.insertElement(partitionProps);\r\n\r\n const modelId2 = iModelDb.models.insertModel({ classFullName: TestFuncModel.classFullName, modeledElement: { id: partitionId } });\r\n assert.isTrue(Id64.isValidId64(modelId2));\r\n assert.equal(spy.model.onInserted.getCall(1).args[0].id, modelId2, \"second insert should set new id\");\r\n assert.equal(spy.model.onInsert.callCount, 2);\r\n assert.equal(spy.model.onInserted.callCount, 2);\r\n assert.equal(spy.partition.onSubModelInserted.getCall(1).args[0].subModelId, modelId2, \"Element.onSubModelInserted should have correct subModelId\");\r\n\r\n const model2 = iModelDb.models.getModel(modelId2);\r\n testChannel(testChannelKey2, () => model2.update(), []);\r\n assert.equal(spy.model.onUpdated.getCall(0).args[0].id, modelId2);\r\n assert.equal(spy.model.onUpdate.callCount, 2);\r\n assert.equal(spy.model.onUpdated.callCount, 1);\r\n\r\n testChannel(testChannelKey2, () => model2.delete(), [spy.model.onDelete, spy.partition.onSubModelDelete]);\r\n assert.isTrue(spy.model.onDelete.calledOnce);\r\n assert.isTrue(spy.model.onDeleted.calledOnce);\r\n assert.equal(spy.model.onDeleted.getCall(0).args[0].id, modelId2);\r\n assert.isTrue(spy.partition.onSubModelDelete.calledOnce);\r\n assert.isTrue(spy.partition.onSubModelDeleted.calledOnce);\r\n assert.equal(spy.partition.onSubModelDeleted.getCall(0).args[0].subModelId, modelId2);\r\n\r\n const breakdownProps = { classFullName: Breakdown.classFullName, model: modelId, code: { spec: codeSpec.id, scope: modelId, value: \"Breakdown1\" } };\r\n const breakdownId = testChannel(testChannelKey1, () => elements.insertElement(breakdownProps), [spy.model.onInsertElement, spy.breakdown.onInsert]);\r\n assert.isTrue(Id64.isValidId64(breakdownId));\r\n assert.isTrue(spy.model.onInsertElement.calledOnce);\r\n assert.isTrue(spy.model.onInsertedElement.calledOnce);\r\n assert.equal(spy.model.onInsertedElement.getCall(0).args[0].elementId, breakdownId);\r\n\r\n assert.isTrue(spy.breakdown.onInsert.calledOnce);\r\n assert.isTrue(spy.breakdown.onInserted.calledOnce);\r\n assert.equal(spy.breakdown.onInserted.getCall(0).args[0].id, breakdownId);\r\n assert.equal(spy.breakdown.onInsert.getCall(0).args[0].props, breakdownProps);\r\n\r\n const breakdown2Props: ElementProps = { classFullName: Breakdown.classFullName, model: modelId, code: { spec: codeSpec.id, scope: modelId, value: \"badval\" } };\r\n // TestFuncModel.onInsertElement throws for this code.value\r\n expect(() => elements.insertElement(breakdown2Props)).to.throw(\"bad element\");\r\n\r\n breakdown2Props.code.value = \"Breakdown2\";\r\n breakdown2Props.userLabel = \"start label\"; // gets overwritten in `onInsert`\r\n const bd2 = elements.insertElement(breakdown2Props);\r\n\r\n const aspect = { classFullName: TestFuncAspect.classFullName, element: new ElementOwnsUniqueAspect(bd2), strProp: \"prop 1\" };\r\n\r\n TestFuncAspect.expectedVal = aspect.strProp;\r\n\r\n testChannel(testChannelKey1, () => elements.insertAspect(aspect), [spy.aspect.onInsert]);\r\n assert.isTrue(spy.aspect.onInsert.calledOnce);\r\n assert.isTrue(spy.aspect.onInserted.calledOnce);\r\n assert.isFalse(spy.aspect.onUpdate.called);\r\n assert.isFalse(spy.aspect.onUpdated.called);\r\n assert.equal(spy.aspect.onInserted.getCall(0).args[0].props.element.id, bd2, \"elemId from ElementAspect.onInserted\");\r\n\r\n aspect.strProp = \"prop 2\";\r\n TestFuncAspect.expectedVal = aspect.strProp;\r\n testChannel(testChannelKey1, () => elements.updateAspect(aspect), [spy.aspect.onUpdate]);\r\n assert.equal(spy.aspect.onInsert.callCount, 1, \"ElementAspect.onInsert should not be called on update\");\r\n assert.equal(spy.aspect.onInserted.callCount, 1, \"ElementAspect.onInserted should should not be called on update\");\r\n assert.equal(spy.aspect.onUpdate.callCount, 1);\r\n assert.equal(spy.aspect.onUpdated.callCount, 1);\r\n assert.equal(spy.aspect.onUpdated.getCall(0).args[0].props.element.id, bd2, \"from ElementAspect.onUpdated\");\r\n const aspects = elements.getAspects(bd2, TestFuncAspect.classFullName);\r\n assert.equal(aspects.length, 1);\r\n testChannel(testChannelKey1, () => elements.deleteAspect(aspects[0].id), [spy.aspect.onDelete]);\r\n assert.equal(spy.aspect.onDelete.callCount, 1);\r\n assert.equal(spy.aspect.onDeleted.callCount, 1);\r\n assert.equal(spy.aspect.onDelete.getCall(0).args[0].aspectId, aspects[0].id);\r\n assert.equal(spy.aspect.onDeleted.getCall(0).args[0].aspectId, aspects[0].id);\r\n\r\n let bd2el = elements.getElement(bd2);\r\n assert.equal(bd2el.userLabel, insertedLabel, \"label was modified by onInsert\");\r\n expect(iModelDb.channels.getChannelKey(bd2)).equals(testChannelKey1);\r\n\r\n bd2el.userLabel = \"nothing\";\r\n testChannel(testChannelKey1, () => bd2el.update(), [spy.breakdown.onUpdate, spy.breakdown.onUpdated]);\r\n bd2el = elements.getElement(bd2);\r\n assert.equal(bd2el.userLabel, updatedLabel, \"label was modified in onUpdate\");\r\n assert.equal(spy.breakdown.onUpdate.callCount, 1);\r\n assert.equal(spy.breakdown.onUpdated.callCount, 1);\r\n assert.equal(spy.breakdown.onUpdate.getCall(0).args[0].props.id, bd2);\r\n assert.equal(spy.breakdown.onUpdated.getCall(0).args[0].id, bd2);\r\n\r\n testChannel(testChannelKey1, () => bd2el.delete(), [spy.breakdown.onDelete]);\r\n assert.equal(spy.breakdown.onDelete.callCount, 1);\r\n assert.equal(spy.breakdown.onDeleted.callCount, 1);\r\n const deleteArg = spy.breakdown.onDelete.getCall(0).args[0];\r\n assert.equal(deleteArg.id, bd2);\r\n assert.equal(deleteArg.model, bd2el.model);\r\n assert.equal(deleteArg.federationGuid, bd2el.federationGuid);\r\n assert.equal(spy.breakdown.onDeleted.getCall(0).args[0].id, bd2);\r\n\r\n const breakdown3Props = {\r\n classFullName: Breakdown.classFullName,\r\n model: modelId,\r\n code: { spec: codeSpec.id, scope: modelId, value: \"bd3\" },\r\n };\r\n const bd3 = elements.insertElement(breakdown3Props);\r\n\r\n const componentProps = {\r\n classFullName: Component.classFullName,\r\n model: modelId,\r\n parent: { id: breakdownId, relClassName: ElementOwnsChildElements.classFullName },\r\n code: { spec: codeSpec.id, scope: modelId, value: \"Component1\" },\r\n };\r\n const componentId = testChannel(testChannelKey1, () => elements.insertElement(componentProps), []);\r\n assert.isTrue(Id64.isValidId64(componentId));\r\n assert.equal(spy.breakdown.onChildInserted.callCount, 1);\r\n assert.equal(spy.breakdown.onChildInserted.getCall(0).args[0].childId, componentId);\r\n\r\n // test model and element callbacks for updateElement\r\n const component1 = elements.getElement(componentId);\r\n testChannel(testChannelKey1, () => component1.update(), [spy.model.onUpdateElement, spy.model.onUpdatedElement]);\r\n assert.equal(spy.model.onUpdateElement.callCount, 1);\r\n assert.equal(spy.model.onUpdatedElement.callCount, 1);\r\n assert.equal(spy.model.onUpdatedElement.getCall(0).args[0].elementId, componentId);\r\n assert.equal(spy.breakdown.onChildUpdate.callCount, 1);\r\n assert.equal(spy.breakdown.onChildUpdated.callCount, 1);\r\n assert.equal(spy.breakdown.onChildUpdate.getCall(0).args[0].parentId, breakdownId);\r\n assert.equal(spy.breakdown.onChildUpdated.getCall(0).args[0].childId, componentId);\r\n\r\n componentProps.code.value = \"comp2\";\r\n const comp2 = elements.insertElement(componentProps);\r\n assert.equal(spy.breakdown.onChildInserted.callCount, 2);\r\n assert.equal(spy.breakdown.onChildInserted.getCall(1).args[0].childId, comp2);\r\n const el2 = elements.getElement(comp2);\r\n\r\n spy.model.onDeleteElement.resetHistory();\r\n spy.model.onDeletedElement.resetHistory();\r\n TestFuncModel.dontDelete = comp2; // block deletion through model\r\n expect(() => el2.delete()).to.throw(\"dont delete my element\");\r\n TestFuncModel.dontDelete = \"\"; // allow deletion through model\r\n Breakdown.dontDeleteChild = comp2; // but block through parent\r\n expect(() => el2.delete()).to.throw(\"dont delete my child\"); // nope\r\n assert.equal(spy.model.onDeleteElement.callCount, 2, \"Model.onElementDelete gets called even though element is not really deleted\");\r\n assert.equal(spy.model.onDeletedElement.callCount, 0, \"make sure Model.onElementDeleted did not get called\");\r\n Breakdown.dontDeleteChild = \"\"; // now fully allow delete\r\n el2.delete();\r\n assert.equal(spy.model.onDeleteElement.callCount, 3, \"Model.onElementDelete should be called again\");\r\n assert.equal(spy.model.onDeletedElement.callCount, 1);\r\n assert.equal(spy.model.onDeletedElement.getCall(0).args[0].elementId, comp2);\r\n assert.equal(spy.breakdown.onChildDeleted.callCount, 1);\r\n assert.equal(spy.breakdown.onChildDeleted.getCall(0).args[0].childId, comp2);\r\n\r\n // next we make sure that changing the parent of an element calls the \"onChildAdd/Drop/Added/Dropped\" callbacks.\r\n // To do this we switch a component's parent from \"breakDownId\" to \"bc3\"\r\n componentProps.parent.id = bd3;\r\n const comp3 = elements.insertElement(componentProps);\r\n const compEl3 = elements.getElementProps(comp3);\r\n compEl3.parent!.id = breakdownId;\r\n\r\n testChannel(testChannelKey1, () => elements.updateElement(compEl3), []);\r\n\r\n assert.equal(spy.breakdown.onChildAdd.callCount, 1);\r\n assert.equal(spy.breakdown.onChildAdd.getCall(0).args[0].parentId, breakdownId);\r\n assert.equal(spy.breakdown.onChildAdd.getCall(0).args[0].childProps.id, comp3);\r\n assert.equal(spy.breakdown.onChildDrop.callCount, 1);\r\n assert.equal(spy.breakdown.onChildDrop.getCall(0).args[0].parentId, bd3);\r\n assert.equal(spy.breakdown.onChildDrop.getCall(0).args[0].childId, comp3);\r\n assert.equal(spy.breakdown.onChildAdded.callCount, 1);\r\n assert.equal(spy.breakdown.onChildAdded.getCall(0).args[0].parentId, breakdownId);\r\n assert.equal(spy.breakdown.onChildAdded.getCall(0).args[0].childId, comp3);\r\n assert.equal(spy.breakdown.onChildDropped.callCount, 1);\r\n assert.equal(spy.breakdown.onChildDropped.getCall(0).args[0].parentId, bd3);\r\n assert.equal(spy.breakdown.onChildDropped.getCall(0).args[0].childId, comp3);\r\n\r\n iModelDb.saveChanges(\"Insert Functional elements\");\r\n\r\n // unregister test schema to make sure it will throw exceptions if it is not present (since it has the \"SchemaHasBehavior\" custom attribute)\r\n Schemas.unregisterSchema(TestSchema.schemaName);\r\n const errMsg = \"Schema [TestFunctional] not registered, but is marked with SchemaHasBehavior\";\r\n expect(() => elements.deleteElement(breakdownId)).to.throw(errMsg);\r\n assert.isDefined(elements.getElement(breakdownId), \"should not have been deleted\");\r\n expect(() => elements.updateElement(breakdownProps)).to.throw(errMsg);\r\n breakdownProps.code.value = \"Breakdown 2\";\r\n expect(() => elements.insertElement(breakdownProps)).to.throw(errMsg);\r\n\r\n iModelDb.close();\r\n });\r\n});\r\n"]}
1
+ {"version":3,"file":"FunctionalDomain.test.js","sourceRoot":"","sources":["../../../../src/test/schema/FunctionalDomain.test.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"GenericDomain.test.js","sourceRoot":"","sources":["../../../../src/test/schema/GenericDomain.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\nimport { assert } from \"chai\";\r\nimport { DbResult, Guid, Id64, Id64String } from \"@itwin/core-bentley\";\r\nimport {\r\n CategoryProps, Code, DefinitionElementProps, ElementProps, GeometricElement3dProps, IModel, PhysicalElementProps, PhysicalTypeProps,\r\n TypeDefinitionElementProps,\r\n} from \"@itwin/core-common\";\r\nimport {\r\n DefinitionModel, DocumentListModel, ECSqlStatement, GenericDocument, GenericGraphicalModel3d, GenericGraphicalType2d, GenericPhysicalMaterial,\r\n GenericPhysicalType, GenericSchema, Graphic3d, Group, GroupModel, IModelDb, IModelJsFs, PhysicalElementIsOfPhysicalMaterial,\r\n PhysicalElementIsOfType, PhysicalModel, PhysicalObject, PhysicalTypeIsOfPhysicalMaterial, SnapshotDb, SpatialCategory,\r\n} from \"../../core-backend\";\r\nimport { IModelTestUtils } from \"../IModelTestUtils\";\r\n\r\ndescribe(\"Generic Domain\", () => {\r\n\r\n function count(iModelDb: IModelDb, classFullName: string): number {\r\n // eslint-disable-next-line @typescript-eslint/no-deprecated\r\n return iModelDb.withPreparedStatement(`SELECT COUNT(*) FROM ${classFullName}`, (statement: ECSqlStatement): number => {\r\n return DbResult.BE_SQLITE_ROW === statement.step() ? statement.getValue(0).getInteger() : 0;\r\n });\r\n }\r\n\r\n it(\"should create elements from the Generic domain\", async () => {\r\n GenericSchema.registerSchema();\r\n assert.isTrue(IModelJsFs.existsSync(GenericSchema.schemaFilePath));\r\n assert.equal(GenericSchema.schemaName, \"Generic\");\r\n assert.isTrue(PhysicalObject.classFullName.startsWith(GenericSchema.schemaName));\r\n\r\n const iModelDb = SnapshotDb.createEmpty(IModelTestUtils.prepareOutputFile(\"GenericDomain\", \"GenericTest.bim\"), {\r\n rootSubject: { name: \"GenericTest\", description: \"Test of the Generic domain schema.\" },\r\n client: \"Generic\",\r\n globalOrigin: { x: 0, y: 0 },\r\n projectExtents: { low: { x: -500, y: -500, z: -50 }, high: { x: 500, y: 500, z: 50 } },\r\n guid: Guid.createValue(),\r\n createClassViews: true,\r\n });\r\n\r\n // Create and populate a DefinitionModel\r\n const definitionModelId: Id64String = DefinitionModel.insert(iModelDb, IModel.rootSubjectId, \"Test DefinitionModel\");\r\n assert.isTrue(Id64.isValidId64(definitionModelId));\r\n\r\n // Insert a SpatialCategory\r\n const spatialCategoryProps: CategoryProps = {\r\n classFullName: SpatialCategory.classFullName,\r\n model: definitionModelId,\r\n code: SpatialCategory.createCode(iModelDb, definitionModelId, \"Test SpatialCategory\"),\r\n };\r\n const spatialCategoryId: Id64String = iModelDb.elements.insertElement(spatialCategoryProps);\r\n assert.isTrue(Id64.isValidId64(spatialCategoryId));\r\n\r\n // Insert a GenericGraphicalType2d\r\n const graphicalTypeProps: TypeDefinitionElementProps = {\r\n classFullName: GenericGraphicalType2d.classFullName,\r\n model: definitionModelId,\r\n code: Code.createEmpty(),\r\n userLabel: `${GenericGraphicalType2d.className}`,\r\n };\r\n const graphicalTypeId: Id64String = iModelDb.elements.insertElement(graphicalTypeProps);\r\n assert.isTrue(Id64.isValidId64(graphicalTypeId));\r\n\r\n // Insert a GenericPhysicalMaterial\r\n const physicalMaterialProps: DefinitionElementProps = {\r\n classFullName: GenericPhysicalMaterial.classFullName,\r\n model: definitionModelId,\r\n code: Code.createEmpty(),\r\n userLabel: `${GenericPhysicalMaterial.className}`,\r\n };\r\n const physicalMaterialId: Id64String = iModelDb.elements.insertElement(physicalMaterialProps);\r\n assert.isTrue(Id64.isValidId64(physicalMaterialId));\r\n\r\n // Insert a GenericPhysicalType\r\n const physicalTypeProps: PhysicalTypeProps = {\r\n classFullName: GenericPhysicalType.classFullName,\r\n model: definitionModelId,\r\n code: Code.createEmpty(),\r\n userLabel: `${GenericPhysicalType.className}`,\r\n physicalMaterial: new PhysicalTypeIsOfPhysicalMaterial(physicalMaterialId),\r\n };\r\n const physicalTypeId: Id64String = iModelDb.elements.insertElement(physicalTypeProps);\r\n assert.isTrue(Id64.isValidId64(physicalTypeId));\r\n\r\n // Create and populate a PhysicalModel\r\n const physicalModelId: Id64String = PhysicalModel.insert(iModelDb, IModel.rootSubjectId, \"Test PhysicalModel\");\r\n assert.isTrue(Id64.isValidId64(physicalModelId));\r\n\r\n for (let i = 0; i < 3; i++) {\r\n const physicalObjectProps: PhysicalElementProps = {\r\n classFullName: PhysicalObject.classFullName,\r\n model: physicalModelId,\r\n category: spatialCategoryId,\r\n code: Code.createEmpty(),\r\n userLabel: `${PhysicalObject.className}${i}`,\r\n physicalMaterial: new PhysicalElementIsOfPhysicalMaterial(physicalMaterialId),\r\n typeDefinition: new PhysicalElementIsOfType(physicalTypeId),\r\n };\r\n const physicalObjectId: Id64String = iModelDb.elements.insertElement(physicalObjectProps);\r\n assert.isTrue(Id64.isValidId64(physicalObjectId));\r\n }\r\n assert.equal(3, count(iModelDb, PhysicalObject.classFullName));\r\n\r\n // Create and populate a Generic:GroupModel\r\n const groupModelId: Id64String = GroupModel.insert(iModelDb, IModel.rootSubjectId, \"Test GroupModel\");\r\n assert.isTrue(Id64.isValidId64(groupModelId));\r\n\r\n for (let i = 0; i < 4; i++) {\r\n const groupProps: ElementProps = {\r\n classFullName: Group.classFullName,\r\n model: groupModelId,\r\n code: Code.createEmpty(),\r\n userLabel: `${Group.className}${i}`,\r\n };\r\n const groupId: Id64String = iModelDb.elements.insertElement(groupProps);\r\n assert.isTrue(Id64.isValidId64(groupId));\r\n }\r\n assert.equal(4, count(iModelDb, `${Group.schema.schemaName}:[${Group.className}]`)); // GROUP is a reserved word in SQL\r\n\r\n // Create and populate a Generic:GraphicalModel3d\r\n const graphicalModelId: Id64String = GenericGraphicalModel3d.insert(iModelDb, IModel.rootSubjectId, \"Test GraphicalModel3d\");\r\n assert.isTrue(Id64.isValidId64(graphicalModelId));\r\n\r\n for (let i = 0; i < 5; i++) {\r\n const graphicProps: GeometricElement3dProps = {\r\n classFullName: Graphic3d.classFullName,\r\n model: graphicalModelId,\r\n category: spatialCategoryId,\r\n code: Code.createEmpty(),\r\n userLabel: `${Graphic3d.className}${i}`,\r\n };\r\n const graphicId: Id64String = iModelDb.elements.insertElement(graphicProps);\r\n assert.isTrue(Id64.isValidId64(graphicId));\r\n }\r\n assert.equal(5, count(iModelDb, Graphic3d.classFullName));\r\n\r\n // Create and populate a DocumentListModel\r\n const documentListModelId: Id64String = DocumentListModel.insert(iModelDb, IModel.rootSubjectId, \"Test DocumentListModel\");\r\n assert.isTrue(Id64.isValidId64(documentListModelId));\r\n\r\n for (let i = 0; i < 2; i++) {\r\n const documentProps: ElementProps = {\r\n classFullName: GenericDocument.classFullName,\r\n model: documentListModelId,\r\n code: Code.createEmpty(),\r\n userLabel: `${GenericDocument.className}${i}`,\r\n };\r\n const graphicId: Id64String = iModelDb.elements.insertElement(documentProps);\r\n assert.isTrue(Id64.isValidId64(graphicId));\r\n }\r\n assert.equal(2, count(iModelDb, GenericDocument.classFullName));\r\n\r\n iModelDb.saveChanges(\"Insert Generic elements\");\r\n iModelDb.close();\r\n });\r\n});\r\n"]}
1
+ {"version":3,"file":"GenericDomain.test.js","sourceRoot":"","sources":["../../../../src/test/schema/GenericDomain.test.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"IModelSchemaContext.test.js","sourceRoot":"","sources":["../../../../src/test/schema/IModelSchemaContext.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\nimport { assert } from \"chai\";\r\nimport * as path from \"path\";\r\nimport { Code } from \"@itwin/core-common\";\r\nimport {\r\n DefinitionElement,\r\n Element,\r\n InformationContentElement,\r\n RepositoryLink,\r\n SnapshotDb, SpatialViewDefinition, UrlLink, ViewDefinition3d,\r\n} from \"../../core-backend\";\r\nimport { IModelTestUtils } from \"../IModelTestUtils\";\r\nimport { KnownTestLocations } from \"../KnownTestLocations\";\r\nimport { SchemaKey } from \"@itwin/ecschema-metadata\";\r\n\r\ndescribe(\"IModel Schema Context\", () => {\r\n let imodel: SnapshotDb;\r\n\r\n before(() => {\r\n const seedFileName = IModelTestUtils.resolveAssetFile(\"test.bim\");\r\n const testFileName = IModelTestUtils.prepareOutputFile(\"IModelSchemaContext\", \"IModelSchemaContext.bim\");\r\n imodel = IModelTestUtils.createSnapshotFromSeed(testFileName, seedFileName);\r\n assert.exists(imodel);\r\n });\r\n\r\n after(() => {\r\n imodel?.close();\r\n });\r\n\r\n it(\"should verify the Entity metadata of known element subclasses\", async () => {\r\n const code1 = new Code({ spec: \"0x10\", scope: \"0x11\", value: \"RF1.dgn\" });\r\n const el = imodel.elements.getElement(code1);\r\n assert.exists(el);\r\n if (el) {\r\n const ecClass = await el.getMetaData();\r\n assert.exists(ecClass);\r\n assert.equal(ecClass.schema.name, el.schemaName);\r\n assert.equal(ecClass.name, el.className);\r\n\r\n // I happen to know that this is a BisCore:RepositoryLink\r\n assert.equal(ecClass.fullName, RepositoryLink.schemaItemKey.fullName);\r\n // Check the metadata on the class itself\r\n const baseClass = await ecClass.baseClass;\r\n assert.exists(ecClass.baseClass);\r\n if (undefined === baseClass)\r\n return;\r\n\r\n assert.equal(baseClass.fullName, UrlLink.schemaItemKey.fullName);\r\n assert.exists(ecClass.customAttributes);\r\n assert.isTrue(ecClass.customAttributes?.has(\"BisCore.ClassHasHandler\"));\r\n // Check the metadata on the one property that RepositoryLink defines, RepositoryGuid\r\n const property = await ecClass.getProperty(\"repositoryGuid\");\r\n assert.exists(property);\r\n if (undefined === property)\r\n return;\r\n\r\n if(!property.isPrimitive())\r\n assert.fail(\"Property is not primitive\");\r\n\r\n assert.equal(property.extendedTypeName, \"BeGuid\");\r\n assert.isTrue(property.customAttributes?.has(\"CoreCustomAttributes.HiddenProperty\"));\r\n }\r\n const el2 = imodel.elements.getElement(\"0x34\");\r\n assert.exists(el2);\r\n if (el2) {\r\n const metaData = await el2.getMetaData();\r\n assert.exists(metaData);\r\n if (undefined === metaData)\r\n return;\r\n assert.equal(metaData.fullName, el2.schemaItemKey.fullName);\r\n // I happen to know that this is a BisCore.SpatialViewDefinition\r\n assert.equal(metaData.fullName, SpatialViewDefinition.schemaItemKey.fullName);\r\n\r\n const baseClass = await metaData.baseClass;\r\n assert.exists(metaData.baseClass);\r\n if (undefined === baseClass)\r\n return;\r\n\r\n assert.equal(baseClass.fullName, ViewDefinition3d.schemaItemKey.fullName);\r\n const prop = metaData.getPropertySync(\"modelSelector\");\r\n assert.isDefined(prop);\r\n if(!prop?.isNavigation())\r\n assert.fail(\"Property is not navigation property\");\r\n\r\n assert.equal((await prop.relationshipClass).fullName, \"BisCore.SpatialViewDefinitionUsesModelSelector\");\r\n }\r\n });\r\n\r\n it(\"should verify Entity metadata with both base class and mixin properties\", async () => {\r\n const schemaPathname = path.join(KnownTestLocations.assetsDir, \"TestDomain.ecschema.xml\");\r\n await imodel.importSchemas([schemaPathname]); // will throw an exception if import fails\r\n\r\n const testDomain = await imodel.schemaContext.getSchema(new SchemaKey(\"TestDomain\", 1,0,0));\r\n const testDomainClass = await testDomain!.getEntityClass(\"TestDomainClass\");\r\n const baseClassFullNames = Array.from(testDomainClass!.getAllBaseClassesSync() ?? []).map(baseClass => baseClass.fullName);\r\n assert.equal(baseClassFullNames.length, 4);\r\n assert.equal(baseClassFullNames[0], DefinitionElement.schemaItemKey.fullName);\r\n assert.equal(baseClassFullNames[1], InformationContentElement.schemaItemKey.fullName);\r\n assert.equal(baseClassFullNames[2], Element.schemaItemKey.fullName);\r\n assert.equal(baseClassFullNames[3], \"TestDomain.IMixin\");\r\n\r\n // Verify that the forEach method which is called when constructing an entity\r\n // is picking up all expected properties.\r\n const properties = Array.from(await testDomainClass!.getProperties());\r\n const testData = properties.map(property => property.name);\r\n const expectedString = testData.find((testString: string) => {\r\n return testString === \"TestMixinProperty\";\r\n });\r\n\r\n assert.isDefined(expectedString);\r\n });\r\n});\r\n"]}
1
+ {"version":3,"file":"IModelSchemaContext.test.js","sourceRoot":"","sources":["../../../../src/test/schema/IModelSchemaContext.test.ts"],"names":[],"mappings":"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"}