@itwin/core-backend 5.4.0-dev.7 → 5.4.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 (406) hide show
  1. package/CHANGELOG.md +53 -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.js.map +1 -1
  7. package/lib/cjs/CatalogDb.js.map +1 -1
  8. package/lib/cjs/Category.js.map +1 -1
  9. package/lib/cjs/ChangeSummaryManager.js +2 -2
  10. package/lib/cjs/ChangeSummaryManager.js.map +1 -1
  11. package/lib/cjs/ChangedElementsDb.js.map +1 -1
  12. package/lib/cjs/ChangesetECAdaptor.js +248 -248
  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 +5 -5
  17. package/lib/cjs/ClassRegistry.js.map +1 -1
  18. package/lib/cjs/CloudSqlite.js.map +1 -1
  19. package/lib/cjs/CodeService.js.map +1 -1
  20. package/lib/cjs/CodeSpecs.js.map +1 -1
  21. package/lib/cjs/ConcurrentQuery.js.map +1 -1
  22. package/lib/cjs/CustomViewState3dCreator.js.map +1 -1
  23. package/lib/cjs/DevTools.js.map +1 -1
  24. package/lib/cjs/DisplayStyle.js.map +1 -1
  25. package/lib/cjs/ECDb.js.map +1 -1
  26. package/lib/cjs/ECSchemaXmlContext.js.map +1 -1
  27. package/lib/cjs/ECSqlStatement.js.map +1 -1
  28. package/lib/cjs/Element.js.map +1 -1
  29. package/lib/cjs/ElementAspect.js.map +1 -1
  30. package/lib/cjs/ElementGraphics.js.map +1 -1
  31. package/lib/cjs/ElementTreeWalker.js.map +1 -1
  32. package/lib/cjs/Entity.js.map +1 -1
  33. package/lib/cjs/EntityReferences.js.map +1 -1
  34. package/lib/cjs/ExportGraphics.js.map +1 -1
  35. package/lib/cjs/ExternalSource.js.map +1 -1
  36. package/lib/cjs/FontFile.js.map +1 -1
  37. package/lib/cjs/GeoCoordConfig.js.map +1 -1
  38. package/lib/cjs/GeographicCRSServices.js.map +1 -1
  39. package/lib/cjs/GeometrySummary.js +47 -47
  40. package/lib/cjs/GeometrySummary.js.map +1 -1
  41. package/lib/cjs/IModelDb.d.ts.map +1 -1
  42. package/lib/cjs/IModelDb.js +20 -17
  43. package/lib/cjs/IModelDb.js.map +1 -1
  44. package/lib/cjs/IModelDbFonts.js.map +1 -1
  45. package/lib/cjs/IModelElementCloneContext.js.map +1 -1
  46. package/lib/cjs/IModelHost.d.ts +11 -0
  47. package/lib/cjs/IModelHost.d.ts.map +1 -1
  48. package/lib/cjs/IModelHost.js +6 -0
  49. package/lib/cjs/IModelHost.js.map +1 -1
  50. package/lib/cjs/IModelIncrementalSchemaLocater.js.map +1 -1
  51. package/lib/cjs/IModelJsFs.js.map +1 -1
  52. package/lib/cjs/ImageSourceConversion.js.map +1 -1
  53. package/lib/cjs/IpcHost.js.map +1 -1
  54. package/lib/cjs/LineStyle.js.map +1 -1
  55. package/lib/cjs/LocalHub.js +1 -1
  56. package/lib/cjs/LocalHub.js.map +1 -1
  57. package/lib/cjs/LocalhostIpcHost.d.ts +1 -0
  58. package/lib/cjs/LocalhostIpcHost.d.ts.map +1 -1
  59. package/lib/cjs/LocalhostIpcHost.js +1 -1
  60. package/lib/cjs/LocalhostIpcHost.js.map +1 -1
  61. package/lib/cjs/LockControl.js.map +1 -1
  62. package/lib/cjs/Material.js.map +1 -1
  63. package/lib/cjs/Model.js.map +1 -1
  64. package/lib/cjs/NativeAppStorage.js.map +1 -1
  65. package/lib/cjs/NativeHost.js.map +1 -1
  66. package/lib/cjs/NavigationRelationship.js.map +1 -1
  67. package/lib/cjs/PromiseMemoizer.js.map +1 -1
  68. package/lib/cjs/PropertyStore.js.map +1 -1
  69. package/lib/cjs/Relationship.js.map +1 -1
  70. package/lib/cjs/RpcBackend.js.map +1 -1
  71. package/lib/cjs/SQLiteDb.js.map +1 -1
  72. package/lib/cjs/Schema.js.map +1 -1
  73. package/lib/cjs/SchemaSync.js.map +1 -1
  74. package/lib/cjs/SchemaUtils.js.map +1 -1
  75. package/lib/cjs/SheetIndex.js.map +1 -1
  76. package/lib/cjs/SqliteChangesetReader.js.map +1 -1
  77. package/lib/cjs/SqliteStatement.js.map +1 -1
  78. package/lib/cjs/StashManager.js.map +1 -1
  79. package/lib/cjs/Texture.js.map +1 -1
  80. package/lib/cjs/TileStorage.js.map +1 -1
  81. package/lib/cjs/TxnManager.d.ts +16 -4
  82. package/lib/cjs/TxnManager.d.ts.map +1 -1
  83. package/lib/cjs/TxnManager.js +25 -3
  84. package/lib/cjs/TxnManager.js.map +1 -1
  85. package/lib/cjs/ViewDefinition.js.map +1 -1
  86. package/lib/cjs/ViewStateHydrator.js.map +1 -1
  87. package/lib/cjs/ViewStore.js.map +1 -1
  88. package/lib/cjs/annotations/ElementDrivesTextAnnotation.js.map +1 -1
  89. package/lib/cjs/annotations/FrameGeometry.js.map +1 -1
  90. package/lib/cjs/annotations/LeaderGeometry.js.map +1 -1
  91. package/lib/cjs/annotations/TextAnnotationElement.js.map +1 -1
  92. package/lib/cjs/annotations/TextAnnotationGeometry.js.map +1 -1
  93. package/lib/cjs/annotations/TextBlockGeometry.js.map +1 -1
  94. package/lib/cjs/annotations/TextBlockLayout.js.map +1 -1
  95. package/lib/cjs/assets/IModelChange.02.00.00.ecschema.xml +90 -90
  96. package/lib/cjs/assets/Settings/Schemas/Base.Schema.json +32 -32
  97. package/lib/cjs/assets/Settings/Schemas/Gcs.schema.json +27 -27
  98. package/lib/cjs/assets/Settings/Schemas/Workspace.Schema.json +94 -94
  99. package/lib/cjs/assets/Settings/backend.setting.json5 +21 -21
  100. package/lib/cjs/core-backend.js.map +1 -1
  101. package/lib/cjs/domains/FunctionalElements.js.map +1 -1
  102. package/lib/cjs/domains/FunctionalSchema.js.map +1 -1
  103. package/lib/cjs/domains/GenericElements.js.map +1 -1
  104. package/lib/cjs/domains/GenericSchema.js.map +1 -1
  105. package/lib/cjs/internal/ChangesetConflictArgs.js.map +1 -1
  106. package/lib/cjs/internal/ChannelAdmin.js.map +1 -1
  107. package/lib/cjs/internal/ElementLRUCache.js.map +1 -1
  108. package/lib/cjs/internal/FontFileImpl.js.map +1 -1
  109. package/lib/cjs/internal/HubMock.js.map +1 -1
  110. package/lib/cjs/internal/IModelDbFontsImpl.js.map +1 -1
  111. package/lib/cjs/internal/NativePlatform.js.map +1 -1
  112. package/lib/cjs/internal/NoLocks.js.map +1 -1
  113. package/lib/cjs/internal/ServerBasedLocks.js.map +1 -1
  114. package/lib/cjs/internal/Symbols.js.map +1 -1
  115. package/lib/cjs/internal/annotations/fields.js.map +1 -1
  116. package/lib/cjs/internal/cross-package.js.map +1 -1
  117. package/lib/cjs/internal/workspace/SettingsImpl.js.map +1 -1
  118. package/lib/cjs/internal/workspace/SettingsSchemasImpl.js.map +1 -1
  119. package/lib/cjs/internal/workspace/WorkspaceImpl.js.map +1 -1
  120. package/lib/cjs/internal/workspace/WorkspaceSqliteDb.js.map +1 -1
  121. package/lib/cjs/rpc/multipart.js.map +1 -1
  122. package/lib/cjs/rpc/tracing.js.map +1 -1
  123. package/lib/cjs/rpc/web/logging.js.map +1 -1
  124. package/lib/cjs/rpc/web/request.js.map +1 -1
  125. package/lib/cjs/rpc/web/response.js.map +1 -1
  126. package/lib/cjs/rpc-impl/DevToolsRpcImpl.js.map +1 -1
  127. package/lib/cjs/rpc-impl/IModelReadRpcImpl.js.map +1 -1
  128. package/lib/cjs/rpc-impl/IModelTileRpcImpl.js.map +1 -1
  129. package/lib/cjs/rpc-impl/RpcBriefcaseUtility.js.map +1 -1
  130. package/lib/cjs/rpc-impl/SnapshotIModelRpcImpl.js.map +1 -1
  131. package/lib/cjs/workspace/Settings.js.map +1 -1
  132. package/lib/cjs/workspace/SettingsSchemas.js.map +1 -1
  133. package/lib/cjs/workspace/Workspace.js.map +1 -1
  134. package/lib/cjs/workspace/WorkspaceEditor.js.map +1 -1
  135. package/lib/esm/BackendHubAccess.js.map +1 -1
  136. package/lib/esm/BackendLoggerCategory.js.map +1 -1
  137. package/lib/esm/BisCoreSchema.js.map +1 -1
  138. package/lib/esm/BlobContainerService.js.map +1 -1
  139. package/lib/esm/BriefcaseManager.js.map +1 -1
  140. package/lib/esm/CatalogDb.js.map +1 -1
  141. package/lib/esm/Category.js.map +1 -1
  142. package/lib/esm/ChangeSummaryManager.js +2 -2
  143. package/lib/esm/ChangeSummaryManager.js.map +1 -1
  144. package/lib/esm/ChangedElementsDb.js.map +1 -1
  145. package/lib/esm/ChangesetECAdaptor.js +248 -248
  146. package/lib/esm/ChangesetECAdaptor.js.map +1 -1
  147. package/lib/esm/ChannelControl.js.map +1 -1
  148. package/lib/esm/CheckpointManager.js.map +1 -1
  149. package/lib/esm/ClassRegistry.js +5 -5
  150. package/lib/esm/ClassRegistry.js.map +1 -1
  151. package/lib/esm/CloudSqlite.js.map +1 -1
  152. package/lib/esm/CodeService.js.map +1 -1
  153. package/lib/esm/CodeSpecs.js.map +1 -1
  154. package/lib/esm/ConcurrentQuery.js.map +1 -1
  155. package/lib/esm/CustomViewState3dCreator.js.map +1 -1
  156. package/lib/esm/DevTools.js.map +1 -1
  157. package/lib/esm/DisplayStyle.js.map +1 -1
  158. package/lib/esm/ECDb.js.map +1 -1
  159. package/lib/esm/ECSchemaXmlContext.js.map +1 -1
  160. package/lib/esm/ECSqlStatement.js.map +1 -1
  161. package/lib/esm/Element.js.map +1 -1
  162. package/lib/esm/ElementAspect.js.map +1 -1
  163. package/lib/esm/ElementGraphics.js.map +1 -1
  164. package/lib/esm/ElementTreeWalker.js.map +1 -1
  165. package/lib/esm/Entity.js.map +1 -1
  166. package/lib/esm/EntityReferences.js.map +1 -1
  167. package/lib/esm/ExportGraphics.js.map +1 -1
  168. package/lib/esm/ExternalSource.js.map +1 -1
  169. package/lib/esm/FontFile.js.map +1 -1
  170. package/lib/esm/GeoCoordConfig.js.map +1 -1
  171. package/lib/esm/GeographicCRSServices.js.map +1 -1
  172. package/lib/esm/GeometrySummary.js +47 -47
  173. package/lib/esm/GeometrySummary.js.map +1 -1
  174. package/lib/esm/IModelDb.d.ts.map +1 -1
  175. package/lib/esm/IModelDb.js +20 -17
  176. package/lib/esm/IModelDb.js.map +1 -1
  177. package/lib/esm/IModelDbFonts.js.map +1 -1
  178. package/lib/esm/IModelElementCloneContext.js.map +1 -1
  179. package/lib/esm/IModelHost.d.ts +11 -0
  180. package/lib/esm/IModelHost.d.ts.map +1 -1
  181. package/lib/esm/IModelHost.js +6 -0
  182. package/lib/esm/IModelHost.js.map +1 -1
  183. package/lib/esm/IModelIncrementalSchemaLocater.js.map +1 -1
  184. package/lib/esm/IModelJsFs.js.map +1 -1
  185. package/lib/esm/ImageSourceConversion.js.map +1 -1
  186. package/lib/esm/IpcHost.js.map +1 -1
  187. package/lib/esm/LineStyle.js.map +1 -1
  188. package/lib/esm/LocalHub.js +1 -1
  189. package/lib/esm/LocalHub.js.map +1 -1
  190. package/lib/esm/LocalhostIpcHost.d.ts +1 -0
  191. package/lib/esm/LocalhostIpcHost.d.ts.map +1 -1
  192. package/lib/esm/LocalhostIpcHost.js +1 -1
  193. package/lib/esm/LocalhostIpcHost.js.map +1 -1
  194. package/lib/esm/LockControl.js.map +1 -1
  195. package/lib/esm/Material.js.map +1 -1
  196. package/lib/esm/Model.js.map +1 -1
  197. package/lib/esm/NativeAppStorage.js.map +1 -1
  198. package/lib/esm/NativeHost.js.map +1 -1
  199. package/lib/esm/NavigationRelationship.js.map +1 -1
  200. package/lib/esm/PromiseMemoizer.js.map +1 -1
  201. package/lib/esm/PropertyStore.js.map +1 -1
  202. package/lib/esm/Relationship.js.map +1 -1
  203. package/lib/esm/RpcBackend.js.map +1 -1
  204. package/lib/esm/SQLiteDb.js.map +1 -1
  205. package/lib/esm/Schema.js.map +1 -1
  206. package/lib/esm/SchemaSync.js.map +1 -1
  207. package/lib/esm/SchemaUtils.js.map +1 -1
  208. package/lib/esm/SheetIndex.js.map +1 -1
  209. package/lib/esm/SqliteChangesetReader.js.map +1 -1
  210. package/lib/esm/SqliteStatement.js.map +1 -1
  211. package/lib/esm/StashManager.js.map +1 -1
  212. package/lib/esm/Texture.js.map +1 -1
  213. package/lib/esm/TileStorage.js.map +1 -1
  214. package/lib/esm/TxnManager.d.ts +16 -4
  215. package/lib/esm/TxnManager.d.ts.map +1 -1
  216. package/lib/esm/TxnManager.js +25 -3
  217. package/lib/esm/TxnManager.js.map +1 -1
  218. package/lib/esm/ViewDefinition.js.map +1 -1
  219. package/lib/esm/ViewStateHydrator.js.map +1 -1
  220. package/lib/esm/ViewStore.js.map +1 -1
  221. package/lib/esm/annotations/ElementDrivesTextAnnotation.js.map +1 -1
  222. package/lib/esm/annotations/FrameGeometry.js.map +1 -1
  223. package/lib/esm/annotations/LeaderGeometry.js.map +1 -1
  224. package/lib/esm/annotations/TextAnnotationElement.js.map +1 -1
  225. package/lib/esm/annotations/TextAnnotationGeometry.js.map +1 -1
  226. package/lib/esm/annotations/TextBlockGeometry.js.map +1 -1
  227. package/lib/esm/annotations/TextBlockLayout.js.map +1 -1
  228. package/lib/esm/core-backend.js.map +1 -1
  229. package/lib/esm/domains/FunctionalElements.js.map +1 -1
  230. package/lib/esm/domains/FunctionalSchema.js.map +1 -1
  231. package/lib/esm/domains/GenericElements.js.map +1 -1
  232. package/lib/esm/domains/GenericSchema.js.map +1 -1
  233. package/lib/esm/internal/ChangesetConflictArgs.js.map +1 -1
  234. package/lib/esm/internal/ChannelAdmin.js.map +1 -1
  235. package/lib/esm/internal/ElementLRUCache.js.map +1 -1
  236. package/lib/esm/internal/FontFileImpl.js.map +1 -1
  237. package/lib/esm/internal/HubMock.js.map +1 -1
  238. package/lib/esm/internal/IModelDbFontsImpl.js.map +1 -1
  239. package/lib/esm/internal/NativePlatform.js.map +1 -1
  240. package/lib/esm/internal/NoLocks.js.map +1 -1
  241. package/lib/esm/internal/ServerBasedLocks.js.map +1 -1
  242. package/lib/esm/internal/Symbols.js.map +1 -1
  243. package/lib/esm/internal/annotations/fields.js.map +1 -1
  244. package/lib/esm/internal/cross-package.js.map +1 -1
  245. package/lib/esm/internal/workspace/SettingsImpl.js.map +1 -1
  246. package/lib/esm/internal/workspace/SettingsSchemasImpl.js.map +1 -1
  247. package/lib/esm/internal/workspace/WorkspaceImpl.js.map +1 -1
  248. package/lib/esm/internal/workspace/WorkspaceSqliteDb.js.map +1 -1
  249. package/lib/esm/rpc/multipart.js.map +1 -1
  250. package/lib/esm/rpc/tracing.js.map +1 -1
  251. package/lib/esm/rpc/web/logging.js.map +1 -1
  252. package/lib/esm/rpc/web/request.js.map +1 -1
  253. package/lib/esm/rpc/web/response.js.map +1 -1
  254. package/lib/esm/rpc-impl/DevToolsRpcImpl.js.map +1 -1
  255. package/lib/esm/rpc-impl/IModelReadRpcImpl.js.map +1 -1
  256. package/lib/esm/rpc-impl/IModelTileRpcImpl.js.map +1 -1
  257. package/lib/esm/rpc-impl/RpcBriefcaseUtility.js.map +1 -1
  258. package/lib/esm/rpc-impl/SnapshotIModelRpcImpl.js.map +1 -1
  259. package/lib/esm/test/AdvancedEqual.js.map +1 -1
  260. package/lib/esm/test/AnnotationTestUtils.js.map +1 -1
  261. package/lib/esm/test/AttachDb.test.js +11 -11
  262. package/lib/esm/test/AttachDb.test.js.map +1 -1
  263. package/lib/esm/test/ElementDrivesElement.test.js +23 -23
  264. package/lib/esm/test/ElementDrivesElement.test.js.map +1 -1
  265. package/lib/esm/test/ElementLRUCache.test.js.map +1 -1
  266. package/lib/esm/test/GeometryTestUtil.js.map +1 -1
  267. package/lib/esm/test/IModelHost.test.js.map +1 -1
  268. package/lib/esm/test/IModelTestUtils.js.map +1 -1
  269. package/lib/esm/test/ImageSourceConversion.test.js.map +1 -1
  270. package/lib/esm/test/IpcHost.test.js.map +1 -1
  271. package/lib/esm/test/KnownTestLocations.js.map +1 -1
  272. package/lib/esm/test/PrintElementTree.js.map +1 -1
  273. package/lib/esm/test/PropertyDb.test.js.map +1 -1
  274. package/lib/esm/test/RevisionUtility.js.map +1 -1
  275. package/lib/esm/test/SchemaUtils.test.js +25 -25
  276. package/lib/esm/test/SchemaUtils.test.js.map +1 -1
  277. package/lib/esm/test/SequentialLogMatcher.js.map +1 -1
  278. package/lib/esm/test/TestChangeSetUtility.js.map +1 -1
  279. package/lib/esm/test/TestUtils.js.map +1 -1
  280. package/lib/esm/test/annotations/Fields.test.js +53 -53
  281. package/lib/esm/test/annotations/Fields.test.js.map +1 -1
  282. package/lib/esm/test/annotations/FrameGeometry.test.js.map +1 -1
  283. package/lib/esm/test/annotations/LeaderGeometry.test.js.map +1 -1
  284. package/lib/esm/test/annotations/TextAnnotation.test.js.map +1 -1
  285. package/lib/esm/test/annotations/TextBlock.test.js.map +1 -1
  286. package/lib/esm/test/assets/IncrementalSchemaLocater/configs/old.config.js.map +1 -1
  287. package/lib/esm/test/assets/IncrementalSchemaLocater/configs/simple.config.js.map +1 -1
  288. package/lib/esm/test/categories/Category.test.js.map +1 -1
  289. package/lib/esm/test/codespec/CodeSpec.test.js.map +1 -1
  290. package/lib/esm/test/ecdb/CTE.test.js +88 -88
  291. package/lib/esm/test/ecdb/CTE.test.js.map +1 -1
  292. package/lib/esm/test/ecdb/ConcurrentQuery.test.js +15 -15
  293. package/lib/esm/test/ecdb/ConcurrentQuery.test.js.map +1 -1
  294. package/lib/esm/test/ecdb/ConcurrentQueryLoad.test.js +15 -15
  295. package/lib/esm/test/ecdb/ConcurrentQueryLoad.test.js.map +1 -1
  296. package/lib/esm/test/ecdb/ECDb.test.js +72 -72
  297. package/lib/esm/test/ecdb/ECDb.test.js.map +1 -1
  298. package/lib/esm/test/ecdb/ECDbTestHelper.js.map +1 -1
  299. package/lib/esm/test/ecdb/ECSchemaXmlContext.test.js.map +1 -1
  300. package/lib/esm/test/ecdb/ECSqlAst.test.js +65 -65
  301. package/lib/esm/test/ecdb/ECSqlAst.test.js.map +1 -1
  302. package/lib/esm/test/ecdb/ECSqlQuery.test.js.map +1 -1
  303. package/lib/esm/test/ecdb/ECSqlReader.test.js +16 -16
  304. package/lib/esm/test/ecdb/ECSqlReader.test.js.map +1 -1
  305. package/lib/esm/test/ecdb/ECSqlStatement.test.js +332 -332
  306. package/lib/esm/test/ecdb/ECSqlStatement.test.js.map +1 -1
  307. package/lib/esm/test/ecdb/SqliteStatement.test.js.map +1 -1
  308. package/lib/esm/test/ecsql/dataset/ECSqlDatasets.js.map +1 -1
  309. package/lib/esm/test/ecsql/src/ECSqlTestGenerator.js +21 -21
  310. package/lib/esm/test/ecsql/src/ECSqlTestGenerator.js.map +1 -1
  311. package/lib/esm/test/ecsql/src/ECSqlTestParser.js.map +1 -1
  312. package/lib/esm/test/ecsql/src/ECSqlTestRunner.test.js.map +1 -1
  313. package/lib/esm/test/element/DeleteDefinitionElements.test.js.map +1 -1
  314. package/lib/esm/test/element/ElementAspect.test.js +22 -22
  315. package/lib/esm/test/element/ElementAspect.test.js.map +1 -1
  316. package/lib/esm/test/element/ElementDependencyGraph.test.js.map +1 -1
  317. package/lib/esm/test/element/ElementRoundTrip.test.js +139 -139
  318. package/lib/esm/test/element/ElementRoundTrip.test.js.map +1 -1
  319. package/lib/esm/test/element/ExcludedElements.test.js.map +1 -1
  320. package/lib/esm/test/element/ExternalSource.test.js.map +1 -1
  321. package/lib/esm/test/element/NullStructArray.test.js +13 -13
  322. package/lib/esm/test/element/NullStructArray.test.js.map +1 -1
  323. package/lib/esm/test/element/ProjectInformationRecord.test.js.map +1 -1
  324. package/lib/esm/test/element/SheetInformationAspect.test.js.map +1 -1
  325. package/lib/esm/test/element/UrlLink.test.js.map +1 -1
  326. package/lib/esm/test/font/FontFile.test.js.map +1 -1
  327. package/lib/esm/test/font/IModelDbFonts.test.js.map +1 -1
  328. package/lib/esm/test/hubaccess/ApplyChangeset.test.js +132 -34
  329. package/lib/esm/test/hubaccess/ApplyChangeset.test.js.map +1 -1
  330. package/lib/esm/test/hubaccess/BriefcaseManager.test.js.map +1 -1
  331. package/lib/esm/test/hubaccess/CheckpointManager.test.js.map +1 -1
  332. package/lib/esm/test/hubaccess/Rebase.test.js +197 -41
  333. package/lib/esm/test/hubaccess/Rebase.test.js.map +1 -1
  334. package/lib/esm/test/imageData.js.map +1 -1
  335. package/lib/esm/test/imodel/Code.test.js +369 -248
  336. package/lib/esm/test/imodel/Code.test.js.map +1 -1
  337. package/lib/esm/test/imodel/ElementTreeWalker.test.js.map +1 -1
  338. package/lib/esm/test/imodel/GetTextureImage.test.js.map +1 -1
  339. package/lib/esm/test/imodel/IModel.test.js +47 -44
  340. package/lib/esm/test/imodel/IModel.test.js.map +1 -1
  341. package/lib/esm/test/imodel/ProjectExtents.test.js.map +1 -1
  342. package/lib/esm/test/imodel/SchemaXmlImport.test.js.map +1 -1
  343. package/lib/esm/test/incrementalSchemaLocater/ECSqlQueries.test.js.map +1 -1
  344. package/lib/esm/test/incrementalSchemaLocater/IncrementalLoading.test.js +27 -8
  345. package/lib/esm/test/incrementalSchemaLocater/IncrementalLoading.test.js.map +1 -1
  346. package/lib/esm/test/incrementalSchemaLocater/utils/IModelSchemaLocater.js.map +1 -1
  347. package/lib/esm/test/incrementalSchemaLocater/utils/IncrementalTestHelper.d.ts +4 -1
  348. package/lib/esm/test/incrementalSchemaLocater/utils/IncrementalTestHelper.d.ts.map +1 -1
  349. package/lib/esm/test/incrementalSchemaLocater/utils/IncrementalTestHelper.js +14 -4
  350. package/lib/esm/test/incrementalSchemaLocater/utils/IncrementalTestHelper.js.map +1 -1
  351. package/lib/esm/test/incrementalSchemaLocater/utils/TestSqlSchemaLocater.js.map +1 -1
  352. package/lib/esm/test/index.js.map +1 -1
  353. package/lib/esm/test/misc/DevTools.test.js.map +1 -1
  354. package/lib/esm/test/misc/EntitySubClasses.test.js.map +1 -1
  355. package/lib/esm/test/misc/GeoServices.test.js.map +1 -1
  356. package/lib/esm/test/misc/PromiseMemoizer.test.js.map +1 -1
  357. package/lib/esm/test/native/DgnDbWorker.test.js.map +1 -1
  358. package/lib/esm/test/rpc/response.test.js.map +1 -1
  359. package/lib/esm/test/schema/ClassRegistry.test.js +99 -99
  360. package/lib/esm/test/schema/ClassRegistry.test.js.map +1 -1
  361. package/lib/esm/test/schema/FunctionalDomain.test.js.map +1 -1
  362. package/lib/esm/test/schema/GenericDomain.test.js.map +1 -1
  363. package/lib/esm/test/schema/IModelSchemaContext.test.js.map +1 -1
  364. package/lib/esm/test/sheetindex/SheetIndex.test.js.map +1 -1
  365. package/lib/esm/test/standalone/ChangeMerge.test.js +24 -0
  366. package/lib/esm/test/standalone/ChangeMerge.test.js.map +1 -1
  367. package/lib/esm/test/standalone/ChangesetReader.test.js +124 -124
  368. package/lib/esm/test/standalone/ChangesetReader.test.js.map +1 -1
  369. package/lib/esm/test/standalone/CustomViewState3dCreator.test.js.map +1 -1
  370. package/lib/esm/test/standalone/DisplayStyle.test.js.map +1 -1
  371. package/lib/esm/test/standalone/Drawing.test.js.map +1 -1
  372. package/lib/esm/test/standalone/ElementGraphics.test.js.map +1 -1
  373. package/lib/esm/test/standalone/ElementMesh.test.js.map +1 -1
  374. package/lib/esm/test/standalone/ExportGraphics.test.js +14 -14
  375. package/lib/esm/test/standalone/ExportGraphics.test.js.map +1 -1
  376. package/lib/esm/test/standalone/GeometryChangeEvents.test.js.map +1 -1
  377. package/lib/esm/test/standalone/GeometryStream.test.js.map +1 -1
  378. package/lib/esm/test/standalone/HubMock.test.js.map +1 -1
  379. package/lib/esm/test/standalone/IModelLimits.test.js.map +1 -1
  380. package/lib/esm/test/standalone/IModelWrite.test.js +27 -27
  381. package/lib/esm/test/standalone/IModelWrite.test.js.map +1 -1
  382. package/lib/esm/test/standalone/InlineGeometryPartReferences.test.js.map +1 -1
  383. package/lib/esm/test/standalone/MergeConflict.test.js.map +1 -1
  384. package/lib/esm/test/standalone/NativeAppStorage.test.js.map +1 -1
  385. package/lib/esm/test/standalone/RenderMaterialElement.test.js.map +1 -1
  386. package/lib/esm/test/standalone/RenderTimeline.test.js.map +1 -1
  387. package/lib/esm/test/standalone/SQLiteDb.test.js.map +1 -1
  388. package/lib/esm/test/standalone/SchemaUtils.test.js.map +1 -1
  389. package/lib/esm/test/standalone/SectionDrawing.test.js.map +1 -1
  390. package/lib/esm/test/standalone/ServerBasedLocks.test.js.map +1 -1
  391. package/lib/esm/test/standalone/Setting.test.js.map +1 -1
  392. package/lib/esm/test/standalone/Settings.test.js.map +1 -1
  393. package/lib/esm/test/standalone/SettingsSchemas.test.js.map +1 -1
  394. package/lib/esm/test/standalone/SnapshotDb.test.js.map +1 -1
  395. package/lib/esm/test/standalone/Texture.test.js.map +1 -1
  396. package/lib/esm/test/standalone/TileCache.test.js.map +1 -1
  397. package/lib/esm/test/standalone/TileTree.test.js.map +1 -1
  398. package/lib/esm/test/standalone/TxnManager.test.js.map +1 -1
  399. package/lib/esm/test/standalone/ViewDefinition.test.js.map +1 -1
  400. package/lib/esm/test/standalone/ViewStoreDb.test.js.map +1 -1
  401. package/lib/esm/test/standalone/Workspace.test.js.map +1 -1
  402. package/lib/esm/workspace/Settings.js.map +1 -1
  403. package/lib/esm/workspace/SettingsSchemas.js.map +1 -1
  404. package/lib/esm/workspace/Workspace.js.map +1 -1
  405. package/lib/esm/workspace/WorkspaceEditor.js.map +1 -1
  406. package/package.json +15 -15
