@itwin/core-backend 5.13.0-dev.2 → 5.13.0-dev.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +50 -1
- package/lib/cjs/BackendHubAccess.js.map +1 -1
- package/lib/cjs/BackendLoggerCategory.js.map +1 -1
- package/lib/cjs/BisCoreSchema.js.map +1 -1
- package/lib/cjs/BlobContainerService.js.map +1 -1
- package/lib/cjs/BriefcaseManager.js.map +1 -1
- package/lib/cjs/CatalogDb.js.map +1 -1
- package/lib/cjs/Category.d.ts +4 -4
- package/lib/cjs/Category.js.map +1 -1
- package/lib/cjs/ChangeSummaryManager.js +2 -2
- package/lib/cjs/ChangeSummaryManager.js.map +1 -1
- package/lib/cjs/ChangedElementsDb.js.map +1 -1
- package/lib/cjs/ChangesetECAdaptor.d.ts +5 -0
- package/lib/cjs/ChangesetECAdaptor.d.ts.map +1 -1
- package/lib/cjs/ChangesetECAdaptor.js +261 -251
- package/lib/cjs/ChangesetECAdaptor.js.map +1 -1
- package/lib/cjs/ChangesetReader.js +3 -3
- package/lib/cjs/ChangesetReader.js.map +1 -1
- package/lib/cjs/ChangesetReaderTypes.js.map +1 -1
- package/lib/cjs/ChannelControl.js.map +1 -1
- package/lib/cjs/CheckpointManager.d.ts +3 -0
- package/lib/cjs/CheckpointManager.d.ts.map +1 -1
- package/lib/cjs/CheckpointManager.js +8 -2
- package/lib/cjs/CheckpointManager.js.map +1 -1
- package/lib/cjs/ClassRegistry.js +10 -10
- package/lib/cjs/ClassRegistry.js.map +1 -1
- package/lib/cjs/CloudSqlite.d.ts.map +1 -1
- package/lib/cjs/CloudSqlite.js +19 -8
- package/lib/cjs/CloudSqlite.js.map +1 -1
- package/lib/cjs/CodeService.js.map +1 -1
- package/lib/cjs/CodeSpecs.d.ts +3 -3
- package/lib/cjs/CodeSpecs.js.map +1 -1
- package/lib/cjs/ConcurrentQuery.js.map +1 -1
- package/lib/cjs/CustomViewState3dCreator.js.map +1 -1
- package/lib/cjs/DevTools.js.map +1 -1
- package/lib/cjs/DisplayStyle.d.ts +2 -2
- package/lib/cjs/DisplayStyle.js.map +1 -1
- package/lib/cjs/ECDb.js.map +1 -1
- package/lib/cjs/ECSchemaXmlContext.js.map +1 -1
- package/lib/cjs/ECSqlRowExecutor.js.map +1 -1
- package/lib/cjs/ECSqlStatement.js.map +1 -1
- package/lib/cjs/ECSqlSyncReader.js.map +1 -1
- package/lib/cjs/EditTxn.d.ts.map +1 -1
- package/lib/cjs/EditTxn.js +1 -0
- package/lib/cjs/EditTxn.js.map +1 -1
- package/lib/cjs/Element.d.ts +48 -12
- package/lib/cjs/Element.d.ts.map +1 -1
- package/lib/cjs/Element.js +120 -24
- package/lib/cjs/Element.js.map +1 -1
- package/lib/cjs/ElementAspect.js.map +1 -1
- package/lib/cjs/ElementGraphics.js.map +1 -1
- package/lib/cjs/ElementTreeWalker.js.map +1 -1
- package/lib/cjs/Entity.js.map +1 -1
- package/lib/cjs/EntityReferences.js +2 -2
- package/lib/cjs/EntityReferences.js.map +1 -1
- package/lib/cjs/ExportGraphics.js.map +1 -1
- package/lib/cjs/ExternalSource.js.map +1 -1
- package/lib/cjs/FontFile.js.map +1 -1
- package/lib/cjs/GeoCoordConfig.js.map +1 -1
- package/lib/cjs/GeographicCRSServices.js.map +1 -1
- package/lib/cjs/GeometrySummary.js +47 -47
- package/lib/cjs/GeometrySummary.js.map +1 -1
- package/lib/cjs/IModelDb.d.ts +76 -23
- package/lib/cjs/IModelDb.d.ts.map +1 -1
- package/lib/cjs/IModelDb.js +150 -41
- package/lib/cjs/IModelDb.js.map +1 -1
- package/lib/cjs/IModelDbFonts.js.map +1 -1
- package/lib/cjs/IModelElementCloneContext.js.map +1 -1
- package/lib/cjs/IModelHost.d.ts.map +1 -1
- package/lib/cjs/IModelHost.js +3 -0
- package/lib/cjs/IModelHost.js.map +1 -1
- package/lib/cjs/IModelIncrementalSchemaLocater.js.map +1 -1
- package/lib/cjs/IModelJsFs.js.map +1 -1
- package/lib/cjs/ImageSourceConversion.js.map +1 -1
- package/lib/cjs/IpcHost.js.map +1 -1
- package/lib/cjs/LineStyle.js.map +1 -1
- package/lib/cjs/LocalHub.js +1 -1
- package/lib/cjs/LocalHub.js.map +1 -1
- package/lib/cjs/LocalhostIpcHost.js.map +1 -1
- package/lib/cjs/LockControl.js.map +1 -1
- package/lib/cjs/Material.js.map +1 -1
- package/lib/cjs/Model.d.ts +5 -5
- package/lib/cjs/Model.d.ts.map +1 -1
- package/lib/cjs/Model.js.map +1 -1
- package/lib/cjs/NativeAppStorage.js.map +1 -1
- package/lib/cjs/NativeHost.js.map +1 -1
- package/lib/cjs/NavigationRelationship.js.map +1 -1
- package/lib/cjs/PartialChangeUnifier.js +7 -7
- package/lib/cjs/PartialChangeUnifier.js.map +1 -1
- package/lib/cjs/PromiseMemoizer.js.map +1 -1
- package/lib/cjs/PropertyStore.js +1 -1
- package/lib/cjs/PropertyStore.js.map +1 -1
- package/lib/cjs/Relationship.js.map +1 -1
- package/lib/cjs/RpcBackend.js.map +1 -1
- package/lib/cjs/SQLiteDb.js.map +1 -1
- package/lib/cjs/Schema.js.map +1 -1
- package/lib/cjs/SchemaSync.d.ts +37 -9
- package/lib/cjs/SchemaSync.d.ts.map +1 -1
- package/lib/cjs/SchemaSync.js +125 -6
- package/lib/cjs/SchemaSync.js.map +1 -1
- package/lib/cjs/SchemaUtils.js.map +1 -1
- package/lib/cjs/SheetIndex.js.map +1 -1
- package/lib/cjs/SqliteChangesetReader.js.map +1 -1
- package/lib/cjs/SqliteStatement.js.map +1 -1
- package/lib/cjs/StashManager.js.map +1 -1
- package/lib/cjs/SynchronousChannel.d.ts +62 -0
- package/lib/cjs/SynchronousChannel.d.ts.map +1 -0
- package/lib/cjs/SynchronousChannel.js +11 -0
- package/lib/cjs/SynchronousChannel.js.map +1 -0
- package/lib/cjs/Texture.d.ts +1 -1
- package/lib/cjs/Texture.js.map +1 -1
- package/lib/cjs/TileStorage.js.map +1 -1
- package/lib/cjs/TxnManager.d.ts +44 -4
- package/lib/cjs/TxnManager.d.ts.map +1 -1
- package/lib/cjs/TxnManager.js +72 -14
- package/lib/cjs/TxnManager.js.map +1 -1
- package/lib/cjs/ViewDefinition.d.ts +6 -6
- package/lib/cjs/ViewDefinition.d.ts.map +1 -1
- package/lib/cjs/ViewDefinition.js.map +1 -1
- package/lib/cjs/ViewStateHydrator.js.map +1 -1
- package/lib/cjs/ViewStore.js.map +1 -1
- package/lib/cjs/annotations/ElementDrivesTextAnnotation.js.map +1 -1
- package/lib/cjs/annotations/FrameGeometry.js.map +1 -1
- package/lib/cjs/annotations/LeaderGeometry.d.ts +22 -7
- package/lib/cjs/annotations/LeaderGeometry.d.ts.map +1 -1
- package/lib/cjs/annotations/LeaderGeometry.js +104 -36
- package/lib/cjs/annotations/LeaderGeometry.js.map +1 -1
- package/lib/cjs/annotations/TextAnnotationElement.d.ts +1 -1
- package/lib/cjs/annotations/TextAnnotationElement.d.ts.map +1 -1
- package/lib/cjs/annotations/TextAnnotationElement.js +25 -10
- package/lib/cjs/annotations/TextAnnotationElement.js.map +1 -1
- package/lib/cjs/annotations/TextAnnotationGeometry.js.map +1 -1
- package/lib/cjs/annotations/TextBlockGeometry.js.map +1 -1
- package/lib/cjs/annotations/TextBlockLayout.js.map +1 -1
- package/lib/cjs/assets/IModelChange.02.00.00.ecschema.xml +90 -90
- package/lib/cjs/assets/Settings/Schemas/Base.Schema.json +36 -36
- package/lib/cjs/assets/Settings/Schemas/Gcs.schema.json +28 -28
- package/lib/cjs/assets/Settings/Schemas/Workspace.Schema.json +94 -94
- package/lib/cjs/assets/Settings/backend.setting.json5 +21 -21
- package/lib/cjs/core-backend.d.ts +1 -0
- package/lib/cjs/core-backend.d.ts.map +1 -1
- package/lib/cjs/core-backend.js +1 -0
- package/lib/cjs/core-backend.js.map +1 -1
- package/lib/cjs/domains/FunctionalElements.js.map +1 -1
- package/lib/cjs/domains/FunctionalSchema.js.map +1 -1
- package/lib/cjs/domains/GenericElements.js.map +1 -1
- package/lib/cjs/domains/GenericSchema.js.map +1 -1
- package/lib/cjs/internal/ChangesetConflictArgs.js.map +1 -1
- package/lib/cjs/internal/ChannelAdmin.js.map +1 -1
- package/lib/cjs/internal/ECSqlInstanceReshaper.js.map +1 -1
- package/lib/cjs/internal/ElementLRUCache.js.map +1 -1
- package/lib/cjs/internal/FontFileImpl.js.map +1 -1
- package/lib/cjs/internal/HubMock.js.map +1 -1
- package/lib/cjs/internal/IModelDbFontsImpl.js.map +1 -1
- package/lib/cjs/internal/IntegrityCheck.d.ts +22 -0
- package/lib/cjs/internal/IntegrityCheck.d.ts.map +1 -1
- package/lib/cjs/internal/IntegrityCheck.js +13 -0
- package/lib/cjs/internal/IntegrityCheck.js.map +1 -1
- package/lib/cjs/internal/NativePlatform.js.map +1 -1
- package/lib/cjs/internal/NoLocks.js.map +1 -1
- package/lib/cjs/internal/NoReservations.d.ts +6 -0
- package/lib/cjs/internal/NoReservations.d.ts.map +1 -0
- package/lib/cjs/internal/NoReservations.js +21 -0
- package/lib/cjs/internal/NoReservations.js.map +1 -0
- package/lib/cjs/internal/OnlineStatus.js.map +1 -1
- package/lib/cjs/internal/SchemaSyncReservations.d.ts +4 -0
- package/lib/cjs/internal/SchemaSyncReservations.d.ts.map +1 -0
- package/lib/cjs/internal/SchemaSyncReservations.js +118 -0
- package/lib/cjs/internal/SchemaSyncReservations.js.map +1 -0
- package/lib/cjs/internal/ServerBasedLocks.js +33 -33
- package/lib/cjs/internal/ServerBasedLocks.js.map +1 -1
- package/lib/cjs/internal/Symbols.d.ts +1 -0
- package/lib/cjs/internal/Symbols.d.ts.map +1 -1
- package/lib/cjs/internal/Symbols.js +2 -1
- package/lib/cjs/internal/Symbols.js.map +1 -1
- package/lib/cjs/internal/annotations/fields.js.map +1 -1
- package/lib/cjs/internal/cross-package.js.map +1 -1
- package/lib/cjs/internal/workspace/SettingsEditorImpl.js.map +1 -1
- package/lib/cjs/internal/workspace/SettingsImpl.js.map +1 -1
- package/lib/cjs/internal/workspace/SettingsSchemasImpl.js.map +1 -1
- package/lib/cjs/internal/workspace/WorkspaceImpl.d.ts.map +1 -1
- package/lib/cjs/internal/workspace/WorkspaceImpl.js +7 -2
- package/lib/cjs/internal/workspace/WorkspaceImpl.js.map +1 -1
- package/lib/cjs/internal/workspace/WorkspaceSqliteDb.js.map +1 -1
- package/lib/cjs/rpc/multipart.js.map +1 -1
- package/lib/cjs/rpc/tracing.js.map +1 -1
- package/lib/cjs/rpc/web/logging.js.map +1 -1
- package/lib/cjs/rpc/web/request.js.map +1 -1
- package/lib/cjs/rpc/web/response.js.map +1 -1
- package/lib/cjs/rpc-impl/DevToolsRpcImpl.js.map +1 -1
- package/lib/cjs/rpc-impl/IModelReadRpcImpl.js.map +1 -1
- package/lib/cjs/rpc-impl/IModelTileRpcImpl.js.map +1 -1
- package/lib/cjs/rpc-impl/RpcBriefcaseUtility.js.map +1 -1
- package/lib/cjs/rpc-impl/SnapshotIModelRpcImpl.js.map +1 -1
- package/lib/cjs/workspace/Settings.js.map +1 -1
- package/lib/cjs/workspace/SettingsDb.js.map +1 -1
- package/lib/cjs/workspace/SettingsEditor.js.map +1 -1
- package/lib/cjs/workspace/SettingsSchemas.js.map +1 -1
- package/lib/cjs/workspace/Workspace.js.map +1 -1
- package/lib/cjs/workspace/WorkspaceEditor.js.map +1 -1
- package/lib/esm/BackendHubAccess.js.map +1 -1
- package/lib/esm/BackendLoggerCategory.js.map +1 -1
- package/lib/esm/BisCoreSchema.js.map +1 -1
- package/lib/esm/BlobContainerService.js.map +1 -1
- package/lib/esm/BriefcaseManager.js.map +1 -1
- package/lib/esm/CatalogDb.js.map +1 -1
- package/lib/esm/Category.d.ts +4 -4
- package/lib/esm/Category.js.map +1 -1
- package/lib/esm/ChangeSummaryManager.js +2 -2
- package/lib/esm/ChangeSummaryManager.js.map +1 -1
- package/lib/esm/ChangedElementsDb.js.map +1 -1
- package/lib/esm/ChangesetECAdaptor.d.ts +5 -0
- package/lib/esm/ChangesetECAdaptor.d.ts.map +1 -1
- package/lib/esm/ChangesetECAdaptor.js +261 -251
- package/lib/esm/ChangesetECAdaptor.js.map +1 -1
- package/lib/esm/ChangesetReader.js +3 -3
- package/lib/esm/ChangesetReader.js.map +1 -1
- package/lib/esm/ChangesetReaderTypes.js.map +1 -1
- package/lib/esm/ChannelControl.js.map +1 -1
- package/lib/esm/CheckpointManager.d.ts +3 -0
- package/lib/esm/CheckpointManager.d.ts.map +1 -1
- package/lib/esm/CheckpointManager.js +8 -2
- package/lib/esm/CheckpointManager.js.map +1 -1
- package/lib/esm/ClassRegistry.js +6 -6
- package/lib/esm/ClassRegistry.js.map +1 -1
- package/lib/esm/CloudSqlite.d.ts.map +1 -1
- package/lib/esm/CloudSqlite.js +19 -8
- package/lib/esm/CloudSqlite.js.map +1 -1
- package/lib/esm/CodeService.js.map +1 -1
- package/lib/esm/CodeSpecs.d.ts +3 -3
- package/lib/esm/CodeSpecs.js.map +1 -1
- package/lib/esm/ConcurrentQuery.js.map +1 -1
- package/lib/esm/CustomViewState3dCreator.js.map +1 -1
- package/lib/esm/DevTools.js.map +1 -1
- package/lib/esm/DisplayStyle.d.ts +2 -2
- package/lib/esm/DisplayStyle.js.map +1 -1
- package/lib/esm/ECDb.js.map +1 -1
- package/lib/esm/ECSchemaXmlContext.js.map +1 -1
- package/lib/esm/ECSqlRowExecutor.js.map +1 -1
- package/lib/esm/ECSqlStatement.js.map +1 -1
- package/lib/esm/ECSqlSyncReader.js.map +1 -1
- package/lib/esm/EditTxn.d.ts.map +1 -1
- package/lib/esm/EditTxn.js +1 -0
- package/lib/esm/EditTxn.js.map +1 -1
- package/lib/esm/Element.d.ts +48 -12
- package/lib/esm/Element.d.ts.map +1 -1
- package/lib/esm/Element.js +121 -25
- package/lib/esm/Element.js.map +1 -1
- package/lib/esm/ElementAspect.js.map +1 -1
- package/lib/esm/ElementGraphics.js.map +1 -1
- package/lib/esm/ElementTreeWalker.js.map +1 -1
- package/lib/esm/Entity.js.map +1 -1
- package/lib/esm/EntityReferences.js +1 -1
- package/lib/esm/EntityReferences.js.map +1 -1
- package/lib/esm/ExportGraphics.js.map +1 -1
- package/lib/esm/ExternalSource.js.map +1 -1
- package/lib/esm/FontFile.js.map +1 -1
- package/lib/esm/GeoCoordConfig.js.map +1 -1
- package/lib/esm/GeographicCRSServices.js.map +1 -1
- package/lib/esm/GeometrySummary.js +47 -47
- package/lib/esm/GeometrySummary.js.map +1 -1
- package/lib/esm/IModelDb.d.ts +76 -23
- package/lib/esm/IModelDb.d.ts.map +1 -1
- package/lib/esm/IModelDb.js +152 -43
- package/lib/esm/IModelDb.js.map +1 -1
- package/lib/esm/IModelDbFonts.js.map +1 -1
- package/lib/esm/IModelElementCloneContext.js.map +1 -1
- package/lib/esm/IModelHost.d.ts.map +1 -1
- package/lib/esm/IModelHost.js +3 -0
- package/lib/esm/IModelHost.js.map +1 -1
- package/lib/esm/IModelIncrementalSchemaLocater.js.map +1 -1
- package/lib/esm/IModelJsFs.js.map +1 -1
- package/lib/esm/ImageSourceConversion.js.map +1 -1
- package/lib/esm/IpcHost.js.map +1 -1
- package/lib/esm/LineStyle.js.map +1 -1
- package/lib/esm/LocalHub.js +1 -1
- package/lib/esm/LocalHub.js.map +1 -1
- package/lib/esm/LocalhostIpcHost.js.map +1 -1
- package/lib/esm/LockControl.js.map +1 -1
- package/lib/esm/Material.js.map +1 -1
- package/lib/esm/Model.d.ts +5 -5
- package/lib/esm/Model.d.ts.map +1 -1
- package/lib/esm/Model.js.map +1 -1
- package/lib/esm/NativeAppStorage.js.map +1 -1
- package/lib/esm/NativeHost.js.map +1 -1
- package/lib/esm/NavigationRelationship.js.map +1 -1
- package/lib/esm/PartialChangeUnifier.js +7 -7
- package/lib/esm/PartialChangeUnifier.js.map +1 -1
- package/lib/esm/PromiseMemoizer.js.map +1 -1
- package/lib/esm/PropertyStore.js +1 -1
- package/lib/esm/PropertyStore.js.map +1 -1
- package/lib/esm/Relationship.js.map +1 -1
- package/lib/esm/RpcBackend.js.map +1 -1
- package/lib/esm/SQLiteDb.js.map +1 -1
- package/lib/esm/Schema.js.map +1 -1
- package/lib/esm/SchemaSync.d.ts +37 -9
- package/lib/esm/SchemaSync.d.ts.map +1 -1
- package/lib/esm/SchemaSync.js +127 -8
- package/lib/esm/SchemaSync.js.map +1 -1
- package/lib/esm/SchemaUtils.js.map +1 -1
- package/lib/esm/SheetIndex.js.map +1 -1
- package/lib/esm/SqliteChangesetReader.js.map +1 -1
- package/lib/esm/SqliteStatement.js.map +1 -1
- package/lib/esm/StashManager.js.map +1 -1
- package/lib/esm/SynchronousChannel.d.ts +62 -0
- package/lib/esm/SynchronousChannel.d.ts.map +1 -0
- package/lib/esm/SynchronousChannel.js +9 -0
- package/lib/esm/SynchronousChannel.js.map +1 -0
- package/lib/esm/Texture.d.ts +1 -1
- package/lib/esm/Texture.js.map +1 -1
- package/lib/esm/TileStorage.js.map +1 -1
- package/lib/esm/TxnManager.d.ts +44 -4
- package/lib/esm/TxnManager.d.ts.map +1 -1
- package/lib/esm/TxnManager.js +72 -14
- package/lib/esm/TxnManager.js.map +1 -1
- package/lib/esm/ViewDefinition.d.ts +6 -6
- package/lib/esm/ViewDefinition.d.ts.map +1 -1
- package/lib/esm/ViewDefinition.js.map +1 -1
- package/lib/esm/ViewStateHydrator.js.map +1 -1
- package/lib/esm/ViewStore.js.map +1 -1
- package/lib/esm/annotations/ElementDrivesTextAnnotation.js.map +1 -1
- package/lib/esm/annotations/FrameGeometry.js.map +1 -1
- package/lib/esm/annotations/LeaderGeometry.d.ts +22 -7
- package/lib/esm/annotations/LeaderGeometry.d.ts.map +1 -1
- package/lib/esm/annotations/LeaderGeometry.js +104 -36
- package/lib/esm/annotations/LeaderGeometry.js.map +1 -1
- package/lib/esm/annotations/TextAnnotationElement.d.ts +1 -1
- package/lib/esm/annotations/TextAnnotationElement.d.ts.map +1 -1
- package/lib/esm/annotations/TextAnnotationElement.js +25 -10
- package/lib/esm/annotations/TextAnnotationElement.js.map +1 -1
- package/lib/esm/annotations/TextAnnotationGeometry.js.map +1 -1
- package/lib/esm/annotations/TextBlockGeometry.js.map +1 -1
- package/lib/esm/annotations/TextBlockLayout.js.map +1 -1
- package/lib/esm/core-backend.d.ts +1 -0
- package/lib/esm/core-backend.d.ts.map +1 -1
- package/lib/esm/core-backend.js +1 -0
- package/lib/esm/core-backend.js.map +1 -1
- package/lib/esm/domains/FunctionalElements.js.map +1 -1
- package/lib/esm/domains/FunctionalSchema.js.map +1 -1
- package/lib/esm/domains/GenericElements.js.map +1 -1
- package/lib/esm/domains/GenericSchema.js.map +1 -1
- package/lib/esm/internal/ChangesetConflictArgs.js.map +1 -1
- package/lib/esm/internal/ChannelAdmin.js.map +1 -1
- package/lib/esm/internal/ECSqlInstanceReshaper.js.map +1 -1
- package/lib/esm/internal/ElementLRUCache.js.map +1 -1
- package/lib/esm/internal/FontFileImpl.js.map +1 -1
- package/lib/esm/internal/HubMock.js.map +1 -1
- package/lib/esm/internal/IModelDbFontsImpl.js.map +1 -1
- package/lib/esm/internal/IntegrityCheck.d.ts +22 -0
- package/lib/esm/internal/IntegrityCheck.d.ts.map +1 -1
- package/lib/esm/internal/IntegrityCheck.js +13 -0
- package/lib/esm/internal/IntegrityCheck.js.map +1 -1
- package/lib/esm/internal/NativePlatform.js.map +1 -1
- package/lib/esm/internal/NoLocks.js.map +1 -1
- package/lib/esm/internal/NoReservations.d.ts +6 -0
- package/lib/esm/internal/NoReservations.d.ts.map +1 -0
- package/lib/esm/internal/NoReservations.js +18 -0
- package/lib/esm/internal/NoReservations.js.map +1 -0
- package/lib/esm/internal/OnlineStatus.js.map +1 -1
- package/lib/esm/internal/SchemaSyncReservations.d.ts +4 -0
- package/lib/esm/internal/SchemaSyncReservations.d.ts.map +1 -0
- package/lib/esm/internal/SchemaSyncReservations.js +115 -0
- package/lib/esm/internal/SchemaSyncReservations.js.map +1 -0
- package/lib/esm/internal/ServerBasedLocks.js +33 -33
- package/lib/esm/internal/ServerBasedLocks.js.map +1 -1
- package/lib/esm/internal/Symbols.d.ts +1 -0
- package/lib/esm/internal/Symbols.d.ts.map +1 -1
- package/lib/esm/internal/Symbols.js +1 -0
- package/lib/esm/internal/Symbols.js.map +1 -1
- package/lib/esm/internal/annotations/fields.js.map +1 -1
- package/lib/esm/internal/cross-package.js.map +1 -1
- package/lib/esm/internal/workspace/SettingsEditorImpl.js.map +1 -1
- package/lib/esm/internal/workspace/SettingsImpl.js.map +1 -1
- package/lib/esm/internal/workspace/SettingsSchemasImpl.js.map +1 -1
- package/lib/esm/internal/workspace/WorkspaceImpl.d.ts.map +1 -1
- package/lib/esm/internal/workspace/WorkspaceImpl.js +7 -2
- package/lib/esm/internal/workspace/WorkspaceImpl.js.map +1 -1
- package/lib/esm/internal/workspace/WorkspaceSqliteDb.js.map +1 -1
- package/lib/esm/rpc/multipart.js.map +1 -1
- package/lib/esm/rpc/tracing.js.map +1 -1
- package/lib/esm/rpc/web/logging.js.map +1 -1
- package/lib/esm/rpc/web/request.js.map +1 -1
- package/lib/esm/rpc/web/response.js.map +1 -1
- package/lib/esm/rpc-impl/DevToolsRpcImpl.js.map +1 -1
- package/lib/esm/rpc-impl/IModelReadRpcImpl.js.map +1 -1
- package/lib/esm/rpc-impl/IModelTileRpcImpl.js.map +1 -1
- package/lib/esm/rpc-impl/RpcBriefcaseUtility.js.map +1 -1
- package/lib/esm/rpc-impl/SnapshotIModelRpcImpl.js.map +1 -1
- package/lib/esm/test/AdvancedEqual.js.map +1 -1
- package/lib/esm/test/AnnotationTestUtils.js.map +1 -1
- package/lib/esm/test/AttachDb.test.js +11 -11
- package/lib/esm/test/AttachDb.test.js.map +1 -1
- package/lib/esm/test/ElementDrivesElement.test.js +23 -23
- package/lib/esm/test/ElementDrivesElement.test.js.map +1 -1
- package/lib/esm/test/ElementLRUCache.test.js.map +1 -1
- package/lib/esm/test/GeometryTestUtil.js.map +1 -1
- package/lib/esm/test/IModelHost.test.js.map +1 -1
- package/lib/esm/test/IModelTestUtils.d.ts +1 -1
- package/lib/esm/test/IModelTestUtils.d.ts.map +1 -1
- package/lib/esm/test/IModelTestUtils.js +8 -3
- package/lib/esm/test/IModelTestUtils.js.map +1 -1
- package/lib/esm/test/ImageSourceConversion.test.js.map +1 -1
- package/lib/esm/test/IpcHost.test.js.map +1 -1
- package/lib/esm/test/KnownTestLocations.js.map +1 -1
- package/lib/esm/test/PrintElementTree.js.map +1 -1
- package/lib/esm/test/PropertyDb.test.js.map +1 -1
- package/lib/esm/test/SchemaChangesetCanBeReversed.test.js +51 -51
- package/lib/esm/test/SchemaChangesetCanBeReversed.test.js.map +1 -1
- package/lib/esm/test/SchemaUtils.test.js +25 -25
- package/lib/esm/test/SchemaUtils.test.js.map +1 -1
- package/lib/esm/test/SequentialLogMatcher.js.map +1 -1
- package/lib/esm/test/SquashSchemaAndDataChanges.test.js +129 -129
- package/lib/esm/test/SquashSchemaAndDataChanges.test.js.map +1 -1
- package/lib/esm/test/TestChangeSetUtility.js.map +1 -1
- package/lib/esm/test/TestEditTxn.js.map +1 -1
- package/lib/esm/test/TestUtils.js.map +1 -1
- package/lib/esm/test/annotations/Fields.test.js +53 -53
- package/lib/esm/test/annotations/Fields.test.js.map +1 -1
- package/lib/esm/test/annotations/FrameGeometry.test.js.map +1 -1
- package/lib/esm/test/annotations/LeaderGeometry.test.js +178 -2
- package/lib/esm/test/annotations/LeaderGeometry.test.js.map +1 -1
- package/lib/esm/test/annotations/TextAnnotation.test.js +48 -18
- package/lib/esm/test/annotations/TextAnnotation.test.js.map +1 -1
- package/lib/esm/test/annotations/TextBlock.test.js.map +1 -1
- package/lib/esm/test/assets/IncrementalSchemaLocater/configs/old.config.js.map +1 -1
- package/lib/esm/test/assets/IncrementalSchemaLocater/configs/simple.config.js.map +1 -1
- package/lib/esm/test/categories/Category.test.js.map +1 -1
- package/lib/esm/test/codespec/CodeSpec.test.js.map +1 -1
- package/lib/esm/test/ecdb/CTE.test.js +88 -88
- package/lib/esm/test/ecdb/CTE.test.js.map +1 -1
- package/lib/esm/test/ecdb/ConcurrentQuery.test.js +19 -19
- package/lib/esm/test/ecdb/ConcurrentQuery.test.js.map +1 -1
- package/lib/esm/test/ecdb/ConcurrentQueryLoad.test.js +15 -15
- package/lib/esm/test/ecdb/ConcurrentQueryLoad.test.js.map +1 -1
- package/lib/esm/test/ecdb/ECDb.test.js +72 -72
- package/lib/esm/test/ecdb/ECDb.test.js.map +1 -1
- package/lib/esm/test/ecdb/ECDbTestHelper.js.map +1 -1
- package/lib/esm/test/ecdb/ECSchemaXmlContext.test.js.map +1 -1
- package/lib/esm/test/ecdb/ECSqlAst.test.js +65 -65
- package/lib/esm/test/ecdb/ECSqlAst.test.js.map +1 -1
- package/lib/esm/test/ecdb/ECSqlQuery.test.js +4 -4
- package/lib/esm/test/ecdb/ECSqlQuery.test.js.map +1 -1
- package/lib/esm/test/ecdb/ECSqlStatement.test.js +509 -332
- package/lib/esm/test/ecdb/ECSqlStatement.test.js.map +1 -1
- package/lib/esm/test/ecdb/ECSqlSyncReader.test.js +4 -4
- package/lib/esm/test/ecdb/ECSqlSyncReader.test.js.map +1 -1
- package/lib/esm/test/ecdb/QueryReaders.test.js +33 -47
- package/lib/esm/test/ecdb/QueryReaders.test.js.map +1 -1
- package/lib/esm/test/ecdb/SqliteStatement.test.js.map +1 -1
- package/lib/esm/test/ecsql/dataset/ECSqlDatasets.js.map +1 -1
- package/lib/esm/test/ecsql/src/ECSqlTestGenerator.js +21 -21
- package/lib/esm/test/ecsql/src/ECSqlTestGenerator.js.map +1 -1
- package/lib/esm/test/ecsql/src/ECSqlTestParser.js.map +1 -1
- package/lib/esm/test/ecsql/src/ECSqlTestRunner.test.js +2 -2
- package/lib/esm/test/ecsql/src/ECSqlTestRunner.test.js.map +1 -1
- package/lib/esm/test/element/DeleteDefinitionElements.test.js.map +1 -1
- package/lib/esm/test/element/ElementAspect.test.js +176 -24
- package/lib/esm/test/element/ElementAspect.test.js.map +1 -1
- package/lib/esm/test/element/ElementDependencyGraph.test.js.map +1 -1
- package/lib/esm/test/element/ElementRoundTrip.test.js +224 -141
- package/lib/esm/test/element/ElementRoundTrip.test.js.map +1 -1
- package/lib/esm/test/element/ExcludedElements.test.js.map +1 -1
- package/lib/esm/test/element/ExternalSource.test.js.map +1 -1
- package/lib/esm/test/element/NullStructArray.test.js +13 -13
- package/lib/esm/test/element/NullStructArray.test.js.map +1 -1
- package/lib/esm/test/element/ProjectInformationRecord.test.js.map +1 -1
- package/lib/esm/test/element/SheetInformationAspect.test.js.map +1 -1
- package/lib/esm/test/element/UrlLink.test.js.map +1 -1
- package/lib/esm/test/example-code/EditTxn.test.d.ts +2 -0
- package/lib/esm/test/example-code/EditTxn.test.d.ts.map +1 -0
- package/lib/esm/test/example-code/EditTxn.test.js +47 -0
- package/lib/esm/test/example-code/EditTxn.test.js.map +1 -0
- package/lib/esm/test/font/FontFile.test.js.map +1 -1
- package/lib/esm/test/font/IModelDbFonts.test.js.map +1 -1
- package/lib/esm/test/hubaccess/ApplyChangeset.test.js +32 -32
- package/lib/esm/test/hubaccess/ApplyChangeset.test.js.map +1 -1
- package/lib/esm/test/hubaccess/BriefcaseManager.test.js.map +1 -1
- package/lib/esm/test/hubaccess/CheckpointManager.test.js +43 -1
- package/lib/esm/test/hubaccess/CheckpointManager.test.js.map +1 -1
- package/lib/esm/test/hubaccess/CodeSwap.test.js.map +1 -1
- package/lib/esm/test/hubaccess/Rebase.test.js +56 -56
- package/lib/esm/test/hubaccess/Rebase.test.js.map +1 -1
- package/lib/esm/test/hubaccess/SemanticRebase.test.js +345 -345
- package/lib/esm/test/hubaccess/SemanticRebase.test.js.map +1 -1
- package/lib/esm/test/imageData.js.map +1 -1
- package/lib/esm/test/imodel/Code.test.js.map +1 -1
- package/lib/esm/test/imodel/ElementTreeWalker.test.js.map +1 -1
- package/lib/esm/test/imodel/GetTextureImage.test.js.map +1 -1
- package/lib/esm/test/imodel/IModelECSql.test.d.ts +2 -0
- package/lib/esm/test/imodel/IModelECSql.test.d.ts.map +1 -0
- package/lib/esm/test/imodel/IModelECSql.test.js +367 -0
- package/lib/esm/test/imodel/IModelECSql.test.js.map +1 -0
- package/lib/esm/test/imodel/IModelElements.test.d.ts +2 -0
- package/lib/esm/test/imodel/IModelElements.test.d.ts.map +1 -0
- package/lib/esm/test/imodel/IModelElements.test.js +969 -0
- package/lib/esm/test/imodel/IModelElements.test.js.map +1 -0
- package/lib/esm/test/imodel/IModelGeolocation.test.d.ts +2 -0
- package/lib/esm/test/imodel/IModelGeolocation.test.d.ts.map +1 -0
- package/lib/esm/test/imodel/IModelGeolocation.test.js +539 -0
- package/lib/esm/test/imodel/IModelGeolocation.test.js.map +1 -0
- package/lib/esm/test/imodel/IModelLifecycle.test.d.ts +2 -0
- package/lib/esm/test/imodel/IModelLifecycle.test.d.ts.map +1 -0
- package/lib/esm/test/imodel/IModelLifecycle.test.js +499 -0
- package/lib/esm/test/imodel/IModelLifecycle.test.js.map +1 -0
- package/lib/esm/test/imodel/IModelMetadata.test.d.ts +2 -0
- package/lib/esm/test/imodel/IModelMetadata.test.d.ts.map +1 -0
- package/lib/esm/test/imodel/IModelMetadata.test.js +274 -0
- package/lib/esm/test/imodel/IModelMetadata.test.js.map +1 -0
- package/lib/esm/test/imodel/IModelModels.test.d.ts +2 -0
- package/lib/esm/test/imodel/IModelModels.test.d.ts.map +1 -0
- package/lib/esm/test/imodel/IModelModels.test.js +357 -0
- package/lib/esm/test/imodel/IModelModels.test.js.map +1 -0
- package/lib/esm/test/imodel/IModelRelationships.test.d.ts +2 -0
- package/lib/esm/test/imodel/IModelRelationships.test.d.ts.map +1 -0
- package/lib/esm/test/imodel/IModelRelationships.test.js +407 -0
- package/lib/esm/test/imodel/IModelRelationships.test.js.map +1 -0
- package/lib/esm/test/imodel/IModelTestFixtures.d.ts +53 -0
- package/lib/esm/test/imodel/IModelTestFixtures.d.ts.map +1 -0
- package/lib/esm/test/imodel/IModelTestFixtures.js +107 -0
- package/lib/esm/test/imodel/IModelTestFixtures.js.map +1 -0
- package/lib/esm/test/imodel/IModelViews.test.d.ts +2 -0
- package/lib/esm/test/imodel/IModelViews.test.d.ts.map +1 -0
- package/lib/esm/test/imodel/IModelViews.test.js +199 -0
- package/lib/esm/test/imodel/IModelViews.test.js.map +1 -0
- package/lib/esm/test/imodel/ProjectExtents.test.js.map +1 -1
- package/lib/esm/test/imodel/SchemaXmlImport.test.js +21 -21
- package/lib/esm/test/imodel/SchemaXmlImport.test.js.map +1 -1
- package/lib/esm/test/incrementalSchemaLocater/ECSqlQueries.test.js.map +1 -1
- package/lib/esm/test/incrementalSchemaLocater/IncrementalLoading.test.js.map +1 -1
- package/lib/esm/test/incrementalSchemaLocater/TestContext.js.map +1 -1
- package/lib/esm/test/index.d.ts +0 -1
- package/lib/esm/test/index.d.ts.map +1 -1
- package/lib/esm/test/index.js +0 -1
- package/lib/esm/test/index.js.map +1 -1
- package/lib/esm/test/internal/ECSqlInstanceReshaper.test.js +32 -32
- package/lib/esm/test/internal/ECSqlInstanceReshaper.test.js.map +1 -1
- package/lib/esm/test/misc/DevTools.test.js.map +1 -1
- package/lib/esm/test/misc/EntitySubClasses.test.js.map +1 -1
- package/lib/esm/test/misc/PromiseMemoizer.test.js.map +1 -1
- package/lib/esm/test/native/DgnDbWorker.test.js.map +1 -1
- package/lib/esm/test/rpc/response.test.js.map +1 -1
- package/lib/esm/test/schema/ClassRegistry.test.js +99 -99
- package/lib/esm/test/schema/ClassRegistry.test.js.map +1 -1
- package/lib/esm/test/schema/FunctionalDomain.test.js.map +1 -1
- package/lib/esm/test/schema/GenericDomain.test.js.map +1 -1
- package/lib/esm/test/schema/IModelSchemaContext.test.js +9 -9
- package/lib/esm/test/schema/IModelSchemaContext.test.js.map +1 -1
- package/lib/esm/test/schema/SchemaImportCallbacks.test.js +19 -19
- package/lib/esm/test/schema/SchemaImportCallbacks.test.js.map +1 -1
- package/lib/esm/test/schema/SchemaViewFragmentLoading.test.js +21 -21
- package/lib/esm/test/schema/SchemaViewFragmentLoading.test.js.map +1 -1
- package/lib/esm/test/schema/SchemaViewHidden.test.js +109 -109
- package/lib/esm/test/schema/SchemaViewHidden.test.js.map +1 -1
- package/lib/esm/test/schema/SchemaViewKoQ.test.js +13 -13
- package/lib/esm/test/schema/SchemaViewKoQ.test.js.map +1 -1
- package/lib/esm/test/schema/SchemaViewLifecycle.test.js +15 -15
- package/lib/esm/test/schema/SchemaViewLifecycle.test.js.map +1 -1
- package/lib/esm/test/schema/SchemaViewValidation.test.js +8 -8
- package/lib/esm/test/schema/SchemaViewValidation.test.js.map +1 -1
- package/lib/esm/test/sheetindex/SheetIndex.test.js.map +1 -1
- package/lib/esm/test/standalone/ChangeElementParentModel.test.js.map +1 -1
- package/lib/esm/test/standalone/ChangeMerge.test.js.map +1 -1
- package/lib/esm/test/standalone/ChangesetReader.test.js +321 -339
- package/lib/esm/test/standalone/ChangesetReader.test.js.map +1 -1
- package/lib/esm/test/standalone/CloudSqlite.test.js +73 -0
- package/lib/esm/test/standalone/CloudSqlite.test.js.map +1 -1
- package/lib/esm/test/standalone/CustomViewState3dCreator.test.js.map +1 -1
- package/lib/esm/test/standalone/DeleteElements.test.js.map +1 -1
- package/lib/esm/test/standalone/DgnDomainMergeConflict.test.d.ts +2 -0
- package/lib/esm/test/standalone/DgnDomainMergeConflict.test.d.ts.map +1 -0
- package/lib/esm/test/standalone/DgnDomainMergeConflict.test.js +263 -0
- package/lib/esm/test/standalone/DgnDomainMergeConflict.test.js.map +1 -0
- package/lib/esm/test/standalone/DisplayStyle.test.js.map +1 -1
- package/lib/esm/test/standalone/Drawing.test.js.map +1 -1
- package/lib/esm/test/standalone/EditTxn.test.js.map +1 -1
- package/lib/esm/test/standalone/ElementGraphics.test.js.map +1 -1
- package/lib/esm/test/standalone/ElementMesh.test.js.map +1 -1
- package/lib/esm/test/standalone/ExportGraphics.test.js +14 -14
- package/lib/esm/test/standalone/ExportGraphics.test.js.map +1 -1
- package/lib/esm/test/standalone/GeometryChangeEvents.test.js.map +1 -1
- package/lib/esm/test/standalone/GeometryStream.test.js +1 -3
- package/lib/esm/test/standalone/GeometryStream.test.js.map +1 -1
- package/lib/esm/test/standalone/HubMock.test.js.map +1 -1
- package/lib/esm/test/standalone/IModelLimits.test.js.map +1 -1
- package/lib/esm/test/standalone/IModelWrite.test.d.ts.map +1 -1
- package/lib/esm/test/standalone/IModelWrite.test.js +105 -28
- package/lib/esm/test/standalone/IModelWrite.test.js.map +1 -1
- package/lib/esm/test/standalone/ITwinWorkspace.test.js.map +1 -1
- package/lib/esm/test/standalone/InlineGeometryPartReferences.test.js.map +1 -1
- package/lib/esm/test/standalone/IntegrityCheck.test.js +29 -10
- package/lib/esm/test/standalone/IntegrityCheck.test.js.map +1 -1
- package/lib/esm/test/standalone/MergeConflict.test.js.map +1 -1
- package/lib/esm/test/standalone/NativeAppStorage.test.js.map +1 -1
- package/lib/esm/test/standalone/RenderMaterialElement.test.js.map +1 -1
- package/lib/esm/test/standalone/RenderTimeline.test.js.map +1 -1
- package/lib/esm/test/standalone/SQLiteDb.test.js.map +1 -1
- package/lib/esm/test/standalone/SQliteChangesetReaderAndChangesetECAdaptor.test.js +158 -135
- package/lib/esm/test/standalone/SQliteChangesetReaderAndChangesetECAdaptor.test.js.map +1 -1
- package/lib/esm/test/standalone/SchemaSyncDb.test.d.ts +2 -0
- package/lib/esm/test/standalone/SchemaSyncDb.test.d.ts.map +1 -0
- package/lib/esm/test/standalone/SchemaSyncDb.test.js +221 -0
- package/lib/esm/test/standalone/SchemaSyncDb.test.js.map +1 -0
- package/lib/esm/test/standalone/SchemaSyncElementReservation.test.d.ts +2 -0
- package/lib/esm/test/standalone/SchemaSyncElementReservation.test.d.ts.map +1 -0
- package/lib/esm/test/standalone/SchemaSyncElementReservation.test.js +459 -0
- package/lib/esm/test/standalone/SchemaSyncElementReservation.test.js.map +1 -0
- package/lib/esm/test/standalone/SchemaUtils.test.js.map +1 -1
- package/lib/esm/test/standalone/SectionDrawing.test.js.map +1 -1
- package/lib/esm/test/standalone/ServerBasedLocks.test.js.map +1 -1
- package/lib/esm/test/standalone/Setting.test.js.map +1 -1
- package/lib/esm/test/standalone/Settings.test.js.map +1 -1
- package/lib/esm/test/standalone/SettingsSchemas.test.js.map +1 -1
- package/lib/esm/test/standalone/SnapshotDb.test.js +1 -0
- package/lib/esm/test/standalone/SnapshotDb.test.js.map +1 -1
- package/lib/esm/test/standalone/StandaloneDb.test.js +20 -20
- package/lib/esm/test/standalone/StandaloneDb.test.js.map +1 -1
- package/lib/esm/test/standalone/Texture.test.js.map +1 -1
- package/lib/esm/test/standalone/TileCache.test.js.map +1 -1
- package/lib/esm/test/standalone/TileTree.test.js.map +1 -1
- package/lib/esm/test/standalone/TxnManager.test.js +108 -8
- package/lib/esm/test/standalone/TxnManager.test.js.map +1 -1
- package/lib/esm/test/standalone/ViewDefinition.test.js.map +1 -1
- package/lib/esm/test/standalone/ViewStoreDb.test.js.map +1 -1
- package/lib/esm/test/standalone/Workspace.test.js +52 -0
- package/lib/esm/test/standalone/Workspace.test.js.map +1 -1
- package/lib/esm/test/standalone/iModelDb.test.js.map +1 -1
- package/lib/esm/test/workspace/SettingsDb.test.js.map +1 -1
- package/lib/esm/workspace/Settings.js.map +1 -1
- package/lib/esm/workspace/SettingsDb.js.map +1 -1
- package/lib/esm/workspace/SettingsEditor.js.map +1 -1
- package/lib/esm/workspace/SettingsSchemas.js.map +1 -1
- package/lib/esm/workspace/Workspace.js.map +1 -1
- package/lib/esm/workspace/WorkspaceEditor.js.map +1 -1
- package/package.json +19 -23
- package/lib/esm/test/RevisionUtility.d.ts +0 -33
- package/lib/esm/test/RevisionUtility.d.ts.map +0 -1
- package/lib/esm/test/RevisionUtility.js +0 -52
- package/lib/esm/test/RevisionUtility.js.map +0 -1
- package/lib/esm/test/imodel/IModel.test.d.ts +0 -2
- package/lib/esm/test/imodel/IModel.test.d.ts.map +0 -1
- package/lib/esm/test/imodel/IModel.test.js +0 -3279
- package/lib/esm/test/imodel/IModel.test.js.map +0 -1
|
@@ -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 { expect, use } from \"chai\";\nimport { TestContext } from \"./TestContext\";\nimport { IModelIncrementalSchemaLocater } from \"../../IModelIncrementalSchemaLocater\";\nimport * as deepEqualInAnyOrder from \"deep-equal-in-any-order\";\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\n/**\n * A test locater that exposes the protected methods of IModelIncrementalSchemaLocater for granular testing.\n */\nabstract class TestSchemaLocater extends IModelIncrementalSchemaLocater {\n public abstract override getSchemaJson: IModelIncrementalSchemaLocater[\"getSchemaJson\"];\n public abstract override getConstants: IModelIncrementalSchemaLocater[\"getConstants\"];\n public abstract override getCustomAttributeClasses: IModelIncrementalSchemaLocater[\"getCustomAttributeClasses\"];\n public abstract override getEntities: IModelIncrementalSchemaLocater[\"getEntities\"];\n public abstract override getEnumerations: IModelIncrementalSchemaLocater[\"getEnumerations\"];\n public abstract override getFormats: IModelIncrementalSchemaLocater[\"getFormats\"];\n public abstract override getInvertedUnits: IModelIncrementalSchemaLocater[\"getInvertedUnits\"];\n public abstract override getKindOfQuantities: IModelIncrementalSchemaLocater[\"getKindOfQuantities\"];\n public abstract override getMixins: IModelIncrementalSchemaLocater[\"getMixins\"];\n public abstract override getPhenomenon: IModelIncrementalSchemaLocater[\"getPhenomenon\"];\n public abstract override getPropertyCategories: IModelIncrementalSchemaLocater[\"getPropertyCategories\"];\n public abstract override getRelationships: IModelIncrementalSchemaLocater[\"getRelationships\"];\n public abstract override getStructs: IModelIncrementalSchemaLocater[\"getStructs\"];\n public abstract override getUnits: IModelIncrementalSchemaLocater[\"getUnits\"];\n public abstract override getUnitSystems: IModelIncrementalSchemaLocater[\"getUnitSystems\"];\n}\n\ndescribe(\"ECSql query tests\", function () {\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 async function createTestContext() {\n const testEnv = await TestContext.create();\n return testEnv as TestContext<TestSchemaLocater>;\n }\n\n it(\"Schema query, props parsed successfully\", async function () {\n const testSchemaKey = new SchemaKey(\"SchemaTest\", 1, 0, 0);\n await using env = await createTestContext();\n\n const expectedSchema = await env.importAssetSchema(testSchemaKey);\n const actualSchemaProps = await env.schemaLocater.getSchemaJson(testSchemaKey, env.schemaContext);\n expect(actualSchemaProps).to.not.be.undefined;\n\n const actualSchema = await Schema.fromJson(actualSchemaProps!, env.schemaContext);\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 using env = await createTestContext();\n\n const schema = await env.importAssetSchema(testKey);\n const classPropsObjects = await env.schemaLocater.getEntities(testKey.name, env.schemaContext);\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 it(\"Entity query, props parsed successfully\", async function () {\n const testKey = new SchemaKey(\"EntityTest\", 1, 0, 0);\n await using env = await createTestContext();\n\n const schema = await env.importAssetSchema(testKey);\n const classPropsObjects = await env.schemaLocater.getEntities(testKey.name, env.schemaContext);\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 using env = await createTestContext();\n\n const schema = await env.importAssetSchema(testKey);\n const classPropsObjects = await env.schemaLocater.getStructs(testKey.name, env.schemaContext);\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 using env = await createTestContext();\n\n const schema = await env.importAssetSchema(testKey);\n const classPropsObjects = await env.schemaLocater.getMixins(testKey.name, env.schemaContext);\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 using env = await createTestContext();\n\n const schema = await env.importAssetSchema(testKey);\n const classPropsObjects = await env.schemaLocater.getRelationships(testKey.name, env.schemaContext);\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 using env = await createTestContext();\n\n const schema = await env.importAssetSchema(testKey);\n const classPropsObjects = await env.schemaLocater.getCustomAttributeClasses(testKey.name, env.schemaContext);\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 using env = await createTestContext();\n\n const schema = await env.importAssetSchema(testKey);\n const itemPropsObjects = await env.schemaLocater.getKindOfQuantities(testKey.name, env.schemaContext);\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 using env = await createTestContext();\n\n const schema = await env.importAssetSchema(testKey);\n const itemPropsObjects = await env.schemaLocater.getPropertyCategories(testKey.name, env.schemaContext);\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 using env = await createTestContext();\n\n const schema = await env.importAssetSchema(testKey);\n const itemPropsObjects = await env.schemaLocater.getEnumerations(testKey.name, env.schemaContext);\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 using env = await createTestContext();\n\n const schema = await env.importAssetSchema(testKey);\n const itemPropsObjects = await env.schemaLocater.getUnits(testKey.name, env.schemaContext);\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 using env = await createTestContext();\n\n const schema = await env.importAssetSchema(testKey);\n const itemPropsObjects = await env.schemaLocater.getInvertedUnits(testKey.name, env.schemaContext);\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 using env = await createTestContext();\n\n const schema = await env.importAssetSchema(testKey);\n const itemPropsObjects = await env.schemaLocater.getUnitSystems(testKey.name, env.schemaContext);\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 using env = await createTestContext();\n\n const schema = await env.importAssetSchema(testKey);\n const itemPropsObjects = await env.schemaLocater.getConstants(testKey.name, env.schemaContext);\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 using env = await createTestContext();\n\n const schema = await env.importAssetSchema(testKey);\n const itemPropsObjects = await env.schemaLocater.getPhenomenon(testKey.name, env.schemaContext);\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 using env = await createTestContext();\n\n const schema = await env.importAssetSchema(testKey);\n const itemPropsObjects = await env.schemaLocater.getFormats(testKey.name, env.schemaContext);\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 using env = await createTestContext();\n\n const schema = await env.importAssetSchema(testKey);\n const itemPropsObjects = await env.schemaLocater.getFormats(testKey.name, env.schemaContext);\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 using env = await createTestContext();\n\n const schema = await env.importAssetSchema(testKey);\n const itemPropsObjects = await env.schemaLocater.getStructs(testKey.name, env.schemaContext);\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"]}
|
|
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 { expect, use } from \"chai\";\r\nimport { TestContext } from \"./TestContext\";\r\nimport { IModelIncrementalSchemaLocater } from \"../../IModelIncrementalSchemaLocater\";\r\nimport * as deepEqualInAnyOrder from \"deep-equal-in-any-order\";\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\n/**\r\n * A test locater that exposes the protected methods of IModelIncrementalSchemaLocater for granular testing.\r\n */\r\nabstract class TestSchemaLocater extends IModelIncrementalSchemaLocater {\r\n public abstract override getSchemaJson: IModelIncrementalSchemaLocater[\"getSchemaJson\"];\r\n public abstract override getConstants: IModelIncrementalSchemaLocater[\"getConstants\"];\r\n public abstract override getCustomAttributeClasses: IModelIncrementalSchemaLocater[\"getCustomAttributeClasses\"];\r\n public abstract override getEntities: IModelIncrementalSchemaLocater[\"getEntities\"];\r\n public abstract override getEnumerations: IModelIncrementalSchemaLocater[\"getEnumerations\"];\r\n public abstract override getFormats: IModelIncrementalSchemaLocater[\"getFormats\"];\r\n public abstract override getInvertedUnits: IModelIncrementalSchemaLocater[\"getInvertedUnits\"];\r\n public abstract override getKindOfQuantities: IModelIncrementalSchemaLocater[\"getKindOfQuantities\"];\r\n public abstract override getMixins: IModelIncrementalSchemaLocater[\"getMixins\"];\r\n public abstract override getPhenomenon: IModelIncrementalSchemaLocater[\"getPhenomenon\"];\r\n public abstract override getPropertyCategories: IModelIncrementalSchemaLocater[\"getPropertyCategories\"];\r\n public abstract override getRelationships: IModelIncrementalSchemaLocater[\"getRelationships\"];\r\n public abstract override getStructs: IModelIncrementalSchemaLocater[\"getStructs\"];\r\n public abstract override getUnits: IModelIncrementalSchemaLocater[\"getUnits\"];\r\n public abstract override getUnitSystems: IModelIncrementalSchemaLocater[\"getUnitSystems\"];\r\n}\r\n\r\ndescribe(\"ECSql query tests\", function () {\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 async function createTestContext() {\r\n const testEnv = await TestContext.create();\r\n return testEnv as TestContext<TestSchemaLocater>;\r\n }\r\n\r\n it(\"Schema query, props parsed successfully\", async function () {\r\n const testSchemaKey = new SchemaKey(\"SchemaTest\", 1, 0, 0);\r\n await using env = await createTestContext();\r\n\r\n const expectedSchema = await env.importAssetSchema(testSchemaKey);\r\n const actualSchemaProps = await env.schemaLocater.getSchemaJson(testSchemaKey, env.schemaContext);\r\n expect(actualSchemaProps).to.not.be.undefined;\r\n\r\n const actualSchema = await Schema.fromJson(actualSchemaProps!, env.schemaContext);\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 using env = await createTestContext();\r\n\r\n const schema = await env.importAssetSchema(testKey);\r\n const classPropsObjects = await env.schemaLocater.getEntities(testKey.name, env.schemaContext);\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 it(\"Entity query, props parsed successfully\", async function () {\r\n const testKey = new SchemaKey(\"EntityTest\", 1, 0, 0);\r\n await using env = await createTestContext();\r\n\r\n const schema = await env.importAssetSchema(testKey);\r\n const classPropsObjects = await env.schemaLocater.getEntities(testKey.name, env.schemaContext);\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 using env = await createTestContext();\r\n\r\n const schema = await env.importAssetSchema(testKey);\r\n const classPropsObjects = await env.schemaLocater.getStructs(testKey.name, env.schemaContext);\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 using env = await createTestContext();\r\n\r\n const schema = await env.importAssetSchema(testKey);\r\n const classPropsObjects = await env.schemaLocater.getMixins(testKey.name, env.schemaContext);\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 using env = await createTestContext();\r\n\r\n const schema = await env.importAssetSchema(testKey);\r\n const classPropsObjects = await env.schemaLocater.getRelationships(testKey.name, env.schemaContext);\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 using env = await createTestContext();\r\n\r\n const schema = await env.importAssetSchema(testKey);\r\n const classPropsObjects = await env.schemaLocater.getCustomAttributeClasses(testKey.name, env.schemaContext);\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 using env = await createTestContext();\r\n\r\n const schema = await env.importAssetSchema(testKey);\r\n const itemPropsObjects = await env.schemaLocater.getKindOfQuantities(testKey.name, env.schemaContext);\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 using env = await createTestContext();\r\n\r\n const schema = await env.importAssetSchema(testKey);\r\n const itemPropsObjects = await env.schemaLocater.getPropertyCategories(testKey.name, env.schemaContext);\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 using env = await createTestContext();\r\n\r\n const schema = await env.importAssetSchema(testKey);\r\n const itemPropsObjects = await env.schemaLocater.getEnumerations(testKey.name, env.schemaContext);\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 using env = await createTestContext();\r\n\r\n const schema = await env.importAssetSchema(testKey);\r\n const itemPropsObjects = await env.schemaLocater.getUnits(testKey.name, env.schemaContext);\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 using env = await createTestContext();\r\n\r\n const schema = await env.importAssetSchema(testKey);\r\n const itemPropsObjects = await env.schemaLocater.getInvertedUnits(testKey.name, env.schemaContext);\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 using env = await createTestContext();\r\n\r\n const schema = await env.importAssetSchema(testKey);\r\n const itemPropsObjects = await env.schemaLocater.getUnitSystems(testKey.name, env.schemaContext);\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 using env = await createTestContext();\r\n\r\n const schema = await env.importAssetSchema(testKey);\r\n const itemPropsObjects = await env.schemaLocater.getConstants(testKey.name, env.schemaContext);\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 using env = await createTestContext();\r\n\r\n const schema = await env.importAssetSchema(testKey);\r\n const itemPropsObjects = await env.schemaLocater.getPhenomenon(testKey.name, env.schemaContext);\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 using env = await createTestContext();\r\n\r\n const schema = await env.importAssetSchema(testKey);\r\n const itemPropsObjects = await env.schemaLocater.getFormats(testKey.name, env.schemaContext);\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 using env = await createTestContext();\r\n\r\n const schema = await env.importAssetSchema(testKey);\r\n const itemPropsObjects = await env.schemaLocater.getFormats(testKey.name, env.schemaContext);\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 using env = await createTestContext();\r\n\r\n const schema = await env.importAssetSchema(testKey);\r\n const itemPropsObjects = await env.schemaLocater.getStructs(testKey.name, env.schemaContext);\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"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IncrementalLoading.test.js","sourceRoot":"","sources":["../../../../src/test/incrementalSchemaLocater/IncrementalLoading.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAA+B,UAAU,EAAE,aAAa,EAC7D,cAAc,EAAE,SAAS,EAAE,eAAe,EAAiB,MACtD,0BAA0B,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAC9B,OAAO,EAAE,8BAA8B,EAAE,MAAM,sCAAsC,CAAC;AACtF,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,OAAO,gBAAgB,MAAM,uDAAuD,CAAC;AACrF,OAAO,mBAAmB,MAAM,0DAA0D,CAAC;AAE3F,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,cAAc,MAAM,kBAAkB,CAAC;AAEnD,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;AAEzB,SAAS,kBAAkB,CAAC,OAAe;IACzC,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,GAAG,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IACjE,MAAM,SAAS,GAAG,SAAS,CAAC,WAAW,CAAC,GAAG,UAAU,QAAQ,CAAC,CAAC;IAC/D,OAAO,IAAI,aAAa,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;AAChD,CAAC;AAED,QAAQ,CAAC,4BAA4B,EAAE;IACrC,QAAQ,CAAE,yCAAyC,EAAE,GAAG,EAAE;QACxD,MAAM,uBAAuB,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAC/D,MAAM,aAAa,GAAG,IAAI,SAAS,CAAC,uBAAuB,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAE3E,EAAE,CAAC,wBAAwB,EAAE,KAAK,IAAI,EAAE;;;gBACtC,MAAY,GAAG,kCAAG,MAAM,WAAW,CAAC,MAAM,EAAE,OAAA,CAAC;gBAC7C,MAAM,GAAG,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC;gBAE3C,MAAM,UAAU,GAAG,MAAM,GAAG,CAAC,aAAa,CAAC,aAAa,CAAC,aAAa,EAAE,eAAe,CAAC,KAAK,CAAe,CAAC;gBAC7G,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC;gBACvC,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC;gBAEjF,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,uBAAuB,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;gBAChH,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,IAAqB,EAAE,EAAE;oBACrF,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;wBACvB,MAAM,CAAC,uBAAuB,CAAC,UAAU,EAAE,qCAAqC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;oBACvI,CAAC;oBACD,OAAO,IAAI,CAAC;gBACd,CAAC,CAAC,CAAC;;;;;;;;;;;SACJ,CAAC,CAAC;QAEH,EAAE,CAAC,mCAAmC,EAAE,KAAK,IAAI,EAAE;;;gBACjD,MAAY,GAAG,kCAAG,MAAM,WAAW,CAAC,MAAM,EAAE,OAAA,CAAC;gBAC7C,MAAM,GAAG,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC;gBAE3C,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,aAAa,CAAC,SAAS,CAAC,aAAa,CAAW,CAAC;gBAC1E,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC;gBACnC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC;gBAC5D,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,uBAAuB,CAAC,WAAW,CAAC,CAAC;gBACpF,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,uBAAuB,CAAC,KAAK,CAAC,CAAC;gBAExE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,uBAAuB,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;gBAC5G,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC;oBACrC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;oBACtC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,IAAY,EAAE,EAAE,CAAC,cAAc,CAAC,IAAmC,CAAC,KAAK,SAAS,CAAC,CAAC;gBAClJ,CAAC;gBAED,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC;gBACnC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC;gBAE5D,MAAM,KAAK,GAAG,CAAC,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;gBACrC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC;gBAEpE,KAAK,MAAM,SAAS,IAAI,uBAAuB,CAAC,UAAU,EAAE,CAAC;oBAC3D,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;oBACrD,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC;oBACjC,MAAM,KAAK,GAAG,IAAK,CAAC,MAAM,EAAE,CAAC;oBAC7B,KAAK,MAAM,CAAC,YAAY,EAAE,aAAa,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC;wBACjF,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;oBACnF,CAAC;gBACH,CAAC;;;;;;;;;;;SACF,CAAC,CAAC;QAEH,EAAE,CAAC,mDAAmD,EAAE,KAAK,IAAI,EAAE;;;gBACjE,MAAY,GAAG,kCAAG,MAAM,WAAW,CAAC,MAAM,EAAE,OAAA,CAAC;gBAC7C,MAAM,GAAG,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC;gBAE3C,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,aAAa,CAAC,SAAS,CAAC,aAAa,CAAW,CAAC;gBAE1E,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC;gBACnC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC;gBAE5D,MAAM,eAAe,GAAG,kBAAkB,CAAC,uBAAuB,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;gBAC/F,MAAM,YAAY,GAAG,MAAM,GAAG,CAAC,aAAa,CAAC,aAAa,CAAC,eAAe,CAAY,CAAC;gBACvF,MAAM,CAAC,YAAY,EAAE,GAAG,eAAe,CAAC,QAAQ,gBAAgB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC;gBAEtF,MAAM,YAAY,GAAG,kBAAkB,CAAC,uBAAuB,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;gBACzF,MAAM,SAAS,GAAG,MAAM,GAAG,CAAC,aAAa,CAAC,aAAa,CAAC,YAAY,CAAY,CAAC;gBACjF,MAAM,CAAC,SAAS,EAAE,GAAG,YAAY,CAAC,QAAQ,gBAAgB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC;gBAEhF,MAAM,aAAa,GAAG,MAAM,YAAY,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;gBACvD,MAAM,CAAC,aAAa,EAAE,GAAG,YAAY,CAAC,IAAI,wBAAwB,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;SAChG,CAAC,CAAC;QAEH,EAAE,CAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;;;gBACnD,MAAY,GAAG,kCAAG,MAAM,WAAW,CAAC,MAAM,EAAE,OAAA,CAAC;gBAC7C,MAAM,GAAG,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC;gBAE3C,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,aAAa,CAAC,SAAS,CAAC,aAAa,CAAW,CAAC;gBAC1E,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC;gBACnC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC;gBAE5D,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,uBAAuB,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;gBAC5G,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC;oBACrC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;oBACtC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,IAAY,EAAE,EAAE,CAAC,cAAc,CAAC,IAAmC,CAAC,KAAK,SAAS,CAAC,CAAC;gBAClJ,CAAC;gBAED,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC;gBACnC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC;gBAE5D,uDAAuD;gBACvD,qDAAqD;gBACrD,IAAI,MAAM,CAAC,iBAAiB;oBAC1B,MAAM,MAAM,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC;gBAExC,MAAM,KAAK,GAAG,CAAC,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;gBACrC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC;gBAEpE,KAAK,MAAM,SAAS,IAAI,uBAAuB,CAAC,aAAa,EAAE,CAAC;oBAC9D,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;oBACrD,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC;oBAEjC,MAAM,SAAS,GAAG,IAAK,CAAC,MAAM,EAAE,CAAC;oBACjC,KAAK,MAAM,CAAC,YAAY,EAAE,aAAa,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC;wBACjF,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;oBACvF,CAAC;gBACH,CAAC;;;;;;;;;;;SACF,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,oCAAoC,EAAE,GAAG,EAAE;QAClD,EAAE,CAAC,mDAAmD,EAAE,KAAK,IAAI,EAAE;;;gBACjE,MAAY,GAAG,kCAAG,MAAM,WAAW,CAAC,MAAM,CAAC;oBACzC,OAAO,EAAE,gBAAgB,CAAC,OAAO;iBAClC,CAAC,OAAA,CAAC;gBAEH,MAAM,gBAAgB,GAAG,KAAK,EAAE,UAAkB,EAAsB,EAAE;oBACxE,MAAM,cAAc,GAAG,CAAC,MAAM,GAAG,CAAC,cAAc,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC;oBAChG,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;wBACjC,MAAM,IAAI,KAAK,CAAC,gBAAgB,UAAU,aAAa,CAAC,CAAC;oBAC3D,CAAC;oBACD,OAAO,SAAS,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;gBAC/C,CAAC,CAAA;gBAED,MAAM,uBAAuB,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBAC5D,MAAM,aAAa,GAAG,MAAM,gBAAgB,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC;gBAE3E,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,aAAa,CAAC,SAAS,CAAC,aAAa,CAAW,CAAC;gBAC1E,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC;gBACnC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC;gBAE5D,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,uBAAuB,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;gBAC5G,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC;oBACrC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;oBACtC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,IAAY,EAAE,EAAE,CAAC,cAAc,CAAC,IAAmC,CAAC,KAAK,SAAS,CAAC,CAAC;gBAClJ,CAAC;gBAED,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC;gBACnC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC;gBAE5D,MAAM,KAAK,GAAG,CAAC,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;gBACrC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC;gBAEpE,KAAK,MAAM,SAAS,IAAI,uBAAuB,CAAC,aAAa,EAAE,CAAC;oBAC9D,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;oBACrD,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC;oBAEjC,MAAM,SAAS,GAAG,IAAK,CAAC,MAAM,EAAE,CAAC;oBACjC,KAAK,MAAM,CAAC,YAAY,EAAE,aAAa,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC;wBACjF,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;oBACvF,CAAC;gBACH,CAAC;;;;;;;;;;;SACF,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,gCAAgC,EAAE,GAAG,EAAE;QAC9C,EAAE,CAAC,iGAAiG,EAAE,KAAK,IAAI,EAAE;;;gBAC/G,MAAY,GAAG,kCAAG,MAAM,WAAW,CAAC,MAAM,CAAC,EAAE,wBAAwB,EAAE,UAAU,EAAE,CAAC,OAAA,CAAC;gBACrF,MAAM,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC;gBACnD,MAAM,kBAAkB,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,YAAY,8BAA8B,CAAC,CAAC;gBACzG,MAAM,CAAC,kBAAkB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC;;;;;;;;;;;SAC5C,CAAC,CAAC;QAEH,EAAE,CAAC,4FAA4F,EAAE,KAAK,IAAI,EAAE;;;gBAC1G,MAAY,GAAG,kCAAG,MAAM,WAAW,CAAC,MAAM,CAAC,EAAE,wBAAwB,EAAE,SAAS,EAAE,CAAC,OAAA,CAAC;gBACpF,MAAM,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC;gBACnD,MAAM,kBAAkB,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,YAAY,8BAA8B,CAAC,CAAC;gBACzG,MAAM,CAAC,kBAAkB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC;;;;;;;;;;;SAChD,CAAC,CAAC;QAEH,EAAE,CAAC,sGAAsG,EAAE,KAAK,IAAI,EAAE;;;gBACpH,MAAY,GAAG,kCAAG,MAAM,WAAW,CAAC,MAAM,CAAC,EAAE,wBAAwB,EAAE,SAAS,EAAE,CAAC,OAAA,CAAC;gBACpF,MAAM,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC;gBACnD,MAAM,kBAAkB,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,YAAY,8BAA8B,CAAC,CAAC;gBACzG,MAAM,CAAC,kBAAkB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC;;;;;;;;;;;SAC5C,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { ECClass, Schema, SchemaInfo, SchemaItem, SchemaItemKey,\n SchemaItemType, SchemaKey, SchemaMatchType, WithSchemaKey }\n from \"@itwin/ecschema-metadata\";\nimport { expect } from \"chai\";\nimport { IModelIncrementalSchemaLocater } from \"../../IModelIncrementalSchemaLocater\";\nimport { TestContext } from \"./TestContext\";\n\nimport oldConfiguration from \"../assets/IncrementalSchemaLocater/configs/old.config\";\nimport simpleConfiguration from \"../assets/IncrementalSchemaLocater/configs/simple.config\";\n\nimport * as chai from \"chai\";\nimport * as chaiAsPromised from \"chai-as-promised\";\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 const testSchemaConfiguration = simpleConfiguration.schemas[0];\n const testSchemaKey = new SchemaKey(testSchemaConfiguration.name, 1, 0, 0);\n\n it(\"should get schema info\", async () => {\n await using env = await TestContext.create();\n await env.importAssetSchema(testSchemaKey);\n\n const schemaInfo = await env.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(\"should get schema with item stubs\", async () => {\n await using env = await TestContext.create();\n await env.importAssetSchema(testSchemaKey);\n\n const schema = await env.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(\"should get schema with class stubs with hierarchy\", async () => {\n await using env = await TestContext.create();\n await env.importAssetSchema(testSchemaKey);\n\n const schema = await env.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 env.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 env.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(\"should get schema full schema stack\", async () => {\n await using env = await TestContext.create();\n await env.importAssetSchema(testSchemaKey);\n\n const schema = await env.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 // Wait till schemas are fully loaded to be comparable.\n // TODO: remove this check when issue #1763 is fixed.\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 it(\"should succeed with incremental loading fallback.\", async () => {\n await using env = await TestContext.create({\n bimFile: oldConfiguration.bimFile,\n });\n\n const resolveSchemaKey = async (schemaName: string): Promise<SchemaKey> => {\n const schemaFullName = (await env.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 const testSchemaConfiguration = oldConfiguration.schemas[0];\n const testSchemaKey = await resolveSchemaKey(testSchemaConfiguration.name);\n\n const schema = await env.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 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(\"Test Incremental Loading setup\", () => {\n it(\"schema context should not have an instance of incremental schema locater if loading is disabled\", async () => {\n await using env = await TestContext.create({ incrementalSchemaLoading: \"disabled\" });\n const locaters = env.iModel.schemaContext.locaters;\n const incrementalLocater = locaters.find((locater) => locater instanceof IModelIncrementalSchemaLocater);\n expect(incrementalLocater).to.be.undefined;\n });\n\n it(\"schema context should have an instance of incremental schema locater if loading is enabled\", async () => {\n await using env = await TestContext.create({ incrementalSchemaLoading: \"enabled\" });\n const locaters = env.iModel.schemaContext.locaters;\n const incrementalLocater = locaters.find((locater) => locater instanceof IModelIncrementalSchemaLocater);\n expect(incrementalLocater).to.be.not.undefined;\n });\n\n it(\"schema context should not have an instance of incremental schema locater if loading is not specified\", async () => {\n await using env = await TestContext.create({ incrementalSchemaLoading: undefined });\n const locaters = env.iModel.schemaContext.locaters;\n const incrementalLocater = locaters.find((locater) => locater instanceof IModelIncrementalSchemaLocater);\n expect(incrementalLocater).to.be.undefined;\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, SchemaInfo, SchemaItem, SchemaItemKey,\r\n SchemaItemType, SchemaKey, SchemaMatchType, WithSchemaKey }\r\n from \"@itwin/ecschema-metadata\";\r\nimport { expect } from \"chai\";\r\nimport { IModelIncrementalSchemaLocater } from \"../../IModelIncrementalSchemaLocater\";\r\nimport { TestContext } from \"./TestContext\";\r\n\r\nimport oldConfiguration from \"../assets/IncrementalSchemaLocater/configs/old.config\";\r\nimport simpleConfiguration from \"../assets/IncrementalSchemaLocater/configs/simple.config\";\r\n\r\nimport * as chai from \"chai\";\r\nimport * as chaiAsPromised from \"chai-as-promised\";\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 const testSchemaConfiguration = simpleConfiguration.schemas[0];\r\n const testSchemaKey = new SchemaKey(testSchemaConfiguration.name, 1, 0, 0);\r\n\r\n it(\"should get schema info\", async () => {\r\n await using env = await TestContext.create();\r\n await env.importAssetSchema(testSchemaKey);\r\n\r\n const schemaInfo = await env.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(\"should get schema with item stubs\", async () => {\r\n await using env = await TestContext.create();\r\n await env.importAssetSchema(testSchemaKey);\r\n\r\n const schema = await env.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(\"should get schema with class stubs with hierarchy\", async () => {\r\n await using env = await TestContext.create();\r\n await env.importAssetSchema(testSchemaKey);\r\n\r\n const schema = await env.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 env.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 env.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(\"should get schema full schema stack\", async () => {\r\n await using env = await TestContext.create();\r\n await env.importAssetSchema(testSchemaKey);\r\n\r\n const schema = await env.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 // Wait till schemas are fully loaded to be comparable.\r\n // TODO: remove this check when issue #1763 is fixed.\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 it(\"should succeed with incremental loading fallback.\", async () => {\r\n await using env = await TestContext.create({\r\n bimFile: oldConfiguration.bimFile,\r\n });\r\n\r\n const resolveSchemaKey = async (schemaName: string): Promise<SchemaKey> => {\r\n const schemaFullName = (await env.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 const testSchemaConfiguration = oldConfiguration.schemas[0];\r\n const testSchemaKey = await resolveSchemaKey(testSchemaConfiguration.name);\r\n\r\n const schema = await env.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 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 it(\"schema context should not have an instance of incremental schema locater if loading is disabled\", async () => {\r\n await using env = await TestContext.create({ incrementalSchemaLoading: \"disabled\" });\r\n const locaters = env.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 using env = await TestContext.create({ incrementalSchemaLoading: \"enabled\" });\r\n const locaters = env.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 it(\"schema context should not have an instance of incremental schema locater if loading is not specified\", async () => {\r\n await using env = await TestContext.create({ incrementalSchemaLoading: undefined });\r\n const locaters = env.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});\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TestContext.js","sourceRoot":"","sources":["../../../../src/test/incrementalSchemaLocater/TestContext.ts"],"names":[],"mappings":"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","sourcesContent":["import { Schema, SchemaContext, SchemaGraphUtil, SchemaJsonLocater, SchemaKey, SchemaMatchType } from \"@itwin/ecschema-metadata\";\nimport { IModelIncrementalSchemaLocater } from \"../../IModelIncrementalSchemaLocater\";\nimport { BriefcaseDb, IModelDb, StandaloneDb } from \"../../IModelDb\";\nimport { IModelHost } from \"../../IModelHost\";\nimport { KnownTestLocations } from \"../KnownTestLocations\";\nimport { OpenMode } from \"@itwin/core-bentley\";\nimport { IModelJsFs } from \"../../IModelJsFs\";\nimport { ProfileOptions } from \"@itwin/core-common\";\nimport { SchemaXmlFileLocater } from \"@itwin/ecschema-locaters\";\nimport { DOMParser, XMLSerializer } from \"@xmldom/xmldom\";\nimport * as path from \"path\";\nimport { TestUtils } from \"../TestUtils\";\n\ninterface Options {\n readonly bimFile?: string;\n readonly incrementalSchemaLoading?: \"enabled\" | \"disabled\" | undefined;\n}\n\ntype SchemaLocaterType<TOptions> = TOptions extends { incrementalSchemaLoading: \"disabled\" } ? never : IModelIncrementalSchemaLocater;\n\nexport class TestContext<TLocater = never> implements AsyncDisposable {\n private readonly _iModel: IModelDb;\n private readonly _schemaLocater: TLocater;\n private readonly _assetContext: SchemaContext;\n\n private constructor(iModel: IModelDb) {\n this._iModel = iModel;\n this._schemaLocater = this._iModel.schemaContext.locaters.find((locater) => {\n return locater instanceof IModelIncrementalSchemaLocater;\n }) as TLocater;\n\n // Ideally we should not need a seperate context here to locate and locate the bisschemas from the\n // parent imodel context, but due to a bug in the incremental schema logic, we have to do this for now.\n // TODO: remove this when issue #1763 is fixed.\n this._assetContext = new SchemaContext();\n this._assetContext.addLocater(new SchemaJsonLocater((schemaName) => {\n return iModel.getSchemaProps(schemaName);\n }))\n const xmlAssetSchemaLocater = new SchemaXmlFileLocater();\n xmlAssetSchemaLocater.addSchemaSearchPath(path.join(KnownTestLocations.assetsDir, \"IncrementalSchemaLocater\"));\n this._assetContext.addLocater(xmlAssetSchemaLocater);\n\n iModel.schemaContext.addLocater(this._assetContext);\n }\n\n public get iModel(): IModelDb {\n return this._iModel;\n }\n\n public get schemaLocater(): TLocater {\n return this._schemaLocater;\n }\n\n public get schemaContext(): SchemaContext {\n return this._iModel.schemaContext;\n }\n\n public static async create<TOptions extends Options>(options?: TOptions): Promise<TestContext<SchemaLocaterType<TOptions>>> {\n if (!IModelHost.isValid) {\n await TestUtils.startBackend();\n }\n\n const iModel = options?.bimFile ?\n await this.loadIModelFile(options.bimFile) :\n await this.createIModel();\n\n const configuration = IModelHost.configuration;\n if (configuration) {\n const previousSetting = configuration.incrementalSchemaLoading;\n configuration.incrementalSchemaLoading = options ? options.incrementalSchemaLoading : \"enabled\";\n iModel.onBeforeClose.addOnce(() => {\n configuration.incrementalSchemaLoading = previousSetting;\n });\n }\n\n return new TestContext(iModel);\n }\n\n private static async loadIModelFile(bimFile: string): Promise<IModelDb> {\n const pathToBriefCase = path.join(KnownTestLocations.assetsDir, bimFile);\n return BriefcaseDb.open({\n fileName: pathToBriefCase,\n readonly: true,\n key: \"test-iModel\",\n });\n }\n\n private static async createIModel(): Promise<IModelDb> {\n const testBimPath = path.join(KnownTestLocations.assetsDir, \"IncrementalSchemaLocater\", \"test-bim.bim\");\n\n if (IModelJsFs.existsSync(testBimPath)) {\n ~\n IModelJsFs.removeSync(testBimPath);\n }\n\n const localBim = StandaloneDb.createEmpty(testBimPath, {\n enableTransactions: true,\n rootSubject: {\n name: \"IncrementalSchemaTestingDb\"\n },\n });\n\n localBim.close();\n\n const nativeDb = IModelDb.openDgnDb({ path: testBimPath }, OpenMode.ReadWrite, { profile: ProfileOptions.Upgrade });\n nativeDb.saveChanges();\n nativeDb.closeFile();\n\n return StandaloneDb.openFile(testBimPath, OpenMode.ReadWrite);\n }\n\n public async getSchemaNames(): Promise<string[]> {\n const result = new Array<string>();\n const sqlQuery = \"SELECT Name, VersionMajor, VersionWrite, VersionMinor FROM meta.ECSchemaDef ORDER BY Name\";\n const reader = this._iModel.createQueryReader(sqlQuery);\n while (await reader.step()) {\n const name = reader.current[0];\n const versionMajor = reader.current[1];\n const versionWrite = reader.current[2];\n const versionMinor = reader.current[3];\n\n result.push(`${name}.${versionMajor}.${versionWrite}.${versionMinor}`);\n }\n return result;\n }\n\n public async importAssetSchema(schemaKey: SchemaKey): Promise<Schema> {\n // If schema is already in the iModel, return it.\n if (undefined !== this.iModel.querySchemaVersion(schemaKey.name))\n return await this.schemaContext.getSchema(schemaKey) as Schema;\n\n // Locate the schema from the assets using the schema contexts asset locaters.\n const testSchema = await this._assetContext.getSchema(schemaKey, SchemaMatchType.Exact);\n if (undefined === testSchema)\n throw new Error(`The schema '${schemaKey.name}' could not be found in the assets folder.`);\n\n const schemaXml = await getOrderedSchemaStrings(testSchema);\n await this._iModel.importSchemaStrings(schemaXml);\n\n if (this.iModel.isBriefcaseDb() && !this.iModel.isReadonly) {\n await this.iModel.pushChanges({ description: \"import test schema\" });\n }\n\n const schema = await this.schemaContext.getSchema(schemaKey);\n if (undefined === schema)\n throw new Error(`The schema '${schemaKey.name}' could not be found after import.`);\n\n if (schema.loadingController && !schema.loadingController.isComplete) {\n await schema.loadingController.wait();\n }\n\n return schema;\n }\n\n public async [Symbol.asyncDispose](): Promise<void> {\n return this._iModel.close();\n }\n}\n\nasync function getOrderedSchemaStrings(insertSchema: Schema): Promise<string[]> {\n const schemas = SchemaGraphUtil.buildDependencyOrderedSchemaList(insertSchema);\n const schemaStrings = await Promise.all(schemas.map(async (schema) => getSchemaString(schema)));\n return schemaStrings;\n}\n\nasync function getSchemaString(schema: Schema): Promise<string> {\n // Serialize schema to the document object\n const xmlDocument = new DOMParser().parseFromString(`<?xml version=\"1.0\" encoding=\"UTF-8\"?>`, \"application/xml\");\n await schema.toXml(xmlDocument);\n\n const serializer = new XMLSerializer();\n const xml = serializer.serializeToString(xmlDocument);\n\n return xml;\n}\n\n"]}
|
|
1
|
+
{"version":3,"file":"TestContext.js","sourceRoot":"","sources":["../../../../src/test/incrementalSchemaLocater/TestContext.ts"],"names":[],"mappings":"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","sourcesContent":["import { Schema, SchemaContext, SchemaGraphUtil, SchemaJsonLocater, SchemaKey, SchemaMatchType } from \"@itwin/ecschema-metadata\";\r\nimport { IModelIncrementalSchemaLocater } from \"../../IModelIncrementalSchemaLocater\";\r\nimport { BriefcaseDb, IModelDb, StandaloneDb } from \"../../IModelDb\";\r\nimport { IModelHost } from \"../../IModelHost\";\r\nimport { KnownTestLocations } from \"../KnownTestLocations\";\r\nimport { OpenMode } from \"@itwin/core-bentley\";\r\nimport { IModelJsFs } from \"../../IModelJsFs\";\r\nimport { ProfileOptions } from \"@itwin/core-common\";\r\nimport { SchemaXmlFileLocater } from \"@itwin/ecschema-locaters\";\r\nimport { DOMParser, XMLSerializer } from \"@xmldom/xmldom\";\r\nimport * as path from \"path\";\r\nimport { TestUtils } from \"../TestUtils\";\r\n\r\ninterface Options {\r\n readonly bimFile?: string;\r\n readonly incrementalSchemaLoading?: \"enabled\" | \"disabled\" | undefined;\r\n}\r\n\r\ntype SchemaLocaterType<TOptions> = TOptions extends { incrementalSchemaLoading: \"disabled\" } ? never : IModelIncrementalSchemaLocater;\r\n\r\nexport class TestContext<TLocater = never> implements AsyncDisposable {\r\n private readonly _iModel: IModelDb;\r\n private readonly _schemaLocater: TLocater;\r\n private readonly _assetContext: SchemaContext;\r\n\r\n private constructor(iModel: IModelDb) {\r\n this._iModel = iModel;\r\n this._schemaLocater = this._iModel.schemaContext.locaters.find((locater) => {\r\n return locater instanceof IModelIncrementalSchemaLocater;\r\n }) as TLocater;\r\n\r\n // Ideally we should not need a seperate context here to locate and locate the bisschemas from the\r\n // parent imodel context, but due to a bug in the incremental schema logic, we have to do this for now.\r\n // TODO: remove this when issue #1763 is fixed.\r\n this._assetContext = new SchemaContext();\r\n this._assetContext.addLocater(new SchemaJsonLocater((schemaName) => {\r\n return iModel.getSchemaProps(schemaName);\r\n }))\r\n const xmlAssetSchemaLocater = new SchemaXmlFileLocater();\r\n xmlAssetSchemaLocater.addSchemaSearchPath(path.join(KnownTestLocations.assetsDir, \"IncrementalSchemaLocater\"));\r\n this._assetContext.addLocater(xmlAssetSchemaLocater);\r\n\r\n iModel.schemaContext.addLocater(this._assetContext);\r\n }\r\n\r\n public get iModel(): IModelDb {\r\n return this._iModel;\r\n }\r\n\r\n public get schemaLocater(): TLocater {\r\n return this._schemaLocater;\r\n }\r\n\r\n public get schemaContext(): SchemaContext {\r\n return this._iModel.schemaContext;\r\n }\r\n\r\n public static async create<TOptions extends Options>(options?: TOptions): Promise<TestContext<SchemaLocaterType<TOptions>>> {\r\n if (!IModelHost.isValid) {\r\n await TestUtils.startBackend();\r\n }\r\n\r\n const iModel = options?.bimFile ?\r\n await this.loadIModelFile(options.bimFile) :\r\n await this.createIModel();\r\n\r\n const configuration = IModelHost.configuration;\r\n if (configuration) {\r\n const previousSetting = configuration.incrementalSchemaLoading;\r\n configuration.incrementalSchemaLoading = options ? options.incrementalSchemaLoading : \"enabled\";\r\n iModel.onBeforeClose.addOnce(() => {\r\n configuration.incrementalSchemaLoading = previousSetting;\r\n });\r\n }\r\n\r\n return new TestContext(iModel);\r\n }\r\n\r\n private static async loadIModelFile(bimFile: string): Promise<IModelDb> {\r\n const pathToBriefCase = path.join(KnownTestLocations.assetsDir, bimFile);\r\n return BriefcaseDb.open({\r\n fileName: pathToBriefCase,\r\n readonly: true,\r\n key: \"test-iModel\",\r\n });\r\n }\r\n\r\n private static async createIModel(): Promise<IModelDb> {\r\n const testBimPath = path.join(KnownTestLocations.assetsDir, \"IncrementalSchemaLocater\", \"test-bim.bim\");\r\n\r\n if (IModelJsFs.existsSync(testBimPath)) {\r\n ~\r\n IModelJsFs.removeSync(testBimPath);\r\n }\r\n\r\n const localBim = StandaloneDb.createEmpty(testBimPath, {\r\n enableTransactions: true,\r\n rootSubject: {\r\n name: \"IncrementalSchemaTestingDb\"\r\n },\r\n });\r\n\r\n localBim.close();\r\n\r\n const nativeDb = IModelDb.openDgnDb({ path: testBimPath }, OpenMode.ReadWrite, { profile: ProfileOptions.Upgrade });\r\n nativeDb.saveChanges();\r\n nativeDb.closeFile();\r\n\r\n return StandaloneDb.openFile(testBimPath, OpenMode.ReadWrite);\r\n }\r\n\r\n public async getSchemaNames(): Promise<string[]> {\r\n const result = new Array<string>();\r\n const sqlQuery = \"SELECT Name, VersionMajor, VersionWrite, VersionMinor FROM meta.ECSchemaDef ORDER BY Name\";\r\n const reader = this._iModel.createQueryReader(sqlQuery);\r\n while (await reader.step()) {\r\n const name = reader.current[0];\r\n const versionMajor = reader.current[1];\r\n const versionWrite = reader.current[2];\r\n const versionMinor = reader.current[3];\r\n\r\n result.push(`${name}.${versionMajor}.${versionWrite}.${versionMinor}`);\r\n }\r\n return result;\r\n }\r\n\r\n public async importAssetSchema(schemaKey: SchemaKey): Promise<Schema> {\r\n // If schema is already in the iModel, return it.\r\n if (undefined !== this.iModel.querySchemaVersion(schemaKey.name))\r\n return await this.schemaContext.getSchema(schemaKey) as Schema;\r\n\r\n // Locate the schema from the assets using the schema contexts asset locaters.\r\n const testSchema = await this._assetContext.getSchema(schemaKey, SchemaMatchType.Exact);\r\n if (undefined === testSchema)\r\n throw new Error(`The schema '${schemaKey.name}' could not be found in the assets folder.`);\r\n\r\n const schemaXml = await getOrderedSchemaStrings(testSchema);\r\n await this._iModel.importSchemaStrings(schemaXml);\r\n\r\n if (this.iModel.isBriefcaseDb() && !this.iModel.isReadonly) {\r\n await this.iModel.pushChanges({ description: \"import test schema\" });\r\n }\r\n\r\n const schema = await this.schemaContext.getSchema(schemaKey);\r\n if (undefined === schema)\r\n throw new Error(`The schema '${schemaKey.name}' could not be found after import.`);\r\n\r\n if (schema.loadingController && !schema.loadingController.isComplete) {\r\n await schema.loadingController.wait();\r\n }\r\n\r\n return schema;\r\n }\r\n\r\n public async [Symbol.asyncDispose](): Promise<void> {\r\n return this._iModel.close();\r\n }\r\n}\r\n\r\nasync function getOrderedSchemaStrings(insertSchema: Schema): Promise<string[]> {\r\n const schemas = SchemaGraphUtil.buildDependencyOrderedSchemaList(insertSchema);\r\n const schemaStrings = await Promise.all(schemas.map(async (schema) => getSchemaString(schema)));\r\n return schemaStrings;\r\n}\r\n\r\nasync function getSchemaString(schema: Schema): Promise<string> {\r\n // Serialize schema to the document object\r\n const xmlDocument = new DOMParser().parseFromString(`<?xml version=\"1.0\" encoding=\"UTF-8\"?>`, \"application/xml\");\r\n await schema.toXml(xmlDocument);\r\n\r\n const serializer = new XMLSerializer();\r\n const xml = serializer.serializeToString(xmlDocument);\r\n\r\n return xml;\r\n}\r\n\r\n"]}
|
package/lib/esm/test/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/test/index.ts"],"names":[],"mappings":"AAIA,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/test/index.ts"],"names":[],"mappings":"AAIA,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC"}
|
package/lib/esm/test/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/test/index.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/test/index.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC","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\nexport * from \"./AdvancedEqual\";\r\nexport * from \"./IModelTestUtils\";\r\nexport * from \"./KnownTestLocations\";\r\nexport * from \"./TestChangeSetUtility\";\r\nexport * from \"./TestEditTxn\";\r\nexport * from \"./imageData\";\r\n"]}
|
|
@@ -25,38 +25,38 @@ describe("ECSqlInstanceReshaper", () => {
|
|
|
25
25
|
let aspectId;
|
|
26
26
|
let relationshipId;
|
|
27
27
|
before(async () => {
|
|
28
|
-
const schema = `<?xml version="1.0" encoding="UTF-8"?>
|
|
29
|
-
<ECSchema schemaName="${schemaName}" alias="${schemaAlias}" version="01.00.00" xmlns="http://www.bentley.com/schemas/Bentley.ECXML.3.2">
|
|
30
|
-
<ECSchemaReference name="BisCore" version="01.00.04" alias="bis"/>
|
|
31
|
-
<ECStructClass typeName="PointStruct" modifier="None">
|
|
32
|
-
<ECProperty propertyName="Label" typeName="string"/>
|
|
33
|
-
<ECProperty propertyName="P3d" typeName="point3d"/>
|
|
34
|
-
</ECStructClass>
|
|
35
|
-
<ECEntityClass typeName="ReshaperElement" modifier="None">
|
|
36
|
-
<BaseClass>bis:DefinitionElement</BaseClass>
|
|
37
|
-
</ECEntityClass>
|
|
38
|
-
<ECEntityClass typeName="ReshaperAspect" modifier="None">
|
|
39
|
-
<BaseClass>bis:ElementUniqueAspect</BaseClass>
|
|
40
|
-
<ECProperty propertyName="P2d" typeName="point2d"/>
|
|
41
|
-
<ECProperty propertyName="P3d" typeName="point3d"/>
|
|
42
|
-
<ECStructProperty propertyName="St" typeName="PointStruct"/>
|
|
43
|
-
<ECArrayProperty propertyName="ArrayI" typeName="int" minOccurs="0" maxOccurs="unbounded"/>
|
|
44
|
-
<ECArrayProperty propertyName="ArrayP3d" typeName="point3d" minOccurs="0" maxOccurs="unbounded"/>
|
|
45
|
-
<ECStructArrayProperty propertyName="ArraySt" typeName="PointStruct" minOccurs="0" maxOccurs="unbounded"/>
|
|
46
|
-
</ECEntityClass>
|
|
47
|
-
<ECRelationshipClass typeName="ReshaperRelatesToElement" strength="referencing" modifier="Sealed">
|
|
48
|
-
<BaseClass>bis:ElementRefersToElements</BaseClass>
|
|
49
|
-
<Source multiplicity="(0..*)" roleLabel="refers to" polymorphic="true">
|
|
50
|
-
<Class class="ReshaperElement"/>
|
|
51
|
-
</Source>
|
|
52
|
-
<Target multiplicity="(0..*)" roleLabel="is referenced by" polymorphic="true">
|
|
53
|
-
<Class class="ReshaperElement"/>
|
|
54
|
-
</Target>
|
|
55
|
-
<ECProperty propertyName="Label" typeName="string"/>
|
|
56
|
-
</ECRelationshipClass>
|
|
57
|
-
<ECEnumeration typeName="ReshaperNotAClass" backingTypeName="int" isStrict="true">
|
|
58
|
-
<ECEnumerator name="Value0" value="0"/>
|
|
59
|
-
</ECEnumeration>
|
|
28
|
+
const schema = `<?xml version="1.0" encoding="UTF-8"?>
|
|
29
|
+
<ECSchema schemaName="${schemaName}" alias="${schemaAlias}" version="01.00.00" xmlns="http://www.bentley.com/schemas/Bentley.ECXML.3.2">
|
|
30
|
+
<ECSchemaReference name="BisCore" version="01.00.04" alias="bis"/>
|
|
31
|
+
<ECStructClass typeName="PointStruct" modifier="None">
|
|
32
|
+
<ECProperty propertyName="Label" typeName="string"/>
|
|
33
|
+
<ECProperty propertyName="P3d" typeName="point3d"/>
|
|
34
|
+
</ECStructClass>
|
|
35
|
+
<ECEntityClass typeName="ReshaperElement" modifier="None">
|
|
36
|
+
<BaseClass>bis:DefinitionElement</BaseClass>
|
|
37
|
+
</ECEntityClass>
|
|
38
|
+
<ECEntityClass typeName="ReshaperAspect" modifier="None">
|
|
39
|
+
<BaseClass>bis:ElementUniqueAspect</BaseClass>
|
|
40
|
+
<ECProperty propertyName="P2d" typeName="point2d"/>
|
|
41
|
+
<ECProperty propertyName="P3d" typeName="point3d"/>
|
|
42
|
+
<ECStructProperty propertyName="St" typeName="PointStruct"/>
|
|
43
|
+
<ECArrayProperty propertyName="ArrayI" typeName="int" minOccurs="0" maxOccurs="unbounded"/>
|
|
44
|
+
<ECArrayProperty propertyName="ArrayP3d" typeName="point3d" minOccurs="0" maxOccurs="unbounded"/>
|
|
45
|
+
<ECStructArrayProperty propertyName="ArraySt" typeName="PointStruct" minOccurs="0" maxOccurs="unbounded"/>
|
|
46
|
+
</ECEntityClass>
|
|
47
|
+
<ECRelationshipClass typeName="ReshaperRelatesToElement" strength="referencing" modifier="Sealed">
|
|
48
|
+
<BaseClass>bis:ElementRefersToElements</BaseClass>
|
|
49
|
+
<Source multiplicity="(0..*)" roleLabel="refers to" polymorphic="true">
|
|
50
|
+
<Class class="ReshaperElement"/>
|
|
51
|
+
</Source>
|
|
52
|
+
<Target multiplicity="(0..*)" roleLabel="is referenced by" polymorphic="true">
|
|
53
|
+
<Class class="ReshaperElement"/>
|
|
54
|
+
</Target>
|
|
55
|
+
<ECProperty propertyName="Label" typeName="string"/>
|
|
56
|
+
</ECRelationshipClass>
|
|
57
|
+
<ECEnumeration typeName="ReshaperNotAClass" backingTypeName="int" isStrict="true">
|
|
58
|
+
<ECEnumerator name="Value0" value="0"/>
|
|
59
|
+
</ECEnumeration>
|
|
60
60
|
</ECSchema>`;
|
|
61
61
|
const testFileName = IModelTestUtils.prepareOutputFile(subDirName, "ECSqlInstanceReshaper.bim");
|
|
62
62
|
const schemaPath = IModelTestUtils.prepareOutputFile(subDirName, `${schemaName}.01.00.00.xml`);
|