@@ -1 +1 @@
1
- {"version":3,"file":"ProjectExtents.test.js","sourceRoot":"","sources":["../../../../src/test/imodel/ProjectExtents.test.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n\nimport { expect } from \"chai\";\nimport { Id64 } from \"@itwin/core-bentley\";\nimport { GeometricElement3dProps, Placement3d } from \"@itwin/core-common\";\nimport { GeometricElement3d, SnapshotDb } from \"../../core-backend\";\nimport { IModelTestUtils } from \"../index\";\n\ndescribe(\"computeProjectExtents\", () => {\n let imodel: SnapshotDb;\n\n before(() => {\n imodel = IModelTestUtils.createSnapshotFromSeed(IModelTestUtils.prepareOutputFile(\"IModel\", \"test.bim\"), IModelTestUtils.resolveAssetFile(\"test.bim\"));\n });\n\n after(() => {\n imodel.close();\n });\n\n it(\"should return requested information\", () => {\n const projectExtents = imodel.projectExtents;\n const args = [undefined, false, true];\n for (const reportExtentsWithOutliers of args) {\n for (const reportOutliers of args) {\n const result = imodel.computeProjectExtents({ reportExtentsWithOutliers, reportOutliers });\n expect(result.extents.isAlmostEqual(projectExtents)).to.be.true;\n\n expect(undefined !== result.extentsWithOutliers).to.equal(true === reportExtentsWithOutliers);\n if (undefined !== result.extentsWithOutliers)\n expect(result.extentsWithOutliers.isAlmostEqual(projectExtents)).to.be.true;\n\n expect(undefined !== result.outliers).to.equal(true === reportOutliers);\n if (undefined !== result.outliers)\n expect(result.outliers.length).to.equal(0);\n }\n }\n });\n\n it(\"should report outliers\", () => {\n const elemProps = imodel.elements.getElementProps<GeometricElement3dProps>({ id: \"0x39\", wantGeometry: true });\n elemProps.id = Id64.invalid;\n const placement = Placement3d.fromJSON(elemProps.placement);\n const originalOrigin = placement.origin.clone();\n const mult = 1000000;\n placement.origin.x *= mult;\n placement.origin.y *= mult;\n placement.origin.z *= mult;\n elemProps.placement = placement;\n elemProps.geom![2].sphere!.radius = 0.000001;\n const newId = imodel.elements.insertElement(elemProps);\n expect(Id64.isValid(newId)).to.be.true;\n imodel.saveChanges();\n\n const newElem = imodel.elements.getElement<GeometricElement3d>(newId);\n expect(newElem).instanceof(GeometricElement3d);\n expect(newElem.placement.origin.x).to.equal(originalOrigin.x * mult);\n expect(newElem.placement.origin.y).to.equal(originalOrigin.y * mult);\n expect(newElem.placement.origin.z).to.equal(originalOrigin.z * mult);\n\n const outlierRange = placement.calculateRange();\n const originalExtents = imodel.projectExtents;\n const extentsWithOutlier = originalExtents.clone();\n extentsWithOutlier.extendRange(outlierRange);\n\n const result = imodel.computeProjectExtents({ reportExtentsWithOutliers: true, reportOutliers: true });\n expect(result.outliers!.length).to.equal(1);\n expect(result.outliers![0]).to.equal(newId);\n expect(result.extents.isAlmostEqual(originalExtents)).to.be.true;\n expect(result.extentsWithOutliers!.isAlmostEqual(originalExtents)).to.be.false;\n expect(result.extentsWithOutliers!.low.isAlmostEqual(extentsWithOutlier.low)).to.be.true;\n expect(result.extentsWithOutliers!.high.isAlmostEqual(extentsWithOutlier.high, 20)).to.be.true;\n });\n});\n"]}
1
+ {"version":3,"file":"ProjectExtents.test.js","sourceRoot":"","sources":["../../../../src/test/imodel/ProjectExtents.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 { expect } from \"chai\";\r\nimport { Id64 } from \"@itwin/core-bentley\";\r\nimport { GeometricElement3dProps, Placement3d } from \"@itwin/core-common\";\r\nimport { GeometricElement3d, SnapshotDb } from \"../../core-backend\";\r\nimport { IModelTestUtils } from \"../index\";\r\n\r\ndescribe(\"computeProjectExtents\", () => {\r\n let imodel: SnapshotDb;\r\n\r\n before(() => {\r\n imodel = IModelTestUtils.createSnapshotFromSeed(IModelTestUtils.prepareOutputFile(\"IModel\", \"test.bim\"), IModelTestUtils.resolveAssetFile(\"test.bim\"));\r\n });\r\n\r\n after(() => {\r\n imodel.close();\r\n });\r\n\r\n it(\"should return requested information\", () => {\r\n const projectExtents = imodel.projectExtents;\r\n const args = [undefined, false, true];\r\n for (const reportExtentsWithOutliers of args) {\r\n for (const reportOutliers of args) {\r\n const result = imodel.computeProjectExtents({ reportExtentsWithOutliers, reportOutliers });\r\n expect(result.extents.isAlmostEqual(projectExtents)).to.be.true;\r\n\r\n expect(undefined !== result.extentsWithOutliers).to.equal(true === reportExtentsWithOutliers);\r\n if (undefined !== result.extentsWithOutliers)\r\n expect(result.extentsWithOutliers.isAlmostEqual(projectExtents)).to.be.true;\r\n\r\n expect(undefined !== result.outliers).to.equal(true === reportOutliers);\r\n if (undefined !== result.outliers)\r\n expect(result.outliers.length).to.equal(0);\r\n }\r\n }\r\n });\r\n\r\n it(\"should report outliers\", () => {\r\n const elemProps = imodel.elements.getElementProps<GeometricElement3dProps>({ id: \"0x39\", wantGeometry: true });\r\n elemProps.id = Id64.invalid;\r\n const placement = Placement3d.fromJSON(elemProps.placement);\r\n const originalOrigin = placement.origin.clone();\r\n const mult = 1000000;\r\n placement.origin.x *= mult;\r\n placement.origin.y *= mult;\r\n placement.origin.z *= mult;\r\n elemProps.placement = placement;\r\n elemProps.geom![2].sphere!.radius = 0.000001;\r\n const newId = imodel.elements.insertElement(elemProps);\r\n expect(Id64.isValid(newId)).to.be.true;\r\n imodel.saveChanges();\r\n\r\n const newElem = imodel.elements.getElement<GeometricElement3d>(newId);\r\n expect(newElem).instanceof(GeometricElement3d);\r\n expect(newElem.placement.origin.x).to.equal(originalOrigin.x * mult);\r\n expect(newElem.placement.origin.y).to.equal(originalOrigin.y * mult);\r\n expect(newElem.placement.origin.z).to.equal(originalOrigin.z * mult);\r\n\r\n const outlierRange = placement.calculateRange();\r\n const originalExtents = imodel.projectExtents;\r\n const extentsWithOutlier = originalExtents.clone();\r\n extentsWithOutlier.extendRange(outlierRange);\r\n\r\n const result = imodel.computeProjectExtents({ reportExtentsWithOutliers: true, reportOutliers: true });\r\n expect(result.outliers!.length).to.equal(1);\r\n expect(result.outliers![0]).to.equal(newId);\r\n expect(result.extents.isAlmostEqual(originalExtents)).to.be.true;\r\n expect(result.extentsWithOutliers!.isAlmostEqual(originalExtents)).to.be.false;\r\n expect(result.extentsWithOutliers!.low.isAlmostEqual(extentsWithOutlier.low)).to.be.true;\r\n expect(result.extentsWithOutliers!.high.isAlmostEqual(extentsWithOutlier.high, 20)).to.be.true;\r\n });\r\n});\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"SchemaXmlImport.test.js","sourceRoot":"","sources":["../../../../src/test/imodel/SchemaXmlImport.test.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\nimport { assert } from \"chai\";\nimport * as fs from \"fs\";\nimport * as path from \"path\";\nimport { PhysicalElement, SnapshotDb } from \"../../core-backend\";\nimport { IModelTestUtils } from \"../IModelTestUtils\";\nimport { Logger, LogLevel } from \"@itwin/core-bentley\";\nimport { KnownTestLocations } from \"../KnownTestLocations\";\nimport { EntityClass } from \"@itwin/ecschema-metadata\";\n\ndescribe(\"Schema XML Import Tests\", () => {\n let imodel: SnapshotDb;\n\n before(() => {\n // initialize logging\n if (false) {\n Logger.initializeToConsole();\n Logger.setLevelDefault(LogLevel.Error);\n }\n const testFileName = IModelTestUtils.prepareOutputFile(\"SchemaXMLImport\", \"SchemaXMLImport.bim\");\n imodel = SnapshotDb.createEmpty(testFileName, { rootSubject: { name: \"SchemaXMLImportTest\" } }); // IModelTestUtils.createSnapshotFromSeed(testFileName, seedFileName);\n assert.exists(imodel);\n });\n\n after(() => {\n if (imodel)\n imodel.close();\n });\n\n it(\"should import schema XML\", async () => {\n const schemaFilePath = path.join(KnownTestLocations.assetsDir, \"Test3.ecschema.xml\");\n const schemaString = fs.readFileSync(schemaFilePath, \"utf8\");\n\n await imodel.importSchemaStrings([schemaString]); // will throw an exception if import fails\n\n const testDomainClass = await imodel.schemaContext.getSchemaItem(\"Test3.Test3Element\", EntityClass);\n assert.isDefined(testDomainClass);\n\n assert.isDefined(testDomainClass?.baseClass);\n\n assert.equal(testDomainClass?.baseClass?.fullName, PhysicalElement.classFullName.replace(\":\", \".\"));\n });\n\n it(\"Schema import for newer ECXml Versions\", async () => {\n const helperFunction = async (imodelDb: SnapshotDb, xmlSchema: string[], importSchema: boolean) => {\n try {\n // ECObjects is expected to throw for schemas that fail to import\n if (importSchema)\n await imodelDb.importSchemaStrings(xmlSchema);\n else\n imodelDb.getSchemaProps(xmlSchema[0]);\n } catch {\n return false;\n }\n return true;\n };\n\n // Incrementing major ECXml version is not supported\n for (const testCase of [`4.1`, `5.10`]) {\n assert(!(await helperFunction(imodel, [`<ECSchema schemaName=\"TestSchema\" alias=\"ts\" version=\"1.0.0\" xmlns=\"http://www.bentley.com/schemas/Bentley.ECXML.${testCase}\"/>`], true)), `Schema ${testCase} import should not have succeeded.`);\n assert(!(await helperFunction(imodel, [`TestSchema`], false)), `Schema ${testCase} test should not have succeeded.`);\n }\n\n // Importing a set of schemas should all fail if any one of them fails\n {\n const schemaXmls = [`<ECSchema schemaName=\"TestSchema1\" alias=\"ts1\" version=\"1.0.0\" xmlns=\"http://www.bentley.com/schemas/Bentley.ECXML.3.2\"/>`,\n `<ECSchema schemaName=\"TestSchema2\" alias=\"ts2\" version=\"1.0.0\" xmlns=\"http://www.bentley.com/schemas/Bentley.ECXML.3.8\"/>`,\n `<ECSchema schemaName=\"TestSchema3\" alias=\"ts3\" version=\"1.0.0\" xmlns=\"http://www.bentley.com/schemas/Bentley.ECXML.4.5\"/>`];\n\n assert(!(await helperFunction(imodel, schemaXmls, true)), `Schema import should not have succeeded.`);\n assert(!(await helperFunction(imodel, [`TestSchema1`], false)), `Schema TestSchema1 import should not have succeeded.`);\n assert(!(await helperFunction(imodel, [`TestSchema2`], false)), `Schema TestSchema2 import should not have succeeded.`);\n assert(!(await helperFunction(imodel, [`TestSchema3`], false)), `Schema TestSchema3 import should not have succeeded.`);\n }\n\n // Schema should be imported successfully\n for (const testCase of [`3.2`, `3.5`]) {\n assert(await helperFunction(imodel, [`<ECSchema schemaName=\"TestSchema\" alias=\"ts\" version=\"1.0.0\" xmlns=\"http://www.bentley.com/schemas/Bentley.ECXML.${testCase}\"/>`], true), `Schema ${testCase} import should have succeeded.`);\n assert(await helperFunction(imodel, [`TestSchema`], false), `Schema ${testCase} test should have succeeded.`);\n }\n });\n});\n"]}
1
+ {"version":3,"file":"SchemaXmlImport.test.js","sourceRoot":"","sources":["../../../../src/test/imodel/SchemaXmlImport.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 fs from \"fs\";\r\nimport * as path from \"path\";\r\nimport { PhysicalElement, SnapshotDb } from \"../../core-backend\";\r\nimport { IModelTestUtils } from \"../IModelTestUtils\";\r\nimport { Logger, LogLevel } from \"@itwin/core-bentley\";\r\nimport { KnownTestLocations } from \"../KnownTestLocations\";\r\nimport { EntityClass } from \"@itwin/ecschema-metadata\";\r\n\r\ndescribe(\"Schema XML Import Tests\", () => {\r\n let imodel: SnapshotDb;\r\n\r\n before(() => {\r\n // initialize logging\r\n if (false) {\r\n Logger.initializeToConsole();\r\n Logger.setLevelDefault(LogLevel.Error);\r\n }\r\n const testFileName = IModelTestUtils.prepareOutputFile(\"SchemaXMLImport\", \"SchemaXMLImport.bim\");\r\n imodel = SnapshotDb.createEmpty(testFileName, { rootSubject: { name: \"SchemaXMLImportTest\" } }); // IModelTestUtils.createSnapshotFromSeed(testFileName, seedFileName);\r\n assert.exists(imodel);\r\n });\r\n\r\n after(() => {\r\n if (imodel)\r\n imodel.close();\r\n });\r\n\r\n it(\"should import schema XML\", async () => {\r\n const schemaFilePath = path.join(KnownTestLocations.assetsDir, \"Test3.ecschema.xml\");\r\n const schemaString = fs.readFileSync(schemaFilePath, \"utf8\");\r\n\r\n await imodel.importSchemaStrings([schemaString]); // will throw an exception if import fails\r\n\r\n const testDomainClass = await imodel.schemaContext.getSchemaItem(\"Test3.Test3Element\", EntityClass);\r\n assert.isDefined(testDomainClass);\r\n\r\n assert.isDefined(testDomainClass?.baseClass);\r\n\r\n assert.equal(testDomainClass?.baseClass?.fullName, PhysicalElement.classFullName.replace(\":\", \".\"));\r\n });\r\n\r\n it(\"Schema import for newer ECXml Versions\", async () => {\r\n const helperFunction = async (imodelDb: SnapshotDb, xmlSchema: string[], importSchema: boolean) => {\r\n try {\r\n // ECObjects is expected to throw for schemas that fail to import\r\n if (importSchema)\r\n await imodelDb.importSchemaStrings(xmlSchema);\r\n else\r\n imodelDb.getSchemaProps(xmlSchema[0]);\r\n } catch {\r\n return false;\r\n }\r\n return true;\r\n };\r\n\r\n // Incrementing major ECXml version is not supported\r\n for (const testCase of [`4.1`, `5.10`]) {\r\n assert(!(await helperFunction(imodel, [`<ECSchema schemaName=\"TestSchema\" alias=\"ts\" version=\"1.0.0\" xmlns=\"http://www.bentley.com/schemas/Bentley.ECXML.${testCase}\"/>`], true)), `Schema ${testCase} import should not have succeeded.`);\r\n assert(!(await helperFunction(imodel, [`TestSchema`], false)), `Schema ${testCase} test should not have succeeded.`);\r\n }\r\n\r\n // Importing a set of schemas should all fail if any one of them fails\r\n {\r\n const schemaXmls = [`<ECSchema schemaName=\"TestSchema1\" alias=\"ts1\" version=\"1.0.0\" xmlns=\"http://www.bentley.com/schemas/Bentley.ECXML.3.2\"/>`,\r\n `<ECSchema schemaName=\"TestSchema2\" alias=\"ts2\" version=\"1.0.0\" xmlns=\"http://www.bentley.com/schemas/Bentley.ECXML.3.8\"/>`,\r\n `<ECSchema schemaName=\"TestSchema3\" alias=\"ts3\" version=\"1.0.0\" xmlns=\"http://www.bentley.com/schemas/Bentley.ECXML.4.5\"/>`];\r\n\r\n assert(!(await helperFunction(imodel, schemaXmls, true)), `Schema import should not have succeeded.`);\r\n assert(!(await helperFunction(imodel, [`TestSchema1`], false)), `Schema TestSchema1 import should not have succeeded.`);\r\n assert(!(await helperFunction(imodel, [`TestSchema2`], false)), `Schema TestSchema2 import should not have succeeded.`);\r\n assert(!(await helperFunction(imodel, [`TestSchema3`], false)), `Schema TestSchema3 import should not have succeeded.`);\r\n }\r\n\r\n // Schema should be imported successfully\r\n for (const testCase of [`3.2`, `3.5`]) {\r\n assert(await helperFunction(imodel, [`<ECSchema schemaName=\"TestSchema\" alias=\"ts\" version=\"1.0.0\" xmlns=\"http://www.bentley.com/schemas/Bentley.ECXML.${testCase}\"/>`], true), `Schema ${testCase} import should have succeeded.`);\r\n assert(await helperFunction(imodel, [`TestSchema`], false), `Schema ${testCase} test should have succeeded.`);\r\n }\r\n });\r\n});\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"ECSqlQueries.test.js","sourceRoot":"","sources":["../../../../src/test/incrementalSchemaLocater/ECSqlQueries.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { AnyPropertyProps, AnySchemaItemProps, ClassProps, RelationshipClassProps, Schema, SchemaItemType, SchemaKey } from \"@itwin/ecschema-metadata\";\nimport { IncrementalTestHelper } from \"./utils/IncrementalTestHelper\";\nimport { expect, use } from \"chai\";\nimport * as deepEqualInAnyOrder from \"deep-equal-in-any-order\";\nimport { TestSqlSchemaLocater } from \"./utils/TestSqlSchemaLocater\";\n\nuse(deepEqualInAnyOrder);\n\nfunction findItem<T extends AnySchemaItemProps>(name: string, rowData: T[]) {\n const item = rowData.find((i: AnySchemaItemProps) => i.name === name);\n if (!item)\n throw new Error(`Could not find schema item '${name}'`);\n return item;\n}\n\nfunction findProperty<T extends AnyPropertyProps>(name: string, rowData: T[]) {\n return rowData.find((i: AnyPropertyProps) => i.name === name);\n}\n\nfunction isECClass(item: AnySchemaItemProps): item is ClassProps {\n return item.schemaItemType === SchemaItemType.EntityClass || item.schemaItemType === SchemaItemType.Mixin || item.schemaItemType === SchemaItemType.RelationshipClass ||\n item.schemaItemType === SchemaItemType.StructClass || item.schemaItemType === SchemaItemType.CustomAttributeClass;\n}\n\nfunction isRelationshipClass(item: AnySchemaItemProps): item is RelationshipClassProps {\n return \"source\" in item && \"target\" in item;\n}\n\ndescribe(\"ECSql query tests\", function () {\n let schemaLocater: TestSqlSchemaLocater;\n\n function validateItem(name: string, itemPropObjects: AnySchemaItemProps[], schema: Schema) {\n const actualJson = findItem(name, itemPropObjects);\n const expectedItem = schema.getItemSync(name);\n const expectedJson = expectedItem!.toJSON();\n\n // The following code exists because some data coming from the database will not match the\n // data from the context due to default values. This is OK as long as the conditions are\n // correct. For instance, schemaItem name will not exist in serialized JSON, but does exist\n // coming from the DB. RelationshipConstraint's AbstractConstraint is set when only one\n // constraint class exists coming from the database, but a serialized Relationship will not\n // contain the abstract constraint. The one constraint is 'assumed' to be the abstract constraint.\n\n expect(actualJson.name).to.equal(expectedItem?.name);\n delete (actualJson as any).name;\n\n if (isECClass(actualJson)) {\n if (expectedJson.schemaItemType === \"Mixin\") {\n expect(actualJson.modifier).to.be.oneOf([undefined, 'Abstract']);\n delete (actualJson as any).modifier;\n } else if ((expectedJson as ClassProps).modifier === undefined) {\n expect(actualJson.modifier).to.be.oneOf([undefined, 'None']);\n delete (actualJson as any).modifier;\n }\n }\n if (isRelationshipClass(actualJson)) {\n // abstract can be set via database, but not via context for 1 constraint class\n // so verify constraint and conditions are correct and delete property\n const expectedRelationship = expectedJson as any as RelationshipClassProps;\n if (actualJson.source.abstractConstraint !== expectedRelationship.source.abstractConstraint) {\n expect(actualJson.source.abstractConstraint).to.equal(expectedRelationship.source.constraintClasses[0]);\n expect(actualJson.source.constraintClasses.length).to.equal(1);\n delete (actualJson.source as any).abstractConstraint;\n }\n if (actualJson.target.abstractConstraint !== expectedRelationship.target.abstractConstraint) {\n expect(actualJson.target.abstractConstraint).to.equal(expectedRelationship.target.constraintClasses[0]);\n expect(actualJson.target.constraintClasses.length).to.equal(1);\n delete (actualJson.target as any).abstractConstraint;\n }\n }\n\n if (actualJson.schemaItemType === SchemaItemType.Format) {\n if (undefined !== (actualJson as any).includeZero && undefined === (expectedJson as any).includeZero) {\n expect((actualJson as any).includeZero).to.equal(true);\n delete (actualJson as any).includeZero;\n }\n if ((actualJson as any).composite && undefined !== (actualJson as any).composite.includeZero && undefined === (expectedJson as any).composite.includeZero) {\n expect((actualJson as any).composite.includeZero).to.equal(true);\n delete (actualJson as any).composite.includeZero;\n }\n if ((actualJson as any).composite && undefined !== (actualJson as any).composite.spacer && undefined === (expectedJson as any).composite.spacer) {\n expect((actualJson as any).composite.spacer).to.equal(\" \");\n delete (actualJson as any).composite.spacer;\n }\n if (undefined !== (actualJson as any).decimalSeparator && undefined === (expectedJson as any).decimalSeparator) {\n expect((actualJson as any).decimalSeparator).to.equal(\".\");\n delete (actualJson as any).decimalSeparator;\n }\n if (undefined !== (actualJson as any).roundFactor && undefined === (expectedJson as any).roundFactor) {\n expect((actualJson as any).roundFactor).to.equal(0);\n delete (actualJson as any).roundFactor;\n }\n if (undefined !== (actualJson as any).showSignOption && undefined === (expectedJson as any).showSignOption) {\n expect((actualJson as any).showSignOption).to.equal(\"OnlyNegative\");\n delete (actualJson as any).showSignOption;\n }\n if (undefined !== (actualJson as any).thousandSeparator && undefined === (expectedJson as any).thousandSeparator) {\n expect((actualJson as any).thousandSeparator).to.equal(\",\");\n delete (actualJson as any).thousandSeparator;\n }\n if (undefined !== (actualJson as any).uomSeparator && undefined === (expectedJson as any).uomSeparator) {\n expect((actualJson as any).uomSeparator).to.equal(\" \");\n delete (actualJson as any).uomSeparator;\n }\n if (undefined !== (actualJson as any).spacer && undefined === (expectedJson as any).spacer) {\n expect((actualJson as any).spacer).to.equal(\" \");\n delete (actualJson as any).spacer;\n }\n if (undefined !== (actualJson as any).formatTraits) {\n (actualJson as any).formatTraits = (actualJson as any).formatTraits.map((trait: string) => {\n return trait.charAt(0).toUpperCase() + trait.slice(1);\n });\n }\n }\n\n expect(actualJson).to.deep.equalInAnyOrder(expectedJson);\n }\n\n this.beforeEach(async () => {\n await IncrementalTestHelper.setup();\n schemaLocater = new TestSqlSchemaLocater(IncrementalTestHelper.iModel);\n });\n\n afterEach(async () => {\n await IncrementalTestHelper.close();\n });\n\n it(\"Schema query, props parsed successfully\", async function () {\n const testKey = new SchemaKey(\"SchemaTest\", 1, 0, 0);\n await IncrementalTestHelper.importSchema(testKey);\n\n const expectedSchema = await IncrementalTestHelper.context.getSchema(testKey);\n if (!expectedSchema)\n throw new Error(`Could not find schema ${testKey.name}`);\n\n const actualSchemaProps = await schemaLocater.getSchemaJson(testKey, IncrementalTestHelper.context);\n const actualSchema = await Schema.fromJson(actualSchemaProps!, IncrementalTestHelper.context);\n\n expect(actualSchema.toJSON()).to.deep.equal(expectedSchema?.toJSON());\n });\n\n it(\"Property query, props parsed successfully\", async function () {\n const testKey = new SchemaKey(\"PropertyTest\", 1, 0, 0);\n await IncrementalTestHelper.importSchema(testKey);\n\n const schema = await IncrementalTestHelper.context.getSchema(testKey);\n if (!schema)\n throw new Error(`Could not find schema ${testKey.name}`);\n\n const classPropsObjects = await schemaLocater.getEntities(testKey.name, IncrementalTestHelper.context);\n const entityOneProps = findItem(\"EntityOne\", classPropsObjects);\n const entityTwoProps = findItem(\"EntityTwo\", classPropsObjects);\n const expectedEntityOne = await schema.getEntityClass(\"EntityOne\");\n const expectedEntityTwo = await schema.getEntityClass(\"EntityTwo\");\n\n const validateProperty = (propertyName: string, actualItem = entityOneProps, expectedItem = expectedEntityOne) => {\n const actualProperty = findProperty(propertyName, actualItem.properties!);\n const expectedProperty = expectedItem?.getPropertySync(propertyName);\n // if maxOccurs is the maximum int value in the context Schema,\n // the property from the DB will not have a value\n if ((expectedProperty as any).maxOccurs === 2147483647) {\n expect((actualProperty as any).maxOccurs).to.be.undefined;\n // set so comparison will pass\n (actualProperty as any).maxOccurs = 2147483647;\n }\n\n expect(actualProperty).to.deep.equal(expectedProperty?.toJSON());\n };\n\n // All but one testable property is in EntityOne\n for (const property of await expectedEntityOne!.getProperties(true)) {\n validateProperty(property.name);\n }\n // Backward direction Navigation property is in EntityTwo\n validateProperty(\"EntityTwoParent\", entityTwoProps, expectedEntityTwo);\n\n });\n\n it(\"Entity query, props parsed successfully\", async function () {\n const testKey = new SchemaKey(\"EntityTest\", 1, 0, 0);\n await IncrementalTestHelper.importSchema(testKey);\n\n const schema = await IncrementalTestHelper.context.getSchema(testKey);\n if (!schema)\n throw new Error(`Could not find schema ${testKey.name}`);\n\n const classPropsObjects = await schemaLocater.getEntities(testKey.name, IncrementalTestHelper.context);\n expect(classPropsObjects.length).to.be.greaterThan(0);\n\n validateItem(\"EntityModifierNone\", classPropsObjects, schema);\n validateItem(\"EntityModifierAbstract\", classPropsObjects, schema);\n validateItem(\"EntityModifierSealed\", classPropsObjects, schema);\n });\n\n it(\"Struct query, props parsed successfully\", async function () {\n const testKey = new SchemaKey(\"StructTest\", 1, 0, 0);\n await IncrementalTestHelper.importSchema(testKey);\n\n const schema = await IncrementalTestHelper.context.getSchema(testKey);\n if (!schema)\n throw new Error(`Could not find schema ${testKey.name}`);\n\n const classPropsObjects = await schemaLocater.getStructs(testKey.name, IncrementalTestHelper.context);\n expect(classPropsObjects.length).to.be.greaterThan(0);\n\n validateItem(\"StructModifierNone\", classPropsObjects, schema);\n validateItem(\"StructModifierAbstract\", classPropsObjects, schema);\n validateItem(\"StructModifierSealed\", classPropsObjects, schema);\n });\n\n it(\"Mixin query, props parsed successfully\", async function () {\n const testKey = new SchemaKey(\"MixinTest\", 1, 0, 0);\n await IncrementalTestHelper.importSchema(testKey);\n\n const schema = await IncrementalTestHelper.context.getSchema(testKey);\n if (!schema)\n throw new Error(`Could not find schema ${testKey.name}`);\n\n const classPropsObjects = await schemaLocater.getMixins(testKey.name, IncrementalTestHelper.context);\n expect(classPropsObjects.length).to.be.greaterThan(0);\n\n validateItem(\"IBaseMixin\", classPropsObjects, schema);\n validateItem(\"ITestMixin\", classPropsObjects, schema);\n });\n\n it(\"Relationship query, props parsed successfully\", async function () {\n const testKey = new SchemaKey(\"RelationshipTest\", 1, 0, 0);\n await IncrementalTestHelper.importSchema(testKey);\n\n const schema = await IncrementalTestHelper.context.getSchema(testKey);\n if (!schema)\n throw new Error(`Could not find schema ${testKey.name}`);\n\n const classPropsObjects = await schemaLocater.getRelationships(testKey.name, IncrementalTestHelper.context);\n expect(classPropsObjects.length).to.be.greaterThan(0);\n\n validateItem(\"OwnerOwnsVehicles\", classPropsObjects, schema);\n validateItem(\"OwnerOwnsCars\", classPropsObjects, schema);\n validateItem(\"OwnerOwnsAmericanCars\", classPropsObjects, schema);\n validateItem(\"PhysicalModelBreaksDownCarElement\", classPropsObjects, schema);\n });\n\n it(\"CustomAttributeClass query, props parsed successfully\", async function () {\n const testKey = new SchemaKey(\"CustomAttributeClassTest\", 1, 0, 0);\n await IncrementalTestHelper.importSchema(testKey);\n\n const schema = await IncrementalTestHelper.context.getSchema(testKey);\n if (!schema)\n throw new Error(`Could not find schema ${testKey.name}`);\n\n const classPropsObjects = await schemaLocater.getCustomAttributeClasses(testKey.name, IncrementalTestHelper.context);\n expect(classPropsObjects.length).to.be.greaterThan(0);\n\n validateItem(\"CustomAttributeModifierNone\", classPropsObjects, schema);\n validateItem(\"CustomAttributeModifierSealed\", classPropsObjects, schema);\n validateItem(\"CustomAttributeModifierAbstract\", classPropsObjects, schema);\n });\n\n it(\"KindOfQuantity query, props parsed successfully\", async function () {\n const testKey = new SchemaKey(\"KindOfQuantityTest\", 1, 0, 0);\n await IncrementalTestHelper.importSchema(testKey);\n\n const schema = await IncrementalTestHelper.context.getSchema(testKey);\n if (!schema)\n throw new Error(`Could not find schema ${testKey.name}`);\n\n const itemPropsObjects = await schemaLocater.getKindOfQuantities(testKey.name, IncrementalTestHelper.context);\n expect(itemPropsObjects.length).to.be.greaterThan(0);\n\n validateItem(\"ACCELERATION\", itemPropsObjects, schema);\n validateItem(\"ANGLE\", itemPropsObjects, schema);\n });\n\n it(\"PropertyCategory query, props parsed successfully\", async function () {\n const testKey = new SchemaKey(\"PropertyCategoryTest\", 1, 0, 0);\n await IncrementalTestHelper.importSchema(testKey);\n\n const schema = await IncrementalTestHelper.context.getSchema(testKey);\n if (!schema)\n throw new Error(`Could not find schema ${testKey.name}`);\n\n const itemPropsObjects = await schemaLocater.getPropertyCategories(testKey.name, IncrementalTestHelper.context);\n expect(itemPropsObjects.length).to.be.greaterThan(0);\n\n validateItem(\"PropertyCategory1\", itemPropsObjects, schema);\n validateItem(\"PropertyCategory2\", itemPropsObjects, schema);\n });\n\n it(\"Enumeration query, props parsed successfully\", async function () {\n const testKey = new SchemaKey(\"EnumerationTest\", 1, 0, 0);\n await IncrementalTestHelper.importSchema(testKey);\n\n const schema = await IncrementalTestHelper.context.getSchema(testKey);\n if (!schema)\n throw new Error(`Could not find schema ${testKey.name}`);\n\n const itemPropsObjects = await schemaLocater.getEnumerations(testKey.name, IncrementalTestHelper.context);\n expect(itemPropsObjects.length).to.be.greaterThan(0);\n\n validateItem(\"IntEnumeration\", itemPropsObjects, schema);\n validateItem(\"StringEnumeration\", itemPropsObjects, schema);\n });\n\n it(\"Unit query, props parsed successfully\", async function () {\n const testKey = new SchemaKey(\"UnitTest\", 1, 0, 0);\n await IncrementalTestHelper.importSchema(testKey);\n\n const schema = await IncrementalTestHelper.context.getSchema(testKey);\n if (!schema)\n throw new Error(`Could not find schema ${testKey.name}`);\n\n const itemPropsObjects = await schemaLocater.getUnits(testKey.name, IncrementalTestHelper.context);\n expect(itemPropsObjects.length).to.be.greaterThan(0);\n\n validateItem(\"LITRE\", itemPropsObjects, schema);\n validateItem(\"GALLON\", itemPropsObjects, schema);\n validateItem(\"ACRE\", itemPropsObjects, schema);\n validateItem(\"FAHRENHEIT\", itemPropsObjects, schema);\n });\n\n it(\"InvertedUnit query, props parsed successfully\", async function () {\n const testKey = new SchemaKey(\"InvertedUnitTest\", 1, 0, 0);\n await IncrementalTestHelper.importSchema(testKey);\n\n const schema = await IncrementalTestHelper.context.getSchema(testKey);\n if (!schema)\n throw new Error(`Could not find schema ${testKey.name}`);\n\n const itemPropsObjects = await schemaLocater.getInvertedUnits(testKey.name, IncrementalTestHelper.context);\n expect(itemPropsObjects.length).to.be.greaterThan(0);\n\n validateItem(\"FT_HORIZONTAL_PER_FT_VERTICAL\", itemPropsObjects, schema);\n });\n\n it(\"UnitSystem query, props parsed successfully\", async function () {\n // There's a UnitSystem in there.\n const testKey = new SchemaKey(\"InvertedUnitTest\", 1, 0, 0);\n await IncrementalTestHelper.importSchema(testKey);\n\n const schema = await IncrementalTestHelper.context.getSchema(testKey);\n if (!schema)\n throw new Error(`Could not find schema ${testKey.name}`);\n\n const itemPropsObjects = await schemaLocater.getUnitSystems(testKey.name, IncrementalTestHelper.context);\n expect(itemPropsObjects.length).to.be.greaterThan(0);\n\n validateItem(\"USCUSTOM\", itemPropsObjects, schema);\n });\n\n it(\"Constant query, props parsed successfully\", async function () {\n // There's a UnitSystem in there.\n const testKey = new SchemaKey(\"ConstantTest\", 1, 0, 0);\n await IncrementalTestHelper.importSchema(testKey);\n\n const schema = await IncrementalTestHelper.context.getSchema(testKey);\n if (!schema)\n throw new Error(`Could not find schema ${testKey.name}`);\n\n const itemPropsObjects = await schemaLocater.getConstants(testKey.name, IncrementalTestHelper.context);\n expect(itemPropsObjects.length).to.be.greaterThan(0);\n\n validateItem(\"KILO\", itemPropsObjects, schema);\n validateItem(\"HALF_PI\", itemPropsObjects, schema);\n });\n\n it(\"Phenomenon query, props parsed successfully\", async function () {\n // There's a Phenomenon in there.\n const testKey = new SchemaKey(\"ConstantTest\", 1, 0, 0);\n await IncrementalTestHelper.importSchema(testKey);\n\n const schema = await IncrementalTestHelper.context.getSchema(testKey);\n if (!schema)\n throw new Error(`Could not find schema ${testKey.name}`);\n\n const itemPropsObjects = await schemaLocater.getPhenomenon(testKey.name, IncrementalTestHelper.context);\n expect(itemPropsObjects.length).to.be.greaterThan(0);\n\n validateItem(\"NUMBER\", itemPropsObjects, schema);\n validateItem(\"LENGTH_RATIO\", itemPropsObjects, schema);\n });\n\n it(\"Format Schema parses successfully\", async function () {\n // Using installed Formats schema\n const testKey = new SchemaKey(\"Formats\", 1, 0, 0);\n await IncrementalTestHelper.importSchema(testKey);\n\n const schema = await IncrementalTestHelper.context.getSchema(testKey);\n if (!schema)\n throw new Error(`Could not find schema ${testKey.name}`);\n\n const itemPropsObjects = await schemaLocater.getFormats(testKey.name, IncrementalTestHelper.context);\n expect(itemPropsObjects.length).to.be.greaterThan(0);\n\n for (const props of itemPropsObjects) {\n validateItem(props.name!, itemPropsObjects, schema);\n }\n });\n\n it(\"Comprehensive Format parses successfully\", async function () {\n const testKey = new SchemaKey(\"FormatTest\", 1, 0, 0);\n await IncrementalTestHelper.importSchema(testKey);\n\n const schema = await IncrementalTestHelper.context.getSchema(testKey);\n if (!schema)\n throw new Error(`Could not find schema ${testKey.name}`);\n\n const itemPropsObjects = await schemaLocater.getFormats(testKey.name, IncrementalTestHelper.context);\n expect(itemPropsObjects.length).to.be.greaterThan(0);\n\n for (const props of itemPropsObjects) {\n validateItem(props.name!, itemPropsObjects, schema);\n }\n });\n\n it(\"CustomAttribute instances parse successfully\", async function () {\n const testKey = new SchemaKey(\"CustomAttributeInstanceTest\", 1, 0, 0);\n await IncrementalTestHelper.importSchema(testKey);\n\n const schema = await IncrementalTestHelper.context.getSchema(testKey);\n if (!schema)\n throw new Error(`Could not find schema ${testKey.name}`);\n\n const itemPropsObjects = await schemaLocater.getStructs(testKey.name, IncrementalTestHelper.context);\n expect(itemPropsObjects.length).to.be.greaterThan(0);\n\n for (const props of itemPropsObjects) {\n validateItem(props.name!, itemPropsObjects, schema);\n }\n });\n});"]}
1
+ {"version":3,"file":"ECSqlQueries.test.js","sourceRoot":"","sources":["../../../../src/test/incrementalSchemaLocater/ECSqlQueries.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { AnyPropertyProps, AnySchemaItemProps, ClassProps, RelationshipClassProps, Schema, SchemaItemType, SchemaKey } from \"@itwin/ecschema-metadata\";\r\nimport { IncrementalTestHelper } from \"./utils/IncrementalTestHelper\";\r\nimport { expect, use } from \"chai\";\r\nimport * as deepEqualInAnyOrder from \"deep-equal-in-any-order\";\r\nimport { TestSqlSchemaLocater } from \"./utils/TestSqlSchemaLocater\";\r\n\r\nuse(deepEqualInAnyOrder);\r\n\r\nfunction findItem<T extends AnySchemaItemProps>(name: string, rowData: T[]) {\r\n const item = rowData.find((i: AnySchemaItemProps) => i.name === name);\r\n if (!item)\r\n throw new Error(`Could not find schema item '${name}'`);\r\n return item;\r\n}\r\n\r\nfunction findProperty<T extends AnyPropertyProps>(name: string, rowData: T[]) {\r\n return rowData.find((i: AnyPropertyProps) => i.name === name);\r\n}\r\n\r\nfunction isECClass(item: AnySchemaItemProps): item is ClassProps {\r\n return item.schemaItemType === SchemaItemType.EntityClass || item.schemaItemType === SchemaItemType.Mixin || item.schemaItemType === SchemaItemType.RelationshipClass ||\r\n item.schemaItemType === SchemaItemType.StructClass || item.schemaItemType === SchemaItemType.CustomAttributeClass;\r\n}\r\n\r\nfunction isRelationshipClass(item: AnySchemaItemProps): item is RelationshipClassProps {\r\n return \"source\" in item && \"target\" in item;\r\n}\r\n\r\ndescribe(\"ECSql query tests\", function () {\r\n let schemaLocater: TestSqlSchemaLocater;\r\n\r\n function validateItem(name: string, itemPropObjects: AnySchemaItemProps[], schema: Schema) {\r\n const actualJson = findItem(name, itemPropObjects);\r\n const expectedItem = schema.getItemSync(name);\r\n const expectedJson = expectedItem!.toJSON();\r\n\r\n // The following code exists because some data coming from the database will not match the\r\n // data from the context due to default values. This is OK as long as the conditions are\r\n // correct. For instance, schemaItem name will not exist in serialized JSON, but does exist\r\n // coming from the DB. RelationshipConstraint's AbstractConstraint is set when only one\r\n // constraint class exists coming from the database, but a serialized Relationship will not\r\n // contain the abstract constraint. The one constraint is 'assumed' to be the abstract constraint.\r\n\r\n expect(actualJson.name).to.equal(expectedItem?.name);\r\n delete (actualJson as any).name;\r\n\r\n if (isECClass(actualJson)) {\r\n if (expectedJson.schemaItemType === \"Mixin\") {\r\n expect(actualJson.modifier).to.be.oneOf([undefined, 'Abstract']);\r\n delete (actualJson as any).modifier;\r\n } else if ((expectedJson as ClassProps).modifier === undefined) {\r\n expect(actualJson.modifier).to.be.oneOf([undefined, 'None']);\r\n delete (actualJson as any).modifier;\r\n }\r\n }\r\n if (isRelationshipClass(actualJson)) {\r\n // abstract can be set via database, but not via context for 1 constraint class\r\n // so verify constraint and conditions are correct and delete property\r\n const expectedRelationship = expectedJson as any as RelationshipClassProps;\r\n if (actualJson.source.abstractConstraint !== expectedRelationship.source.abstractConstraint) {\r\n expect(actualJson.source.abstractConstraint).to.equal(expectedRelationship.source.constraintClasses[0]);\r\n expect(actualJson.source.constraintClasses.length).to.equal(1);\r\n delete (actualJson.source as any).abstractConstraint;\r\n }\r\n if (actualJson.target.abstractConstraint !== expectedRelationship.target.abstractConstraint) {\r\n expect(actualJson.target.abstractConstraint).to.equal(expectedRelationship.target.constraintClasses[0]);\r\n expect(actualJson.target.constraintClasses.length).to.equal(1);\r\n delete (actualJson.target as any).abstractConstraint;\r\n }\r\n }\r\n\r\n if (actualJson.schemaItemType === SchemaItemType.Format) {\r\n if (undefined !== (actualJson as any).includeZero && undefined === (expectedJson as any).includeZero) {\r\n expect((actualJson as any).includeZero).to.equal(true);\r\n delete (actualJson as any).includeZero;\r\n }\r\n if ((actualJson as any).composite && undefined !== (actualJson as any).composite.includeZero && undefined === (expectedJson as any).composite.includeZero) {\r\n expect((actualJson as any).composite.includeZero).to.equal(true);\r\n delete (actualJson as any).composite.includeZero;\r\n }\r\n if ((actualJson as any).composite && undefined !== (actualJson as any).composite.spacer && undefined === (expectedJson as any).composite.spacer) {\r\n expect((actualJson as any).composite.spacer).to.equal(\" \");\r\n delete (actualJson as any).composite.spacer;\r\n }\r\n if (undefined !== (actualJson as any).decimalSeparator && undefined === (expectedJson as any).decimalSeparator) {\r\n expect((actualJson as any).decimalSeparator).to.equal(\".\");\r\n delete (actualJson as any).decimalSeparator;\r\n }\r\n if (undefined !== (actualJson as any).roundFactor && undefined === (expectedJson as any).roundFactor) {\r\n expect((actualJson as any).roundFactor).to.equal(0);\r\n delete (actualJson as any).roundFactor;\r\n }\r\n if (undefined !== (actualJson as any).showSignOption && undefined === (expectedJson as any).showSignOption) {\r\n expect((actualJson as any).showSignOption).to.equal(\"OnlyNegative\");\r\n delete (actualJson as any).showSignOption;\r\n }\r\n if (undefined !== (actualJson as any).thousandSeparator && undefined === (expectedJson as any).thousandSeparator) {\r\n expect((actualJson as any).thousandSeparator).to.equal(\",\");\r\n delete (actualJson as any).thousandSeparator;\r\n }\r\n if (undefined !== (actualJson as any).uomSeparator && undefined === (expectedJson as any).uomSeparator) {\r\n expect((actualJson as any).uomSeparator).to.equal(\" \");\r\n delete (actualJson as any).uomSeparator;\r\n }\r\n if (undefined !== (actualJson as any).spacer && undefined === (expectedJson as any).spacer) {\r\n expect((actualJson as any).spacer).to.equal(\" \");\r\n delete (actualJson as any).spacer;\r\n }\r\n if (undefined !== (actualJson as any).formatTraits) {\r\n (actualJson as any).formatTraits = (actualJson as any).formatTraits.map((trait: string) => {\r\n return trait.charAt(0).toUpperCase() + trait.slice(1);\r\n });\r\n }\r\n }\r\n\r\n expect(actualJson).to.deep.equalInAnyOrder(expectedJson);\r\n }\r\n\r\n this.beforeEach(async () => {\r\n await IncrementalTestHelper.setup();\r\n schemaLocater = new TestSqlSchemaLocater(IncrementalTestHelper.iModel);\r\n });\r\n\r\n afterEach(async () => {\r\n await IncrementalTestHelper.close();\r\n });\r\n\r\n it(\"Schema query, props parsed successfully\", async function () {\r\n const testKey = new SchemaKey(\"SchemaTest\", 1, 0, 0);\r\n await IncrementalTestHelper.importSchema(testKey);\r\n\r\n const expectedSchema = await IncrementalTestHelper.context.getSchema(testKey);\r\n if (!expectedSchema)\r\n throw new Error(`Could not find schema ${testKey.name}`);\r\n\r\n const actualSchemaProps = await schemaLocater.getSchemaJson(testKey, IncrementalTestHelper.context);\r\n const actualSchema = await Schema.fromJson(actualSchemaProps!, IncrementalTestHelper.context);\r\n\r\n expect(actualSchema.toJSON()).to.deep.equal(expectedSchema?.toJSON());\r\n });\r\n\r\n it(\"Property query, props parsed successfully\", async function () {\r\n const testKey = new SchemaKey(\"PropertyTest\", 1, 0, 0);\r\n await IncrementalTestHelper.importSchema(testKey);\r\n\r\n const schema = await IncrementalTestHelper.context.getSchema(testKey);\r\n if (!schema)\r\n throw new Error(`Could not find schema ${testKey.name}`);\r\n\r\n const classPropsObjects = await schemaLocater.getEntities(testKey.name, IncrementalTestHelper.context);\r\n const entityOneProps = findItem(\"EntityOne\", classPropsObjects);\r\n const entityTwoProps = findItem(\"EntityTwo\", classPropsObjects);\r\n const expectedEntityOne = await schema.getEntityClass(\"EntityOne\");\r\n const expectedEntityTwo = await schema.getEntityClass(\"EntityTwo\");\r\n\r\n const validateProperty = (propertyName: string, actualItem = entityOneProps, expectedItem = expectedEntityOne) => {\r\n const actualProperty = findProperty(propertyName, actualItem.properties!);\r\n const expectedProperty = expectedItem?.getPropertySync(propertyName);\r\n // if maxOccurs is the maximum int value in the context Schema,\r\n // the property from the DB will not have a value\r\n if ((expectedProperty as any).maxOccurs === 2147483647) {\r\n expect((actualProperty as any).maxOccurs).to.be.undefined;\r\n // set so comparison will pass\r\n (actualProperty as any).maxOccurs = 2147483647;\r\n }\r\n\r\n expect(actualProperty).to.deep.equal(expectedProperty?.toJSON());\r\n };\r\n\r\n // All but one testable property is in EntityOne\r\n for (const property of await expectedEntityOne!.getProperties(true)) {\r\n validateProperty(property.name);\r\n }\r\n // Backward direction Navigation property is in EntityTwo\r\n validateProperty(\"EntityTwoParent\", entityTwoProps, expectedEntityTwo);\r\n\r\n });\r\n\r\n it(\"Entity query, props parsed successfully\", async function () {\r\n const testKey = new SchemaKey(\"EntityTest\", 1, 0, 0);\r\n await IncrementalTestHelper.importSchema(testKey);\r\n\r\n const schema = await IncrementalTestHelper.context.getSchema(testKey);\r\n if (!schema)\r\n throw new Error(`Could not find schema ${testKey.name}`);\r\n\r\n const classPropsObjects = await schemaLocater.getEntities(testKey.name, IncrementalTestHelper.context);\r\n expect(classPropsObjects.length).to.be.greaterThan(0);\r\n\r\n validateItem(\"EntityModifierNone\", classPropsObjects, schema);\r\n validateItem(\"EntityModifierAbstract\", classPropsObjects, schema);\r\n validateItem(\"EntityModifierSealed\", classPropsObjects, schema);\r\n });\r\n\r\n it(\"Struct query, props parsed successfully\", async function () {\r\n const testKey = new SchemaKey(\"StructTest\", 1, 0, 0);\r\n await IncrementalTestHelper.importSchema(testKey);\r\n\r\n const schema = await IncrementalTestHelper.context.getSchema(testKey);\r\n if (!schema)\r\n throw new Error(`Could not find schema ${testKey.name}`);\r\n\r\n const classPropsObjects = await schemaLocater.getStructs(testKey.name, IncrementalTestHelper.context);\r\n expect(classPropsObjects.length).to.be.greaterThan(0);\r\n\r\n validateItem(\"StructModifierNone\", classPropsObjects, schema);\r\n validateItem(\"StructModifierAbstract\", classPropsObjects, schema);\r\n validateItem(\"StructModifierSealed\", classPropsObjects, schema);\r\n });\r\n\r\n it(\"Mixin query, props parsed successfully\", async function () {\r\n const testKey = new SchemaKey(\"MixinTest\", 1, 0, 0);\r\n await IncrementalTestHelper.importSchema(testKey);\r\n\r\n const schema = await IncrementalTestHelper.context.getSchema(testKey);\r\n if (!schema)\r\n throw new Error(`Could not find schema ${testKey.name}`);\r\n\r\n const classPropsObjects = await schemaLocater.getMixins(testKey.name, IncrementalTestHelper.context);\r\n expect(classPropsObjects.length).to.be.greaterThan(0);\r\n\r\n validateItem(\"IBaseMixin\", classPropsObjects, schema);\r\n validateItem(\"ITestMixin\", classPropsObjects, schema);\r\n });\r\n\r\n it(\"Relationship query, props parsed successfully\", async function () {\r\n const testKey = new SchemaKey(\"RelationshipTest\", 1, 0, 0);\r\n await IncrementalTestHelper.importSchema(testKey);\r\n\r\n const schema = await IncrementalTestHelper.context.getSchema(testKey);\r\n if (!schema)\r\n throw new Error(`Could not find schema ${testKey.name}`);\r\n\r\n const classPropsObjects = await schemaLocater.getRelationships(testKey.name, IncrementalTestHelper.context);\r\n expect(classPropsObjects.length).to.be.greaterThan(0);\r\n\r\n validateItem(\"OwnerOwnsVehicles\", classPropsObjects, schema);\r\n validateItem(\"OwnerOwnsCars\", classPropsObjects, schema);\r\n validateItem(\"OwnerOwnsAmericanCars\", classPropsObjects, schema);\r\n validateItem(\"PhysicalModelBreaksDownCarElement\", classPropsObjects, schema);\r\n });\r\n\r\n it(\"CustomAttributeClass query, props parsed successfully\", async function () {\r\n const testKey = new SchemaKey(\"CustomAttributeClassTest\", 1, 0, 0);\r\n await IncrementalTestHelper.importSchema(testKey);\r\n\r\n const schema = await IncrementalTestHelper.context.getSchema(testKey);\r\n if (!schema)\r\n throw new Error(`Could not find schema ${testKey.name}`);\r\n\r\n const classPropsObjects = await schemaLocater.getCustomAttributeClasses(testKey.name, IncrementalTestHelper.context);\r\n expect(classPropsObjects.length).to.be.greaterThan(0);\r\n\r\n validateItem(\"CustomAttributeModifierNone\", classPropsObjects, schema);\r\n validateItem(\"CustomAttributeModifierSealed\", classPropsObjects, schema);\r\n validateItem(\"CustomAttributeModifierAbstract\", classPropsObjects, schema);\r\n });\r\n\r\n it(\"KindOfQuantity query, props parsed successfully\", async function () {\r\n const testKey = new SchemaKey(\"KindOfQuantityTest\", 1, 0, 0);\r\n await IncrementalTestHelper.importSchema(testKey);\r\n\r\n const schema = await IncrementalTestHelper.context.getSchema(testKey);\r\n if (!schema)\r\n throw new Error(`Could not find schema ${testKey.name}`);\r\n\r\n const itemPropsObjects = await schemaLocater.getKindOfQuantities(testKey.name, IncrementalTestHelper.context);\r\n expect(itemPropsObjects.length).to.be.greaterThan(0);\r\n\r\n validateItem(\"ACCELERATION\", itemPropsObjects, schema);\r\n validateItem(\"ANGLE\", itemPropsObjects, schema);\r\n });\r\n\r\n it(\"PropertyCategory query, props parsed successfully\", async function () {\r\n const testKey = new SchemaKey(\"PropertyCategoryTest\", 1, 0, 0);\r\n await IncrementalTestHelper.importSchema(testKey);\r\n\r\n const schema = await IncrementalTestHelper.context.getSchema(testKey);\r\n if (!schema)\r\n throw new Error(`Could not find schema ${testKey.name}`);\r\n\r\n const itemPropsObjects = await schemaLocater.getPropertyCategories(testKey.name, IncrementalTestHelper.context);\r\n expect(itemPropsObjects.length).to.be.greaterThan(0);\r\n\r\n validateItem(\"PropertyCategory1\", itemPropsObjects, schema);\r\n validateItem(\"PropertyCategory2\", itemPropsObjects, schema);\r\n });\r\n\r\n it(\"Enumeration query, props parsed successfully\", async function () {\r\n const testKey = new SchemaKey(\"EnumerationTest\", 1, 0, 0);\r\n await IncrementalTestHelper.importSchema(testKey);\r\n\r\n const schema = await IncrementalTestHelper.context.getSchema(testKey);\r\n if (!schema)\r\n throw new Error(`Could not find schema ${testKey.name}`);\r\n\r\n const itemPropsObjects = await schemaLocater.getEnumerations(testKey.name, IncrementalTestHelper.context);\r\n expect(itemPropsObjects.length).to.be.greaterThan(0);\r\n\r\n validateItem(\"IntEnumeration\", itemPropsObjects, schema);\r\n validateItem(\"StringEnumeration\", itemPropsObjects, schema);\r\n });\r\n\r\n it(\"Unit query, props parsed successfully\", async function () {\r\n const testKey = new SchemaKey(\"UnitTest\", 1, 0, 0);\r\n await IncrementalTestHelper.importSchema(testKey);\r\n\r\n const schema = await IncrementalTestHelper.context.getSchema(testKey);\r\n if (!schema)\r\n throw new Error(`Could not find schema ${testKey.name}`);\r\n\r\n const itemPropsObjects = await schemaLocater.getUnits(testKey.name, IncrementalTestHelper.context);\r\n expect(itemPropsObjects.length).to.be.greaterThan(0);\r\n\r\n validateItem(\"LITRE\", itemPropsObjects, schema);\r\n validateItem(\"GALLON\", itemPropsObjects, schema);\r\n validateItem(\"ACRE\", itemPropsObjects, schema);\r\n validateItem(\"FAHRENHEIT\", itemPropsObjects, schema);\r\n });\r\n\r\n it(\"InvertedUnit query, props parsed successfully\", async function () {\r\n const testKey = new SchemaKey(\"InvertedUnitTest\", 1, 0, 0);\r\n await IncrementalTestHelper.importSchema(testKey);\r\n\r\n const schema = await IncrementalTestHelper.context.getSchema(testKey);\r\n if (!schema)\r\n throw new Error(`Could not find schema ${testKey.name}`);\r\n\r\n const itemPropsObjects = await schemaLocater.getInvertedUnits(testKey.name, IncrementalTestHelper.context);\r\n expect(itemPropsObjects.length).to.be.greaterThan(0);\r\n\r\n validateItem(\"FT_HORIZONTAL_PER_FT_VERTICAL\", itemPropsObjects, schema);\r\n });\r\n\r\n it(\"UnitSystem query, props parsed successfully\", async function () {\r\n // There's a UnitSystem in there.\r\n const testKey = new SchemaKey(\"InvertedUnitTest\", 1, 0, 0);\r\n await IncrementalTestHelper.importSchema(testKey);\r\n\r\n const schema = await IncrementalTestHelper.context.getSchema(testKey);\r\n if (!schema)\r\n throw new Error(`Could not find schema ${testKey.name}`);\r\n\r\n const itemPropsObjects = await schemaLocater.getUnitSystems(testKey.name, IncrementalTestHelper.context);\r\n expect(itemPropsObjects.length).to.be.greaterThan(0);\r\n\r\n validateItem(\"USCUSTOM\", itemPropsObjects, schema);\r\n });\r\n\r\n it(\"Constant query, props parsed successfully\", async function () {\r\n // There's a UnitSystem in there.\r\n const testKey = new SchemaKey(\"ConstantTest\", 1, 0, 0);\r\n await IncrementalTestHelper.importSchema(testKey);\r\n\r\n const schema = await IncrementalTestHelper.context.getSchema(testKey);\r\n if (!schema)\r\n throw new Error(`Could not find schema ${testKey.name}`);\r\n\r\n const itemPropsObjects = await schemaLocater.getConstants(testKey.name, IncrementalTestHelper.context);\r\n expect(itemPropsObjects.length).to.be.greaterThan(0);\r\n\r\n validateItem(\"KILO\", itemPropsObjects, schema);\r\n validateItem(\"HALF_PI\", itemPropsObjects, schema);\r\n });\r\n\r\n it(\"Phenomenon query, props parsed successfully\", async function () {\r\n // There's a Phenomenon in there.\r\n const testKey = new SchemaKey(\"ConstantTest\", 1, 0, 0);\r\n await IncrementalTestHelper.importSchema(testKey);\r\n\r\n const schema = await IncrementalTestHelper.context.getSchema(testKey);\r\n if (!schema)\r\n throw new Error(`Could not find schema ${testKey.name}`);\r\n\r\n const itemPropsObjects = await schemaLocater.getPhenomenon(testKey.name, IncrementalTestHelper.context);\r\n expect(itemPropsObjects.length).to.be.greaterThan(0);\r\n\r\n validateItem(\"NUMBER\", itemPropsObjects, schema);\r\n validateItem(\"LENGTH_RATIO\", itemPropsObjects, schema);\r\n });\r\n\r\n it(\"Format Schema parses successfully\", async function () {\r\n // Using installed Formats schema\r\n const testKey = new SchemaKey(\"Formats\", 1, 0, 0);\r\n await IncrementalTestHelper.importSchema(testKey);\r\n\r\n const schema = await IncrementalTestHelper.context.getSchema(testKey);\r\n if (!schema)\r\n throw new Error(`Could not find schema ${testKey.name}`);\r\n\r\n const itemPropsObjects = await schemaLocater.getFormats(testKey.name, IncrementalTestHelper.context);\r\n expect(itemPropsObjects.length).to.be.greaterThan(0);\r\n\r\n for (const props of itemPropsObjects) {\r\n validateItem(props.name!, itemPropsObjects, schema);\r\n }\r\n });\r\n\r\n it(\"Comprehensive Format parses successfully\", async function () {\r\n const testKey = new SchemaKey(\"FormatTest\", 1, 0, 0);\r\n await IncrementalTestHelper.importSchema(testKey);\r\n\r\n const schema = await IncrementalTestHelper.context.getSchema(testKey);\r\n if (!schema)\r\n throw new Error(`Could not find schema ${testKey.name}`);\r\n\r\n const itemPropsObjects = await schemaLocater.getFormats(testKey.name, IncrementalTestHelper.context);\r\n expect(itemPropsObjects.length).to.be.greaterThan(0);\r\n\r\n for (const props of itemPropsObjects) {\r\n validateItem(props.name!, itemPropsObjects, schema);\r\n }\r\n });\r\n\r\n it(\"CustomAttribute instances parse successfully\", async function () {\r\n const testKey = new SchemaKey(\"CustomAttributeInstanceTest\", 1, 0, 0);\r\n await IncrementalTestHelper.importSchema(testKey);\r\n\r\n const schema = await IncrementalTestHelper.context.getSchema(testKey);\r\n if (!schema)\r\n throw new Error(`Could not find schema ${testKey.name}`);\r\n\r\n const itemPropsObjects = await schemaLocater.getStructs(testKey.name, IncrementalTestHelper.context);\r\n expect(itemPropsObjects.length).to.be.greaterThan(0);\r\n\r\n for (const props of itemPropsObjects) {\r\n validateItem(props.name!, itemPropsObjects, schema);\r\n }\r\n });\r\n});"]}
@@ -3,9 +3,9 @@ import { expect } from "chai";
3
3
  import * as chai from "chai";
4
4
  import * as chaiAsPromised from "chai-as-promised";
5
5
  import { IModelIncrementalSchemaLocater } from "../../IModelIncrementalSchemaLocater";
6
+ import { IncrementalTestHelper } from "./utils/IncrementalTestHelper";
6
7
  import oldConfiguration from "../assets/IncrementalSchemaLocater/configs/old.config";
7
8
  import simpleConfiguration from "../assets/IncrementalSchemaLocater/configs/simple.config";
8
- import { IncrementalTestHelper } from "./utils/IncrementalTestHelper";
9
9
  chai.use(chaiAsPromised);
10
10
  function parseSchemaItemKey(itemKey) {
11
11
  const [schemaName, itemName] = SchemaItem.parseFullName(itemKey);
@@ -128,9 +128,7 @@ describe("Incremental Schema Loading", function () {
128
128
  }
129
129
  });
130
130
  it("Get Schema full schema stack (incremental - backend)", async () => {
131
- const locater = new IModelIncrementalSchemaLocater(IncrementalTestHelper.iModel);
132
- const schemaContext = new SchemaContext();
133
- schemaContext.addLocater(locater);
131
+ const schemaContext = IncrementalTestHelper.iModel.schemaContext;
134
132
  const schema = await schemaContext.getSchema(testSchemaKey);
135
133
  expect(schema).to.be.not.undefined;
136
134
  expect(schema).to.have.property("name", testSchemaKey.name);
@@ -167,7 +165,7 @@ describe("Incremental Schema Loading", function () {
167
165
  return SchemaKey.parseString(schemaFullName);
168
166
  };
169
167
  before("Setup", async function () {
170
- await IncrementalTestHelper.setup(oldConfiguration.bimFile);
168
+ await IncrementalTestHelper.setup({ bimName: oldConfiguration.bimFile });
171
169
  testSchemaConfiguration = oldConfiguration.schemas[0];
172
170
  testSchemaKey = await resolveSchemaKey(testSchemaConfiguration.name);
173
171
  });
@@ -175,9 +173,7 @@ describe("Incremental Schema Loading", function () {
175
173
  await IncrementalTestHelper.close();
176
174
  });
177
175
  it("Incremental Loading still succeeds.", async () => {
178
- const locater = new IModelIncrementalSchemaLocater(IncrementalTestHelper.iModel);
179
- const schemaContext = new SchemaContext();
180
- schemaContext.addLocater(locater);
176
+ const schemaContext = IncrementalTestHelper.iModel.schemaContext;
181
177
  const schema = await schemaContext.getSchema(testSchemaKey);
182
178
  expect(schema).to.be.not.undefined;
183
179
  expect(schema).to.have.property("name", testSchemaKey.name);
@@ -203,5 +199,28 @@ describe("Incremental Schema Loading", function () {
203
199
  }
204
200
  });
205
201
  });
202
+ describe("Test Incremental Loading setup", () => {
203
+ afterEach(async () => {
204
+ await IncrementalTestHelper.close();
205
+ });
206
+ it("schema context should not have an instance of incremental schema locater if loading is disabled", async () => {
207
+ await IncrementalTestHelper.setup({ disableSchemaLoading: true });
208
+ const locaters = IncrementalTestHelper.iModel.schemaContext.locaters;
209
+ const incrementalLocater = locaters.find((locater) => locater instanceof IModelIncrementalSchemaLocater);
210
+ expect(incrementalLocater).to.be.undefined;
211
+ });
212
+ it("schema context should not have an instance of incremental schema locater if loading is not specified", async () => {
213
+ await IncrementalTestHelper.setup();
214
+ const locaters = IncrementalTestHelper.iModel.schemaContext.locaters;
215
+ const incrementalLocater = locaters.find((locater) => locater instanceof IModelIncrementalSchemaLocater);
216
+ expect(incrementalLocater).to.be.undefined;
217
+ });
218
+ it("schema context should have an instance of incremental schema locater if loading is enabled", async () => {
219
+ await IncrementalTestHelper.setup({ disableSchemaLoading: false });
220
+ const locaters = IncrementalTestHelper.iModel.schemaContext.locaters;
221
+ const incrementalLocater = locaters.find((locater) => locater instanceof IModelIncrementalSchemaLocater);
222
+ expect(incrementalLocater).to.be.not.undefined;
223
+ });
224
+ });
206
225
  });
207
226
  //# sourceMappingURL=IncrementalLoading.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"IncrementalLoading.test.js","sourceRoot":"","sources":["../../../../src/test/incrementalSchemaLocater/IncrementalLoading.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { ECClass, Schema, SchemaContext, SchemaInfo, SchemaItem, SchemaItemKey,\n SchemaItemType, SchemaJsonLocater, SchemaKey, SchemaMatchType, SchemaProps, WithSchemaKey }\n from \"@itwin/ecschema-metadata\";\nimport { expect } from \"chai\";\nimport * as chai from \"chai\";\nimport * as chaiAsPromised from \"chai-as-promised\";\nimport { IModelIncrementalSchemaLocater } from \"../../IModelIncrementalSchemaLocater\";\n\nimport oldConfiguration from \"../assets/IncrementalSchemaLocater/configs/old.config\";\nimport simpleConfiguration from \"../assets/IncrementalSchemaLocater/configs/simple.config\";\nimport { IncrementalTestHelper } from \"./utils/IncrementalTestHelper\";\n\nchai.use(chaiAsPromised);\n\nfunction parseSchemaItemKey(itemKey: string): SchemaItemKey {\n const [schemaName, itemName] = SchemaItem.parseFullName(itemKey);\n const schemaKey = SchemaKey.parseString(`${schemaName}.0.0.0`);\n return new SchemaItemKey(itemName, schemaKey);\n}\n\ndescribe(\"Incremental Schema Loading\", function () {\n describe (\"Simple iModel Incremental Loading Tests\", () => {\n let testSchemaKey: SchemaKey;\n let testSchemaConfiguration: any;\n\n before(\"Setup\", async function () {\n await IncrementalTestHelper.setup();\n testSchemaConfiguration = simpleConfiguration.schemas[0];\n testSchemaKey = new SchemaKey(testSchemaConfiguration.name, 1, 0, 0);\n await IncrementalTestHelper.importSchema(testSchemaKey);\n\n });\n\n after(async () => {\n await IncrementalTestHelper.close();\n });\n\n const iModelSchemaJsonLocater = new SchemaJsonLocater((schemaName) => {\n return IncrementalTestHelper.iModel.getSchemaProps(schemaName) as SchemaProps;\n });\n\n it(\"Get SchemaInfo (json props - iModel)\", async () => {\n const schemaContext = new SchemaContext();\n schemaContext.addLocater(iModelSchemaJsonLocater);\n\n const schemaInfo = await schemaContext.getSchemaInfo(testSchemaKey, SchemaMatchType.Exact) as SchemaInfo;\n expect(schemaInfo).to.be.not.undefined;\n expect(schemaInfo).to.have.nested.property(\"schemaKey.name\", testSchemaKey.name);\n\n expect(schemaInfo).to.have.property(\"references\").to.have.a.lengthOf(testSchemaConfiguration.references.length);\n expect(schemaInfo).to.have.property(\"references\").to.satisfy((refs: WithSchemaKey[]) => {\n for (const ref of refs) {\n expect(testSchemaConfiguration.references, `Could not find referenced schema: ${ref.schemaKey.name}`).to.include(ref.schemaKey.name);\n }\n return true;\n });\n });\n\n it(\"Get SchemaInfo (incremental - backend)\", async () => {\n const locater = new IModelIncrementalSchemaLocater(IncrementalTestHelper.iModel, { loadPartialSchemaOnly: true });\n\n const schemaContext = new SchemaContext();\n schemaContext.addLocater(locater);\n\n const schemaInfo = await schemaContext.getSchemaInfo(testSchemaKey, SchemaMatchType.Exact) as SchemaInfo;\n expect(schemaInfo).to.be.not.undefined;\n expect(schemaInfo).to.have.nested.property(\"schemaKey.name\", testSchemaKey.name);\n\n expect(schemaInfo).to.have.property(\"references\").to.have.a.lengthOf(testSchemaConfiguration.references.length);\n expect(schemaInfo).to.have.property(\"references\").to.satisfy((refs: WithSchemaKey[]) => {\n for (const ref of refs) {\n expect(testSchemaConfiguration.references, `Could not find referenced schema: ${ref.schemaKey.name}`).to.include(ref.schemaKey.name);\n }\n return true;\n });\n });\n\n it(\"Get Schema with item stubs (incremental - backend)\", async () => {\n const locater = new IModelIncrementalSchemaLocater(IncrementalTestHelper.iModel, { loadPartialSchemaOnly: true });\n const schemaContext = new SchemaContext();\n schemaContext.addLocater(locater);\n\n const schema = await schemaContext.getSchema(testSchemaKey) as Schema;\n expect(schema).to.be.not.undefined;\n expect(schema).to.have.property(\"name\", testSchemaKey.name);\n expect(schema).to.have.property(\"description\", testSchemaConfiguration.description);\n expect(schema).to.have.property(\"label\", testSchemaConfiguration.label);\n\n expect(schema).to.have.property(\"references\").to.have.a.lengthOf(testSchemaConfiguration.references.length);\n for (const item of schema.getItems()) {\n expect(item).to.have.property(\"name\");\n expect(item).to.have.property(\"schemaItemType\").to.satisfy((type: string) => SchemaItemType[type as keyof typeof SchemaItemType] !== undefined);\n }\n\n expect(schema).to.be.not.undefined;\n expect(schema).to.have.property(\"name\", testSchemaKey.name);\n\n const items = [...schema.getItems()];\n expect(items).to.have.a.lengthOf(testSchemaConfiguration.itemCount);\n\n for (const checkStub of testSchemaConfiguration.checkStubs) {\n const item = await schema.lookupItem(checkStub.item);\n expect(item).to.be.not.undefined;\n const props = item!.toJSON();\n for (const [propertyName, propertyValue] of Object.entries(checkStub.properties)) {\n expect(props).to.have.property(propertyName).deep.equalInAnyOrder(propertyValue);\n }\n }\n });\n\n it(\"Get Schema with class hierarchy (json props - iModel)\", async () => {\n const schemaContext = new SchemaContext();\n schemaContext.addLocater(iModelSchemaJsonLocater);\n\n const schema = await schemaContext.getSchema(testSchemaKey) as Schema;\n\n expect(schema).to.be.not.undefined;\n expect(schema).to.have.property(\"name\", testSchemaKey.name);\n\n const derivedClassKey = parseSchemaItemKey(testSchemaConfiguration.checkHierachy.derivedClass);\n const derivedClass = await schemaContext.getSchemaItem(derivedClassKey) as ECClass;\n expect(derivedClass, `${derivedClassKey.fullName} was not found`).to.be.not.undefined;\n\n const baseClassKey = parseSchemaItemKey(testSchemaConfiguration.checkHierachy.baseClass);\n const baseClass = await schemaContext.getSchemaItem(baseClassKey) as ECClass;\n expect(baseClass, `${baseClassKey.fullName} was not found`).to.be.not.undefined;\n\n const isDerivedFrom = await derivedClass.is(baseClass);\n expect(isDerivedFrom, `${derivedClass.name} is not derived from ${baseClass.name}`).to.be.true;\n });\n\n it(\"Get Schema with class hierarchy (incremental - backend)\", async () => {\n const locater = new IModelIncrementalSchemaLocater(IncrementalTestHelper.iModel, { loadPartialSchemaOnly: true });\n const schemaContext = new SchemaContext();\n schemaContext.addLocater(locater);\n\n const schema = await schemaContext.getSchema(testSchemaKey) as Schema;\n\n expect(schema).to.be.not.undefined;\n expect(schema).to.have.property(\"name\", testSchemaKey.name);\n\n const derivedClassKey = parseSchemaItemKey(testSchemaConfiguration.checkHierachy.derivedClass);\n const derivedClass = await schemaContext.getSchemaItem(derivedClassKey) as ECClass;\n expect(derivedClass, `${derivedClassKey.fullName} was not found`).to.be.not.undefined;\n\n const baseClassKey = parseSchemaItemKey(testSchemaConfiguration.checkHierachy.baseClass);\n const baseClass = await schemaContext.getSchemaItem(baseClassKey) as ECClass;\n expect(baseClass, `${baseClassKey.fullName} was not found`).to.be.not.undefined;\n\n const isDerivedFrom = await derivedClass.is(baseClass);\n expect(isDerivedFrom, `${derivedClass.name} is not derived from ${baseClass.name}`).to.be.true;\n });\n\n it(\"Get Schema full schema stack (json props - iModel)\", async () => {\n const schemaContext = new SchemaContext();\n schemaContext.addLocater(iModelSchemaJsonLocater);\n\n const schema = await schemaContext.getSchema(testSchemaKey) as Schema;\n expect(schema).to.be.not.undefined;\n expect(schema).to.have.property(\"name\", testSchemaKey.name);\n\n expect(schema).to.have.property(\"references\").to.have.a.lengthOf(testSchemaConfiguration.references.length);\n for (const item of schema.getItems()) {\n expect(item).to.have.property(\"name\");\n expect(item).to.have.property(\"schemaItemType\").to.satisfy((type: string) => SchemaItemType[type as keyof typeof SchemaItemType] !== undefined);\n }\n });\n\n it(\"Get Schema full schema stack (incremental - backend)\", async () => {\n const locater = new IModelIncrementalSchemaLocater(IncrementalTestHelper.iModel);\n const schemaContext = new SchemaContext();\n schemaContext.addLocater(locater);\n\n const schema = await schemaContext.getSchema(testSchemaKey) as Schema;\n expect(schema).to.be.not.undefined;\n expect(schema).to.have.property(\"name\", testSchemaKey.name);\n\n expect(schema).to.have.property(\"references\").to.have.a.lengthOf(testSchemaConfiguration.references.length);\n for (const item of schema.getItems()) {\n expect(item).to.have.property(\"name\");\n expect(item).to.have.property(\"schemaItemType\").to.satisfy((type: string) => SchemaItemType[type as keyof typeof SchemaItemType] !== undefined);\n }\n\n expect(schema).to.be.not.undefined;\n expect(schema).to.have.property(\"name\", testSchemaKey.name);\n\n // Old meta profile fallback queries will not have a controller initialized.\n if (schema.loadingController)\n await schema.loadingController.wait();\n\n const items = [...schema.getItems()];\n expect(items).to.have.a.lengthOf(testSchemaConfiguration.itemCount);\n\n for (const checkItem of testSchemaConfiguration.checkFullLoad) {\n const item = await schema.lookupItem(checkItem.item);\n expect(item).to.be.not.undefined;\n\n const itemProps = item!.toJSON();\n for (const [propertyName, propertyValue] of Object.entries(checkItem.properties)) {\n expect(itemProps).to.have.property(propertyName).deep.equalInAnyOrder(propertyValue);\n }\n }\n });\n });\n\n describe(\"Old Schema profile in iModel Tests\", () => {\n let testSchemaKey: SchemaKey;\n let testSchemaConfiguration: any;\n\n const resolveSchemaKey = async (schemaName: string): Promise<SchemaKey> => {\n const schemaFullName = (await IncrementalTestHelper.getSchemaNames()).find((name) => name.startsWith(schemaName));\n if (schemaFullName === undefined) {\n throw new Error(`Test schema '${schemaName}' not found`);\n }\n return SchemaKey.parseString(schemaFullName);\n }\n\n before(\"Setup\", async function () {\n await IncrementalTestHelper.setup(oldConfiguration.bimFile);\n testSchemaConfiguration = oldConfiguration.schemas[0];\n testSchemaKey = await resolveSchemaKey(testSchemaConfiguration.name);\n });\n\n after(async () => {\n await IncrementalTestHelper.close();\n });\n\n it(\"Incremental Loading still succeeds.\", async () => {\n const locater = new IModelIncrementalSchemaLocater(IncrementalTestHelper.iModel);\n const schemaContext = new SchemaContext();\n schemaContext.addLocater(locater);\n\n const schema = await schemaContext.getSchema(testSchemaKey) as Schema;\n expect(schema).to.be.not.undefined;\n expect(schema).to.have.property(\"name\", testSchemaKey.name);\n\n expect(schema).to.have.property(\"references\").to.have.a.lengthOf(testSchemaConfiguration.references.length);\n for (const item of schema.getItems()) {\n expect(item).to.have.property(\"name\");\n expect(item).to.have.property(\"schemaItemType\").to.satisfy((type: string) => SchemaItemType[type as keyof typeof SchemaItemType] !== undefined);\n }\n\n expect(schema).to.be.not.undefined;\n expect(schema).to.have.property(\"name\", testSchemaKey.name);\n\n // Old meta profile fallback queries will not have a controller initialized.\n if (schema.loadingController)\n await schema.loadingController.wait();\n\n const items = [...schema.getItems()];\n expect(items).to.have.a.lengthOf(testSchemaConfiguration.itemCount);\n\n for (const checkItem of testSchemaConfiguration.checkFullLoad) {\n const item = await schema.lookupItem(checkItem.item);\n expect(item).to.be.not.undefined;\n\n const itemProps = item!.toJSON();\n for (const [propertyName, propertyValue] of Object.entries(checkItem.properties)) {\n expect(itemProps).to.have.property(propertyName).deep.equalInAnyOrder(propertyValue);\n }\n }\n });\n });\n});\n"]}
1
+ {"version":3,"file":"IncrementalLoading.test.js","sourceRoot":"","sources":["../../../../src/test/incrementalSchemaLocater/IncrementalLoading.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { ECClass, Schema, SchemaContext, SchemaInfo, SchemaItem, SchemaItemKey,\r\n SchemaItemType, SchemaJsonLocater, SchemaKey, SchemaMatchType, SchemaProps, WithSchemaKey }\r\n from \"@itwin/ecschema-metadata\";\r\nimport { expect } from \"chai\";\r\nimport * as chai from \"chai\";\r\nimport * as chaiAsPromised from \"chai-as-promised\";\r\nimport { IModelIncrementalSchemaLocater } from \"../../IModelIncrementalSchemaLocater\";\r\nimport { IncrementalTestHelper } from \"./utils/IncrementalTestHelper\";\r\n\r\nimport oldConfiguration from \"../assets/IncrementalSchemaLocater/configs/old.config\";\r\nimport simpleConfiguration from \"../assets/IncrementalSchemaLocater/configs/simple.config\";\r\n\r\nchai.use(chaiAsPromised);\r\n\r\nfunction parseSchemaItemKey(itemKey: string): SchemaItemKey {\r\n const [schemaName, itemName] = SchemaItem.parseFullName(itemKey);\r\n const schemaKey = SchemaKey.parseString(`${schemaName}.0.0.0`);\r\n return new SchemaItemKey(itemName, schemaKey);\r\n}\r\n\r\ndescribe(\"Incremental Schema Loading\", function () {\r\n describe (\"Simple iModel Incremental Loading Tests\", () => {\r\n let testSchemaKey: SchemaKey;\r\n let testSchemaConfiguration: any;\r\n\r\n before(\"Setup\", async function () {\r\n await IncrementalTestHelper.setup();\r\n testSchemaConfiguration = simpleConfiguration.schemas[0];\r\n testSchemaKey = new SchemaKey(testSchemaConfiguration.name, 1, 0, 0);\r\n await IncrementalTestHelper.importSchema(testSchemaKey);\r\n });\r\n\r\n after(async () => {\r\n await IncrementalTestHelper.close();\r\n });\r\n\r\n const iModelSchemaJsonLocater = new SchemaJsonLocater((schemaName) => {\r\n return IncrementalTestHelper.iModel.getSchemaProps(schemaName) as SchemaProps;\r\n });\r\n\r\n it(\"Get SchemaInfo (json props - iModel)\", async () => {\r\n const schemaContext = new SchemaContext();\r\n schemaContext.addLocater(iModelSchemaJsonLocater);\r\n\r\n const schemaInfo = await schemaContext.getSchemaInfo(testSchemaKey, SchemaMatchType.Exact) as SchemaInfo;\r\n expect(schemaInfo).to.be.not.undefined;\r\n expect(schemaInfo).to.have.nested.property(\"schemaKey.name\", testSchemaKey.name);\r\n\r\n expect(schemaInfo).to.have.property(\"references\").to.have.a.lengthOf(testSchemaConfiguration.references.length);\r\n expect(schemaInfo).to.have.property(\"references\").to.satisfy((refs: WithSchemaKey[]) => {\r\n for (const ref of refs) {\r\n expect(testSchemaConfiguration.references, `Could not find referenced schema: ${ref.schemaKey.name}`).to.include(ref.schemaKey.name);\r\n }\r\n return true;\r\n });\r\n });\r\n\r\n it(\"Get SchemaInfo (incremental - backend)\", async () => {\r\n const locater = new IModelIncrementalSchemaLocater(IncrementalTestHelper.iModel, { loadPartialSchemaOnly: true });\r\n\r\n const schemaContext = new SchemaContext();\r\n schemaContext.addLocater(locater);\r\n\r\n const schemaInfo = await schemaContext.getSchemaInfo(testSchemaKey, SchemaMatchType.Exact) as SchemaInfo;\r\n expect(schemaInfo).to.be.not.undefined;\r\n expect(schemaInfo).to.have.nested.property(\"schemaKey.name\", testSchemaKey.name);\r\n\r\n expect(schemaInfo).to.have.property(\"references\").to.have.a.lengthOf(testSchemaConfiguration.references.length);\r\n expect(schemaInfo).to.have.property(\"references\").to.satisfy((refs: WithSchemaKey[]) => {\r\n for (const ref of refs) {\r\n expect(testSchemaConfiguration.references, `Could not find referenced schema: ${ref.schemaKey.name}`).to.include(ref.schemaKey.name);\r\n }\r\n return true;\r\n });\r\n });\r\n\r\n it(\"Get Schema with item stubs (incremental - backend)\", async () => {\r\n const locater = new IModelIncrementalSchemaLocater(IncrementalTestHelper.iModel, { loadPartialSchemaOnly: true });\r\n const schemaContext = new SchemaContext();\r\n schemaContext.addLocater(locater);\r\n\r\n const schema = await schemaContext.getSchema(testSchemaKey) as Schema;\r\n expect(schema).to.be.not.undefined;\r\n expect(schema).to.have.property(\"name\", testSchemaKey.name);\r\n expect(schema).to.have.property(\"description\", testSchemaConfiguration.description);\r\n expect(schema).to.have.property(\"label\", testSchemaConfiguration.label);\r\n\r\n expect(schema).to.have.property(\"references\").to.have.a.lengthOf(testSchemaConfiguration.references.length);\r\n for (const item of schema.getItems()) {\r\n expect(item).to.have.property(\"name\");\r\n expect(item).to.have.property(\"schemaItemType\").to.satisfy((type: string) => SchemaItemType[type as keyof typeof SchemaItemType] !== undefined);\r\n }\r\n\r\n expect(schema).to.be.not.undefined;\r\n expect(schema).to.have.property(\"name\", testSchemaKey.name);\r\n\r\n const items = [...schema.getItems()];\r\n expect(items).to.have.a.lengthOf(testSchemaConfiguration.itemCount);\r\n\r\n for (const checkStub of testSchemaConfiguration.checkStubs) {\r\n const item = await schema.lookupItem(checkStub.item);\r\n expect(item).to.be.not.undefined;\r\n const props = item!.toJSON();\r\n for (const [propertyName, propertyValue] of Object.entries(checkStub.properties)) {\r\n expect(props).to.have.property(propertyName).deep.equalInAnyOrder(propertyValue);\r\n }\r\n }\r\n });\r\n\r\n it(\"Get Schema with class hierarchy (json props - iModel)\", async () => {\r\n const schemaContext = new SchemaContext();\r\n schemaContext.addLocater(iModelSchemaJsonLocater);\r\n\r\n const schema = await schemaContext.getSchema(testSchemaKey) as Schema;\r\n\r\n expect(schema).to.be.not.undefined;\r\n expect(schema).to.have.property(\"name\", testSchemaKey.name);\r\n\r\n const derivedClassKey = parseSchemaItemKey(testSchemaConfiguration.checkHierachy.derivedClass);\r\n const derivedClass = await schemaContext.getSchemaItem(derivedClassKey) as ECClass;\r\n expect(derivedClass, `${derivedClassKey.fullName} was not found`).to.be.not.undefined;\r\n\r\n const baseClassKey = parseSchemaItemKey(testSchemaConfiguration.checkHierachy.baseClass);\r\n const baseClass = await schemaContext.getSchemaItem(baseClassKey) as ECClass;\r\n expect(baseClass, `${baseClassKey.fullName} was not found`).to.be.not.undefined;\r\n\r\n const isDerivedFrom = await derivedClass.is(baseClass);\r\n expect(isDerivedFrom, `${derivedClass.name} is not derived from ${baseClass.name}`).to.be.true;\r\n });\r\n\r\n it(\"Get Schema with class hierarchy (incremental - backend)\", async () => {\r\n const locater = new IModelIncrementalSchemaLocater(IncrementalTestHelper.iModel, { loadPartialSchemaOnly: true });\r\n const schemaContext = new SchemaContext();\r\n schemaContext.addLocater(locater);\r\n\r\n const schema = await schemaContext.getSchema(testSchemaKey) as Schema;\r\n\r\n expect(schema).to.be.not.undefined;\r\n expect(schema).to.have.property(\"name\", testSchemaKey.name);\r\n\r\n const derivedClassKey = parseSchemaItemKey(testSchemaConfiguration.checkHierachy.derivedClass);\r\n const derivedClass = await schemaContext.getSchemaItem(derivedClassKey) as ECClass;\r\n expect(derivedClass, `${derivedClassKey.fullName} was not found`).to.be.not.undefined;\r\n\r\n const baseClassKey = parseSchemaItemKey(testSchemaConfiguration.checkHierachy.baseClass);\r\n const baseClass = await schemaContext.getSchemaItem(baseClassKey) as ECClass;\r\n expect(baseClass, `${baseClassKey.fullName} was not found`).to.be.not.undefined;\r\n\r\n const isDerivedFrom = await derivedClass.is(baseClass);\r\n expect(isDerivedFrom, `${derivedClass.name} is not derived from ${baseClass.name}`).to.be.true;\r\n });\r\n\r\n it(\"Get Schema full schema stack (json props - iModel)\", async () => {\r\n const schemaContext = new SchemaContext();\r\n schemaContext.addLocater(iModelSchemaJsonLocater);\r\n\r\n const schema = await schemaContext.getSchema(testSchemaKey) as Schema;\r\n expect(schema).to.be.not.undefined;\r\n expect(schema).to.have.property(\"name\", testSchemaKey.name);\r\n\r\n expect(schema).to.have.property(\"references\").to.have.a.lengthOf(testSchemaConfiguration.references.length);\r\n for (const item of schema.getItems()) {\r\n expect(item).to.have.property(\"name\");\r\n expect(item).to.have.property(\"schemaItemType\").to.satisfy((type: string) => SchemaItemType[type as keyof typeof SchemaItemType] !== undefined);\r\n }\r\n });\r\n\r\n it(\"Get Schema full schema stack (incremental - backend)\", async () => {\r\n const schemaContext = IncrementalTestHelper.iModel.schemaContext;\r\n const schema = await schemaContext.getSchema(testSchemaKey) as Schema;\r\n expect(schema).to.be.not.undefined;\r\n expect(schema).to.have.property(\"name\", testSchemaKey.name);\r\n\r\n expect(schema).to.have.property(\"references\").to.have.a.lengthOf(testSchemaConfiguration.references.length);\r\n for (const item of schema.getItems()) {\r\n expect(item).to.have.property(\"name\");\r\n expect(item).to.have.property(\"schemaItemType\").to.satisfy((type: string) => SchemaItemType[type as keyof typeof SchemaItemType] !== undefined);\r\n }\r\n\r\n expect(schema).to.be.not.undefined;\r\n expect(schema).to.have.property(\"name\", testSchemaKey.name);\r\n\r\n // Old meta profile fallback queries will not have a controller initialized.\r\n if (schema.loadingController)\r\n await schema.loadingController.wait();\r\n\r\n const items = [...schema.getItems()];\r\n expect(items).to.have.a.lengthOf(testSchemaConfiguration.itemCount);\r\n\r\n for (const checkItem of testSchemaConfiguration.checkFullLoad) {\r\n const item = await schema.lookupItem(checkItem.item);\r\n expect(item).to.be.not.undefined;\r\n\r\n const itemProps = item!.toJSON();\r\n for (const [propertyName, propertyValue] of Object.entries(checkItem.properties)) {\r\n expect(itemProps).to.have.property(propertyName).deep.equalInAnyOrder(propertyValue);\r\n }\r\n }\r\n });\r\n });\r\n\r\n describe(\"Old Schema profile in iModel Tests\", () => {\r\n let testSchemaKey: SchemaKey;\r\n let testSchemaConfiguration: any;\r\n\r\n const resolveSchemaKey = async (schemaName: string): Promise<SchemaKey> => {\r\n const schemaFullName = (await IncrementalTestHelper.getSchemaNames()).find((name) => name.startsWith(schemaName));\r\n if (schemaFullName === undefined) {\r\n throw new Error(`Test schema '${schemaName}' not found`);\r\n }\r\n return SchemaKey.parseString(schemaFullName);\r\n }\r\n\r\n before(\"Setup\", async function () {\r\n await IncrementalTestHelper.setup({ bimName: oldConfiguration.bimFile });\r\n testSchemaConfiguration = oldConfiguration.schemas[0];\r\n testSchemaKey = await resolveSchemaKey(testSchemaConfiguration.name);\r\n });\r\n\r\n after(async () => {\r\n await IncrementalTestHelper.close();\r\n });\r\n\r\n it(\"Incremental Loading still succeeds.\", async () => {\r\n const schemaContext = IncrementalTestHelper.iModel.schemaContext;\r\n const schema = await schemaContext.getSchema(testSchemaKey) as Schema;\r\n expect(schema).to.be.not.undefined;\r\n expect(schema).to.have.property(\"name\", testSchemaKey.name);\r\n\r\n expect(schema).to.have.property(\"references\").to.have.a.lengthOf(testSchemaConfiguration.references.length);\r\n for (const item of schema.getItems()) {\r\n expect(item).to.have.property(\"name\");\r\n expect(item).to.have.property(\"schemaItemType\").to.satisfy((type: string) => SchemaItemType[type as keyof typeof SchemaItemType] !== undefined);\r\n }\r\n\r\n expect(schema).to.be.not.undefined;\r\n expect(schema).to.have.property(\"name\", testSchemaKey.name);\r\n\r\n // Old meta profile fallback queries will not have a controller initialized.\r\n if (schema.loadingController)\r\n await schema.loadingController.wait();\r\n\r\n const items = [...schema.getItems()];\r\n expect(items).to.have.a.lengthOf(testSchemaConfiguration.itemCount);\r\n\r\n for (const checkItem of testSchemaConfiguration.checkFullLoad) {\r\n const item = await schema.lookupItem(checkItem.item);\r\n expect(item).to.be.not.undefined;\r\n\r\n const itemProps = item!.toJSON();\r\n for (const [propertyName, propertyValue] of Object.entries(checkItem.properties)) {\r\n expect(itemProps).to.have.property(propertyName).deep.equalInAnyOrder(propertyValue);\r\n }\r\n }\r\n });\r\n });\r\n\r\n describe(\"Test Incremental Loading setup\", () => {\r\n afterEach(async () => {\r\n await IncrementalTestHelper.close();\r\n });\r\n\r\n it(\"schema context should not have an instance of incremental schema locater if loading is disabled\", async () => {\r\n await IncrementalTestHelper.setup({ disableSchemaLoading: true });\r\n const locaters = IncrementalTestHelper.iModel.schemaContext.locaters;\r\n const incrementalLocater = locaters.find((locater) => locater instanceof IModelIncrementalSchemaLocater);\r\n expect(incrementalLocater).to.be.undefined;\r\n });\r\n\r\n it(\"schema context should not have an instance of incremental schema locater if loading is not specified\", async () => {\r\n await IncrementalTestHelper.setup();\r\n const locaters = IncrementalTestHelper.iModel.schemaContext.locaters;\r\n const incrementalLocater = locaters.find((locater) => locater instanceof IModelIncrementalSchemaLocater);\r\n expect(incrementalLocater).to.be.undefined;\r\n });\r\n\r\n it(\"schema context should have an instance of incremental schema locater if loading is enabled\", async () => {\r\n await IncrementalTestHelper.setup({ disableSchemaLoading: false });\r\n const locaters = IncrementalTestHelper.iModel.schemaContext.locaters;\r\n const incrementalLocater = locaters.find((locater) => locater instanceof IModelIncrementalSchemaLocater);\r\n expect(incrementalLocater).to.be.not.undefined;\r\n });\r\n });\r\n});\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"IModelSchemaLocater.js","sourceRoot":"","sources":["../../../../../src/test/incrementalSchemaLocater/utils/IModelSchemaLocater.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,MAAM,EAA6C,MAAM,0BAA0B,CAAC;AAI7G,MAAM,OAAO,mBAAmB;IACtB,OAAO,CAAW;IAE1B,YAAmB,MAAgB;QACjC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IACxB,CAAC;IAEM,KAAK,CAAC,SAAS,CAAmB,SAAoB,EAAE,SAA0B,EAAE,OAAsB;QAC/G,MAAM,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;QAExD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,eAAe,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QACnE,OAAO,MAAW,CAAC;IACrB,CAAC;IAEM,KAAK,CAAC,aAAa,CAAC,SAAoB,EAAE,UAA2B,EAAE,OAAsB;QAClG,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAC/D,OAAO,MAAM,MAAM,CAAC,oBAAoB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAChE,CAAC;QAAC,OAAM,CAAM,EAAC,CAAC;YACd,IAAI,CAAC,CAAC,WAAW,KAAK,KAAK;gBACzB,OAAO,SAAS,CAAC;YACnB,MAAM,CAAC,CAAC;QACV,CAAC;IACH,CAAC;IAEM,aAAa,CAAC,SAAoB,EAAE,UAA2B,EAAE,OAAsB;QAC5F,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAC/D,MAAM,MAAM,GAAG,MAAM,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YACxD,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAM,CAAM,EAAC,CAAC;YACd,IAAI,CAAC,CAAC,WAAW,KAAK,KAAK;gBACzB,OAAO,SAAS,CAAC;YACnB,MAAM,CAAC,CAAC;QACV,CAAC;IACH,CAAC;CACF","sourcesContent":["import { ISchemaLocater, Schema, SchemaContext, SchemaKey, SchemaMatchType } from \"@itwin/ecschema-metadata\";\nimport { SchemaInfo } from \"@itwin/ecschema-metadata/lib/cjs/Interfaces\";\nimport { IModelDb } from \"../../../IModelDb\";\n\nexport class IModelSchemaLocater implements ISchemaLocater {\n private _iModel: IModelDb;\n\n public constructor(iModel: IModelDb) {\n this._iModel = iModel;\n }\n\n public async getSchema<T extends Schema>(schemaKey: SchemaKey, matchType: SchemaMatchType, context: SchemaContext): Promise<T | undefined> {\n await this.getSchemaInfo(schemaKey, matchType, context);\n\n const schema = await context.getCachedSchema(schemaKey, matchType);\n return schema as T;\n }\n\n public async getSchemaInfo(schemaKey: SchemaKey, _matchType: SchemaMatchType, context: SchemaContext): Promise<SchemaInfo | undefined> {\n try {\n const schemaJson = this._iModel.getSchemaProps(schemaKey.name);\n return await Schema.startLoadingFromJson(schemaJson, context);\n } catch(e: any){\n if (e.errorNumber === 65574)\n return undefined;\n throw e;\n }\n }\n\n public getSchemaSync(schemaKey: SchemaKey, _matchType: SchemaMatchType, context: SchemaContext): Schema | undefined {\n try {\n const schemaJson = this._iModel.getSchemaProps(schemaKey.name);\n const schema = Schema.fromJsonSync(schemaJson, context);\n return schema;\n } catch(e: any){\n if (e.errorNumber === 65574)\n return undefined;\n throw e;\n }\n }\n}"]}
1
+ {"version":3,"file":"IModelSchemaLocater.js","sourceRoot":"","sources":["../../../../../src/test/incrementalSchemaLocater/utils/IModelSchemaLocater.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,MAAM,EAA6C,MAAM,0BAA0B,CAAC;AAI7G,MAAM,OAAO,mBAAmB;IACtB,OAAO,CAAW;IAE1B,YAAmB,MAAgB;QACjC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IACxB,CAAC;IAEM,KAAK,CAAC,SAAS,CAAmB,SAAoB,EAAE,SAA0B,EAAE,OAAsB;QAC/G,MAAM,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;QAExD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,eAAe,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QACnE,OAAO,MAAW,CAAC;IACrB,CAAC;IAEM,KAAK,CAAC,aAAa,CAAC,SAAoB,EAAE,UAA2B,EAAE,OAAsB;QAClG,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAC/D,OAAO,MAAM,MAAM,CAAC,oBAAoB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAChE,CAAC;QAAC,OAAM,CAAM,EAAC,CAAC;YACd,IAAI,CAAC,CAAC,WAAW,KAAK,KAAK;gBACzB,OAAO,SAAS,CAAC;YACnB,MAAM,CAAC,CAAC;QACV,CAAC;IACH,CAAC;IAEM,aAAa,CAAC,SAAoB,EAAE,UAA2B,EAAE,OAAsB;QAC5F,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAC/D,MAAM,MAAM,GAAG,MAAM,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YACxD,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAM,CAAM,EAAC,CAAC;YACd,IAAI,CAAC,CAAC,WAAW,KAAK,KAAK;gBACzB,OAAO,SAAS,CAAC;YACnB,MAAM,CAAC,CAAC;QACV,CAAC;IACH,CAAC;CACF","sourcesContent":["import { ISchemaLocater, Schema, SchemaContext, SchemaKey, SchemaMatchType } from \"@itwin/ecschema-metadata\";\r\nimport { SchemaInfo } from \"@itwin/ecschema-metadata/lib/cjs/Interfaces\";\r\nimport { IModelDb } from \"../../../IModelDb\";\r\n\r\nexport class IModelSchemaLocater implements ISchemaLocater {\r\n private _iModel: IModelDb;\r\n\r\n public constructor(iModel: IModelDb) {\r\n this._iModel = iModel;\r\n }\r\n\r\n public async getSchema<T extends Schema>(schemaKey: SchemaKey, matchType: SchemaMatchType, context: SchemaContext): Promise<T | undefined> {\r\n await this.getSchemaInfo(schemaKey, matchType, context);\r\n\r\n const schema = await context.getCachedSchema(schemaKey, matchType);\r\n return schema as T;\r\n }\r\n\r\n public async getSchemaInfo(schemaKey: SchemaKey, _matchType: SchemaMatchType, context: SchemaContext): Promise<SchemaInfo | undefined> {\r\n try {\r\n const schemaJson = this._iModel.getSchemaProps(schemaKey.name);\r\n return await Schema.startLoadingFromJson(schemaJson, context);\r\n } catch(e: any){\r\n if (e.errorNumber === 65574)\r\n return undefined;\r\n throw e;\r\n }\r\n }\r\n\r\n public getSchemaSync(schemaKey: SchemaKey, _matchType: SchemaMatchType, context: SchemaContext): Schema | undefined {\r\n try {\r\n const schemaJson = this._iModel.getSchemaProps(schemaKey.name);\r\n const schema = Schema.fromJsonSync(schemaJson, context);\r\n return schema;\r\n } catch(e: any){\r\n if (e.errorNumber === 65574)\r\n return undefined;\r\n throw e;\r\n }\r\n }\r\n}"]}
@@ -6,7 +6,10 @@ export declare class IncrementalTestHelper {
6
6
  static testBimFile: string;
7
7
  static get iModel(): IModelDb;
8
8
  static get isLoaded(): boolean;
9
- static setup(bimName?: string): Promise<void>;
9
+ static setup(options?: {
10
+ bimName?: string;
11
+ disableSchemaLoading?: boolean;
12
+ }): Promise<void>;
10
13
  static getSchemaNames(): Promise<string[]>;
11
14
  private static initializeTestIModel;
12
15
  static importSchema(schemaKey: SchemaKey): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"IncrementalTestHelper.d.ts","sourceRoot":"","sources":["../../../../../src/test/incrementalSchemaLocater/utils/IncrementalTestHelper.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAE,aAAa,EAAmB,SAAS,EAAmB,MAAM,0BAA0B,CAAC;AAI9G,OAAO,EAAe,QAAQ,EAAgB,MAAM,mBAAmB,CAAC;AAKxE,qBAAa,qBAAqB;IAChC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAuB;IAC7C,OAAc,OAAO,EAAE,aAAa,CAAC;IACrC,OAAc,WAAW,EAAE,MAAM,CAAC;IAClC,WAAkB,MAAM,IAAI,QAAQ,CAInC;IAED,WAAkB,QAAQ,IAAI,OAAO,CAEpC;WAEmB,KAAK,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;WA0BtC,cAAc,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAevD,OAAO,CAAC,MAAM,CAAC,oBAAoB;WAuBf,YAAY,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;WAwBjD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;WAOtB,uBAAuB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;WAMhE,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAUrE"}
1
+ {"version":3,"file":"IncrementalTestHelper.d.ts","sourceRoot":"","sources":["../../../../../src/test/incrementalSchemaLocater/utils/IncrementalTestHelper.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAE,aAAa,EAAmB,SAAS,EAAmB,MAAM,0BAA0B,CAAC;AAI9G,OAAO,EAAe,QAAQ,EAAgB,MAAM,mBAAmB,CAAC;AAKxE,qBAAa,qBAAqB;IAChC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAuB;IAC7C,OAAc,OAAO,EAAE,aAAa,CAAC;IACrC,OAAc,WAAW,EAAE,MAAM,CAAC;IAClC,WAAkB,MAAM,IAAI,QAAQ,CAInC;IAED,WAAkB,QAAQ,IAAI,OAAO,CAEpC;WAEmB,KAAK,CAAC,OAAO,CAAC,EAAE;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,oBAAoB,CAAC,EAAE,OAAO,CAAA;KAAC,GAAG,OAAO,CAAC,IAAI,CAAC;WAqClF,cAAc,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAevD,OAAO,CAAC,MAAM,CAAC,oBAAoB;WAuBf,YAAY,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;WAwBjD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;WAOtB,uBAAuB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;WAMhE,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAUrE"}
@@ -21,13 +21,15 @@ export class IncrementalTestHelper {
21
21
  static get isLoaded() {
22
22
  return this._iModel !== undefined;
23
23
  }
24
- static async setup(bimName) {
24
+ static async setup(options) {
25
25
  if (!IModelHost.isValid)
26
- await IModelHost.startup();
26
+ await IModelHost.startup({
27
+ incrementalSchemaLoading: "enabled",
28
+ });
27
29
  if (this._iModel !== undefined)
28
30
  throw new Error("iModel already loaded");
29
- if (bimName) {
30
- const pathToBriefCase = path.join(KnownTestLocations.assetsDir, bimName);
31
+ if (options?.bimName) {
32
+ const pathToBriefCase = path.join(KnownTestLocations.assetsDir, options.bimName);
31
33
  this._iModel = await BriefcaseDb.open({
32
34
  fileName: pathToBriefCase,
33
35
  readonly: true,
@@ -38,6 +40,14 @@ export class IncrementalTestHelper {
38
40
  this.testBimFile = this.initializeTestIModel();
39
41
  this._iModel = StandaloneDb.openFile(this.testBimFile, OpenMode.ReadWrite);
40
42
  }
43
+ const configuration = IModelHost.configuration;
44
+ if (configuration && options && options.disableSchemaLoading !== undefined) {
45
+ const previousSetting = configuration.incrementalSchemaLoading;
46
+ configuration.incrementalSchemaLoading = options.disableSchemaLoading ? "disabled" : "enabled";
47
+ this._iModel.onBeforeClose.addOnce(() => {
48
+ configuration.incrementalSchemaLoading = previousSetting;
49
+ });
50
+ }
41
51
  this.context = new SchemaContext();
42
52
  this.context.addLocater(new IModelSchemaLocater(this._iModel));
43
53
  const xmlLocater = new SchemaXmlFileLocater();