@itwin/core-backend 5.1.0-dev.5 → 5.1.0-dev.52
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 +122 -1
- package/lib/cjs/BackendHubAccess.d.ts +1 -1
- package/lib/cjs/BackendHubAccess.js +1 -1
- package/lib/cjs/BackendHubAccess.js.map +1 -1
- package/lib/cjs/BisCoreSchema.js +1 -1
- package/lib/cjs/BisCoreSchema.js.map +1 -1
- package/lib/cjs/BriefcaseManager.d.ts +10 -2
- package/lib/cjs/BriefcaseManager.d.ts.map +1 -1
- package/lib/cjs/BriefcaseManager.js +16 -0
- package/lib/cjs/BriefcaseManager.js.map +1 -1
- package/lib/cjs/Category.d.ts +4 -4
- package/lib/cjs/Category.js +4 -4
- package/lib/cjs/Category.js.map +1 -1
- package/lib/cjs/ChangesetECAdaptor.d.ts +67 -8
- package/lib/cjs/ChangesetECAdaptor.d.ts.map +1 -1
- package/lib/cjs/ChangesetECAdaptor.js +248 -33
- package/lib/cjs/ChangesetECAdaptor.js.map +1 -1
- package/lib/cjs/ClassRegistry.d.ts +1 -1
- package/lib/cjs/ClassRegistry.js +1 -1
- package/lib/cjs/ClassRegistry.js.map +1 -1
- package/lib/cjs/CloudSqlite.js +1 -1
- package/lib/cjs/CloudSqlite.js.map +1 -1
- package/lib/cjs/CodeSpecs.d.ts +1 -1
- package/lib/cjs/CodeSpecs.js +1 -1
- package/lib/cjs/CodeSpecs.js.map +1 -1
- package/lib/cjs/DisplayStyle.d.ts +4 -4
- package/lib/cjs/DisplayStyle.js +3 -3
- package/lib/cjs/DisplayStyle.js.map +1 -1
- package/lib/cjs/ECDb.d.ts +4 -4
- package/lib/cjs/ECDb.d.ts.map +1 -1
- package/lib/cjs/ECDb.js +4 -4
- package/lib/cjs/ECDb.js.map +1 -1
- package/lib/cjs/ECSqlStatement.d.ts +15 -6
- package/lib/cjs/ECSqlStatement.d.ts.map +1 -1
- package/lib/cjs/ECSqlStatement.js +18 -4
- package/lib/cjs/ECSqlStatement.js.map +1 -1
- package/lib/cjs/Element.d.ts +51 -51
- package/lib/cjs/Element.js +52 -52
- package/lib/cjs/Element.js.map +1 -1
- package/lib/cjs/ElementAspect.d.ts +8 -8
- package/lib/cjs/ElementAspect.d.ts.map +1 -1
- package/lib/cjs/ElementAspect.js +8 -8
- package/lib/cjs/ElementAspect.js.map +1 -1
- package/lib/cjs/Entity.d.ts +3 -3
- package/lib/cjs/Entity.js +2 -2
- package/lib/cjs/Entity.js.map +1 -1
- package/lib/cjs/ExportGraphics.d.ts +54 -8
- package/lib/cjs/ExportGraphics.d.ts.map +1 -1
- package/lib/cjs/ExportGraphics.js +158 -59
- package/lib/cjs/ExportGraphics.js.map +1 -1
- package/lib/cjs/GeographicCRSServices.d.ts +6 -2
- package/lib/cjs/GeographicCRSServices.d.ts.map +1 -1
- package/lib/cjs/GeographicCRSServices.js +1 -1
- package/lib/cjs/GeographicCRSServices.js.map +1 -1
- package/lib/cjs/IModelDb.d.ts +29 -23
- package/lib/cjs/IModelDb.d.ts.map +1 -1
- package/lib/cjs/IModelDb.js +106 -43
- package/lib/cjs/IModelDb.js.map +1 -1
- package/lib/cjs/IModelElementCloneContext.d.ts +1 -1
- package/lib/cjs/IModelElementCloneContext.d.ts.map +1 -1
- package/lib/cjs/IModelElementCloneContext.js +1 -1
- package/lib/cjs/IModelElementCloneContext.js.map +1 -1
- package/lib/cjs/IModelHost.d.ts +2 -3
- package/lib/cjs/IModelHost.d.ts.map +1 -1
- package/lib/cjs/IModelHost.js +2 -3
- package/lib/cjs/IModelHost.js.map +1 -1
- package/lib/cjs/Material.d.ts +1 -1
- package/lib/cjs/Material.js +1 -1
- package/lib/cjs/Material.js.map +1 -1
- package/lib/cjs/Model.d.ts +22 -22
- package/lib/cjs/Model.js +22 -22
- package/lib/cjs/Model.js.map +1 -1
- package/lib/cjs/SQLiteDb.d.ts +1 -1
- package/lib/cjs/SQLiteDb.js +1 -1
- package/lib/cjs/SQLiteDb.js.map +1 -1
- package/lib/cjs/SqliteStatement.d.ts +1 -1
- package/lib/cjs/SqliteStatement.d.ts.map +1 -1
- package/lib/cjs/SqliteStatement.js +1 -1
- package/lib/cjs/SqliteStatement.js.map +1 -1
- package/lib/cjs/Texture.d.ts +1 -1
- package/lib/cjs/Texture.js +1 -1
- package/lib/cjs/Texture.js.map +1 -1
- package/lib/cjs/TxnManager.d.ts +4 -4
- package/lib/cjs/TxnManager.js +1 -1
- package/lib/cjs/TxnManager.js.map +1 -1
- package/lib/cjs/ViewDefinition.d.ts +40 -14
- package/lib/cjs/ViewDefinition.d.ts.map +1 -1
- package/lib/cjs/ViewDefinition.js +42 -14
- package/lib/cjs/ViewDefinition.js.map +1 -1
- package/lib/cjs/annotations/FrameGeometry.d.ts +52 -0
- package/lib/cjs/annotations/FrameGeometry.d.ts.map +1 -0
- package/lib/cjs/annotations/FrameGeometry.js +250 -0
- package/lib/cjs/annotations/FrameGeometry.js.map +1 -0
- package/lib/cjs/{TextAnnotationElement.d.ts → annotations/TextAnnotationElement.d.ts} +6 -11
- package/lib/cjs/annotations/TextAnnotationElement.d.ts.map +1 -0
- package/lib/cjs/{TextAnnotationElement.js → annotations/TextAnnotationElement.js} +20 -26
- package/lib/cjs/annotations/TextAnnotationElement.js.map +1 -0
- package/lib/cjs/annotations/TextAnnotationGeometry.d.ts +31 -0
- package/lib/cjs/annotations/TextAnnotationGeometry.d.ts.map +1 -0
- package/lib/cjs/annotations/TextAnnotationGeometry.js +132 -0
- package/lib/cjs/annotations/TextAnnotationGeometry.js.map +1 -0
- package/lib/cjs/annotations/TextBlockGeometry.d.ts +16 -0
- package/lib/cjs/annotations/TextBlockGeometry.d.ts.map +1 -0
- package/lib/cjs/{TextAnnotationGeometry.js → annotations/TextBlockGeometry.js} +13 -69
- package/lib/cjs/annotations/TextBlockGeometry.js.map +1 -0
- package/lib/cjs/{TextAnnotationLayout.d.ts → annotations/TextBlockLayout.d.ts} +22 -8
- package/lib/cjs/annotations/TextBlockLayout.d.ts.map +1 -0
- package/lib/cjs/{TextAnnotationLayout.js → annotations/TextBlockLayout.js} +51 -9
- package/lib/cjs/annotations/TextBlockLayout.js.map +1 -0
- package/lib/cjs/core-backend.d.ts +5 -3
- package/lib/cjs/core-backend.d.ts.map +1 -1
- package/lib/cjs/core-backend.js +25 -6
- package/lib/cjs/core-backend.js.map +1 -1
- package/lib/cjs/internal/ElementLRUCache.d.ts +23 -0
- package/lib/cjs/internal/ElementLRUCache.d.ts.map +1 -1
- package/lib/cjs/internal/ElementLRUCache.js +167 -3
- package/lib/cjs/internal/ElementLRUCache.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/rpc-impl/IModelReadRpcImpl.d.ts +1 -1
- package/lib/cjs/rpc-impl/IModelReadRpcImpl.js +1 -1
- package/lib/cjs/rpc-impl/IModelReadRpcImpl.js.map +1 -1
- package/lib/cjs/rpc-impl/RpcBriefcaseUtility.d.ts +2 -2
- package/lib/cjs/rpc-impl/RpcBriefcaseUtility.js.map +1 -1
- package/lib/cjs/rpc-impl/SnapshotIModelRpcImpl.d.ts +1 -1
- package/lib/cjs/rpc-impl/SnapshotIModelRpcImpl.js +1 -1
- package/lib/cjs/rpc-impl/SnapshotIModelRpcImpl.js.map +1 -1
- package/lib/esm/BackendHubAccess.d.ts +1 -1
- package/lib/esm/BackendHubAccess.js +1 -1
- package/lib/esm/BackendHubAccess.js.map +1 -1
- package/lib/esm/BisCoreSchema.js +1 -1
- package/lib/esm/BisCoreSchema.js.map +1 -1
- package/lib/esm/BriefcaseManager.d.ts +10 -2
- package/lib/esm/BriefcaseManager.d.ts.map +1 -1
- package/lib/esm/BriefcaseManager.js +17 -1
- package/lib/esm/BriefcaseManager.js.map +1 -1
- package/lib/esm/Category.d.ts +4 -4
- package/lib/esm/Category.js +4 -4
- package/lib/esm/Category.js.map +1 -1
- package/lib/esm/ChangesetECAdaptor.d.ts +67 -8
- package/lib/esm/ChangesetECAdaptor.d.ts.map +1 -1
- package/lib/esm/ChangesetECAdaptor.js +248 -33
- package/lib/esm/ChangesetECAdaptor.js.map +1 -1
- package/lib/esm/ClassRegistry.d.ts +1 -1
- package/lib/esm/ClassRegistry.js +1 -1
- package/lib/esm/ClassRegistry.js.map +1 -1
- package/lib/esm/CloudSqlite.js +1 -1
- package/lib/esm/CloudSqlite.js.map +1 -1
- package/lib/esm/CodeSpecs.d.ts +1 -1
- package/lib/esm/CodeSpecs.js +1 -1
- package/lib/esm/CodeSpecs.js.map +1 -1
- package/lib/esm/DisplayStyle.d.ts +4 -4
- package/lib/esm/DisplayStyle.js +3 -3
- package/lib/esm/DisplayStyle.js.map +1 -1
- package/lib/esm/ECDb.d.ts +4 -4
- package/lib/esm/ECDb.d.ts.map +1 -1
- package/lib/esm/ECDb.js +4 -4
- package/lib/esm/ECDb.js.map +1 -1
- package/lib/esm/ECSqlStatement.d.ts +15 -6
- package/lib/esm/ECSqlStatement.d.ts.map +1 -1
- package/lib/esm/ECSqlStatement.js +18 -4
- package/lib/esm/ECSqlStatement.js.map +1 -1
- package/lib/esm/Element.d.ts +51 -51
- package/lib/esm/Element.js +52 -52
- package/lib/esm/Element.js.map +1 -1
- package/lib/esm/ElementAspect.d.ts +8 -8
- package/lib/esm/ElementAspect.d.ts.map +1 -1
- package/lib/esm/ElementAspect.js +8 -8
- package/lib/esm/ElementAspect.js.map +1 -1
- package/lib/esm/Entity.d.ts +3 -3
- package/lib/esm/Entity.js +2 -2
- package/lib/esm/Entity.js.map +1 -1
- package/lib/esm/ExportGraphics.d.ts +54 -8
- package/lib/esm/ExportGraphics.d.ts.map +1 -1
- package/lib/esm/ExportGraphics.js +156 -58
- package/lib/esm/ExportGraphics.js.map +1 -1
- package/lib/esm/GeographicCRSServices.d.ts +6 -2
- package/lib/esm/GeographicCRSServices.d.ts.map +1 -1
- package/lib/esm/GeographicCRSServices.js +1 -1
- package/lib/esm/GeographicCRSServices.js.map +1 -1
- package/lib/esm/IModelDb.d.ts +29 -23
- package/lib/esm/IModelDb.d.ts.map +1 -1
- package/lib/esm/IModelDb.js +109 -46
- package/lib/esm/IModelDb.js.map +1 -1
- package/lib/esm/IModelElementCloneContext.d.ts +1 -1
- package/lib/esm/IModelElementCloneContext.d.ts.map +1 -1
- package/lib/esm/IModelElementCloneContext.js +1 -1
- package/lib/esm/IModelElementCloneContext.js.map +1 -1
- package/lib/esm/IModelHost.d.ts +2 -3
- package/lib/esm/IModelHost.d.ts.map +1 -1
- package/lib/esm/IModelHost.js +2 -3
- package/lib/esm/IModelHost.js.map +1 -1
- package/lib/esm/Material.d.ts +1 -1
- package/lib/esm/Material.js +1 -1
- package/lib/esm/Material.js.map +1 -1
- package/lib/esm/Model.d.ts +22 -22
- package/lib/esm/Model.js +22 -22
- package/lib/esm/Model.js.map +1 -1
- package/lib/esm/SQLiteDb.d.ts +1 -1
- package/lib/esm/SQLiteDb.js +1 -1
- package/lib/esm/SQLiteDb.js.map +1 -1
- package/lib/esm/SqliteStatement.d.ts +1 -1
- package/lib/esm/SqliteStatement.d.ts.map +1 -1
- package/lib/esm/SqliteStatement.js +1 -1
- package/lib/esm/SqliteStatement.js.map +1 -1
- package/lib/esm/Texture.d.ts +1 -1
- package/lib/esm/Texture.js +1 -1
- package/lib/esm/Texture.js.map +1 -1
- package/lib/esm/TxnManager.d.ts +4 -4
- package/lib/esm/TxnManager.js +1 -1
- package/lib/esm/TxnManager.js.map +1 -1
- package/lib/esm/ViewDefinition.d.ts +40 -14
- package/lib/esm/ViewDefinition.d.ts.map +1 -1
- package/lib/esm/ViewDefinition.js +42 -14
- package/lib/esm/ViewDefinition.js.map +1 -1
- package/lib/esm/annotations/FrameGeometry.d.ts +52 -0
- package/lib/esm/annotations/FrameGeometry.d.ts.map +1 -0
- package/lib/esm/annotations/FrameGeometry.js +245 -0
- package/lib/esm/annotations/FrameGeometry.js.map +1 -0
- package/lib/esm/{TextAnnotationElement.d.ts → annotations/TextAnnotationElement.d.ts} +6 -11
- package/lib/esm/annotations/TextAnnotationElement.d.ts.map +1 -0
- package/lib/esm/{TextAnnotationElement.js → annotations/TextAnnotationElement.js} +22 -28
- package/lib/esm/annotations/TextAnnotationElement.js.map +1 -0
- package/lib/esm/annotations/TextAnnotationGeometry.d.ts +31 -0
- package/lib/esm/annotations/TextAnnotationGeometry.d.ts.map +1 -0
- package/lib/esm/annotations/TextAnnotationGeometry.js +129 -0
- package/lib/esm/annotations/TextAnnotationGeometry.js.map +1 -0
- package/lib/esm/annotations/TextBlockGeometry.d.ts +16 -0
- package/lib/esm/annotations/TextBlockGeometry.d.ts.map +1 -0
- package/lib/esm/{TextAnnotationGeometry.js → annotations/TextBlockGeometry.js} +13 -69
- package/lib/esm/annotations/TextBlockGeometry.js.map +1 -0
- package/lib/esm/{TextAnnotationLayout.d.ts → annotations/TextBlockLayout.d.ts} +22 -8
- package/lib/esm/annotations/TextBlockLayout.d.ts.map +1 -0
- package/lib/esm/{TextAnnotationLayout.js → annotations/TextBlockLayout.js} +51 -9
- package/lib/esm/annotations/TextBlockLayout.js.map +1 -0
- package/lib/esm/core-backend.d.ts +5 -3
- package/lib/esm/core-backend.d.ts.map +1 -1
- package/lib/esm/core-backend.js +25 -3
- package/lib/esm/core-backend.js.map +1 -1
- package/lib/esm/internal/ElementLRUCache.d.ts +23 -0
- package/lib/esm/internal/ElementLRUCache.d.ts.map +1 -1
- package/lib/esm/internal/ElementLRUCache.js +165 -2
- package/lib/esm/internal/ElementLRUCache.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/rpc-impl/IModelReadRpcImpl.d.ts +1 -1
- package/lib/esm/rpc-impl/IModelReadRpcImpl.js +1 -1
- package/lib/esm/rpc-impl/IModelReadRpcImpl.js.map +1 -1
- package/lib/esm/rpc-impl/RpcBriefcaseUtility.d.ts +2 -2
- package/lib/esm/rpc-impl/RpcBriefcaseUtility.js.map +1 -1
- package/lib/esm/rpc-impl/SnapshotIModelRpcImpl.d.ts +1 -1
- package/lib/esm/rpc-impl/SnapshotIModelRpcImpl.js +1 -1
- package/lib/esm/rpc-impl/SnapshotIModelRpcImpl.js.map +1 -1
- package/lib/esm/test/ElementLRUCache.test.js +224 -1
- package/lib/esm/test/ElementLRUCache.test.js.map +1 -1
- package/lib/esm/test/TestUtils.d.ts +1 -1
- package/lib/esm/test/TestUtils.d.ts.map +1 -1
- package/lib/esm/test/TestUtils.js +1 -1
- package/lib/esm/test/TestUtils.js.map +1 -1
- package/lib/esm/test/annotations/TextAnnotation.test.js +190 -1025
- package/lib/esm/test/annotations/TextAnnotation.test.js.map +1 -1
- package/lib/esm/test/annotations/TextBlock.test.d.ts +2 -0
- package/lib/esm/test/annotations/TextBlock.test.d.ts.map +1 -0
- package/lib/esm/test/annotations/TextBlock.test.js +1105 -0
- package/lib/esm/test/annotations/TextBlock.test.js.map +1 -0
- package/lib/esm/test/ecdb/ConcurrentQuery.test.d.ts +2 -0
- package/lib/esm/test/ecdb/ConcurrentQuery.test.d.ts.map +1 -0
- package/lib/esm/test/ecdb/ConcurrentQuery.test.js +164 -0
- package/lib/esm/test/ecdb/ConcurrentQuery.test.js.map +1 -0
- package/lib/esm/test/ecdb/ConcurrentQueryLoad.test.js +22 -32
- package/lib/esm/test/ecdb/ConcurrentQueryLoad.test.js.map +1 -1
- package/lib/esm/test/ecdb/ECDb.test.js +29 -8
- package/lib/esm/test/ecdb/ECDb.test.js.map +1 -1
- package/lib/esm/test/ecdb/ECSqlQuery.test.js +0 -55
- package/lib/esm/test/ecdb/ECSqlQuery.test.js.map +1 -1
- package/lib/esm/test/ecdb/ECSqlStatement.test.js +192 -0
- package/lib/esm/test/ecdb/ECSqlStatement.test.js.map +1 -1
- package/lib/esm/test/imodel/IModel.test.js +255 -5
- package/lib/esm/test/imodel/IModel.test.js.map +1 -1
- package/lib/esm/test/misc/GeoServices.test.js +23 -9
- package/lib/esm/test/misc/GeoServices.test.js.map +1 -1
- package/lib/esm/test/standalone/ChangesetReader.test.js +451 -136
- package/lib/esm/test/standalone/ChangesetReader.test.js.map +1 -1
- package/lib/esm/test/standalone/ExportGraphics.test.js +53 -1
- package/lib/esm/test/standalone/ExportGraphics.test.js.map +1 -1
- package/lib/esm/test/standalone/GeometryStream.test.js +49 -1
- package/lib/esm/test/standalone/GeometryStream.test.js.map +1 -1
- package/lib/esm/test/standalone/IModelLimits.test.d.ts +2 -0
- package/lib/esm/test/standalone/IModelLimits.test.d.ts.map +1 -0
- package/lib/esm/test/standalone/IModelLimits.test.js +103 -0
- package/lib/esm/test/standalone/IModelLimits.test.js.map +1 -0
- package/lib/esm/test/standalone/SnapshotDb.test.js +19 -1
- package/lib/esm/test/standalone/SnapshotDb.test.js.map +1 -1
- package/package.json +12 -12
- package/lib/cjs/TextAnnotationElement.d.ts.map +0 -1
- package/lib/cjs/TextAnnotationElement.js.map +0 -1
- package/lib/cjs/TextAnnotationGeometry.d.ts +0 -32
- package/lib/cjs/TextAnnotationGeometry.d.ts.map +0 -1
- package/lib/cjs/TextAnnotationGeometry.js.map +0 -1
- package/lib/cjs/TextAnnotationLayout.d.ts.map +0 -1
- package/lib/cjs/TextAnnotationLayout.js.map +0 -1
- package/lib/esm/TextAnnotationElement.d.ts.map +0 -1
- package/lib/esm/TextAnnotationElement.js.map +0 -1
- package/lib/esm/TextAnnotationGeometry.d.ts +0 -32
- package/lib/esm/TextAnnotationGeometry.d.ts.map +0 -1
- package/lib/esm/TextAnnotationGeometry.js.map +0 -1
- package/lib/esm/TextAnnotationLayout.d.ts.map +0 -1
- package/lib/esm/TextAnnotationLayout.js.map +0 -1
|
@@ -62,7 +62,7 @@ import { DbResult, Guid, Id64, IModelStatus, Logger, OpenMode, ProcessDetector }
|
|
|
62
62
|
import { BisCodeSpec, BriefcaseIdValue, Code, CodeScopeSpec, CodeSpec, ColorByName, ColorDef, DisplayStyleSettings, EcefLocation, FontMap, FontType, GeoCoordStatus, GeographicCRS, GeometryParams, GeometryStreamBuilder, ImageSourceFormat, IModel, IModelError, RelatedElement, RenderMode, SchemaState, SubCategoryAppearance, TextureMapping, TextureMapUnits, ViewFlags, } from "@itwin/core-common";
|
|
63
63
|
import { Geometry, LineString3d, Loop, Matrix4d, Point3d, PolyfaceBuilder, Range3d, StrokeOptions, Transform, YawPitchRollAngles, } from "@itwin/core-geometry";
|
|
64
64
|
import { V2CheckpointManager } from "../../CheckpointManager";
|
|
65
|
-
import { _nativeDb, BisCoreSchema, Category, ClassRegistry, DefinitionContainer, DefinitionGroup, DefinitionGroupGroupsDefinitions, DefinitionModel, DefinitionPartition, DictionaryModel, DisplayStyle3d, DocumentPartition, DrawingGraphic, Element, ElementDrivesElement, ElementGroupsMembers, ElementOwnsChildElements, GeometricElement2d, GeometricElement3d, GeometricModel, GroupInformationPartition, IModelDb, IModelHost, IModelJsFs, InformationPartitionElement, InformationRecordElement, LinkPartition, Model, PhysicalElement, PhysicalModel, PhysicalObject, PhysicalPartition, RenderMaterialElement, SnapshotDb, SpatialCategory, SqliteValueType, StandaloneDb, SubCategory, Subject, Texture, } from "../../core-backend";
|
|
65
|
+
import { _nativeDb, BisCoreSchema, Category, ClassRegistry, DefinitionContainer, DefinitionGroup, DefinitionGroupGroupsDefinitions, DefinitionModel, DefinitionPartition, DictionaryModel, DisplayStyle3d, DocumentPartition, DrawingGraphic, Element, ElementDrivesElement, ElementGroupsMembers, ElementOwnsChildElements, GenericGraphicalType2d, GeometricElement2d, GeometricElement3d, GeometricModel, GroupInformationPartition, IModelDb, IModelHost, IModelJsFs, InformationPartitionElement, InformationRecordElement, LinkPartition, Model, PhysicalElement, PhysicalModel, PhysicalObject, PhysicalPartition, RenderMaterialElement, SnapshotDb, SpatialCategory, SqliteValueType, StandaloneDb, SubCategory, Subject, Texture, } from "../../core-backend";
|
|
66
66
|
import { BriefcaseDb } from "../../IModelDb";
|
|
67
67
|
import { HubMock } from "../../internal/HubMock";
|
|
68
68
|
import { KnownTestLocations } from "../KnownTestLocations";
|
|
@@ -1301,12 +1301,15 @@ describe("iModel", () => {
|
|
|
1301
1301
|
// Delete the model
|
|
1302
1302
|
testImodel.models.deleteModel(newModelId);
|
|
1303
1303
|
// Test insertModel error handling
|
|
1304
|
-
|
|
1304
|
+
try {
|
|
1305
1305
|
testImodel.models.insertModel({
|
|
1306
1306
|
classFullName: DefinitionModel.classFullName,
|
|
1307
1307
|
modeledElement: { id: "0x10000000bad" },
|
|
1308
1308
|
});
|
|
1309
|
-
}
|
|
1309
|
+
}
|
|
1310
|
+
catch (error) {
|
|
1311
|
+
assert.isTrue(error instanceof IModelError || error.iTwinErrorId !== undefined);
|
|
1312
|
+
}
|
|
1310
1313
|
});
|
|
1311
1314
|
it("should create model with custom relationship to modeled element", async () => {
|
|
1312
1315
|
const testImodel = imodel1;
|
|
@@ -1605,6 +1608,33 @@ describe("iModel", () => {
|
|
|
1605
1608
|
assert.isTrue(iModel2.ecefLocation !== undefined);
|
|
1606
1609
|
iModel2.close();
|
|
1607
1610
|
});
|
|
1611
|
+
describe("async coordinate conversions", () => {
|
|
1612
|
+
it("should output same number of points as input", async () => {
|
|
1613
|
+
const iModelCoords = [];
|
|
1614
|
+
const geoCoords = [];
|
|
1615
|
+
for (let numPts = 0; numPts < 3; numPts++) {
|
|
1616
|
+
const geoResponse = await imodel5.getGeoCoordinatesFromIModelCoordinates({ target: "WGS84", iModelCoords });
|
|
1617
|
+
expect(geoResponse.geoCoords.length).to.equal(numPts);
|
|
1618
|
+
const iModelResponse = await imodel5.getIModelCoordinatesFromGeoCoordinates({ source: "WGS84", geoCoords });
|
|
1619
|
+
expect(iModelResponse.iModelCoords.length).to.equal(numPts);
|
|
1620
|
+
iModelCoords.push(new Point3d());
|
|
1621
|
+
geoCoords.push(new Point3d());
|
|
1622
|
+
}
|
|
1623
|
+
});
|
|
1624
|
+
it("should always have fromCache = 0", async () => {
|
|
1625
|
+
const iModelCoords = [];
|
|
1626
|
+
const geoCoords = [];
|
|
1627
|
+
for (let numPts = 0; numPts < 3; numPts++) {
|
|
1628
|
+
const geoResponse = await imodel5.getGeoCoordinatesFromIModelCoordinates({ target: "WGS84", iModelCoords });
|
|
1629
|
+
expect(geoResponse.fromCache).to.equal(0);
|
|
1630
|
+
const iModelResponse = await imodel5.getIModelCoordinatesFromGeoCoordinates({ source: "WGS84", geoCoords });
|
|
1631
|
+
expect(iModelResponse.iModelCoords.length).to.equal(numPts);
|
|
1632
|
+
expect(iModelResponse.fromCache).to.equal(0);
|
|
1633
|
+
iModelCoords.push(new Point3d());
|
|
1634
|
+
geoCoords.push(new Point3d());
|
|
1635
|
+
}
|
|
1636
|
+
});
|
|
1637
|
+
});
|
|
1608
1638
|
if (!ProcessDetector.isIOSAppBackend) {
|
|
1609
1639
|
it("should be able to reproject with iModel coordinates to or from any other GeographicCRS", async () => {
|
|
1610
1640
|
const convertTest = async (fileName, fileGCS, datum, inputCoord, outputCoord) => {
|
|
@@ -2086,10 +2116,41 @@ describe("iModel", () => {
|
|
|
2086
2116
|
db.abandonChanges();
|
|
2087
2117
|
db.close();
|
|
2088
2118
|
});
|
|
2119
|
+
it("Cache cleared on abandonChanges", () => {
|
|
2120
|
+
const standaloneFile = IModelTestUtils.prepareOutputFile("IModel", "StandaloneReadWrite.bim");
|
|
2121
|
+
const db = StandaloneDb.createEmpty(standaloneFile, { rootSubject: { name: "Standalone" } });
|
|
2122
|
+
db.saveChanges();
|
|
2123
|
+
const code = Code.createEmpty();
|
|
2124
|
+
code.value = "foo";
|
|
2125
|
+
const props = {
|
|
2126
|
+
classFullName: GenericGraphicalType2d.classFullName,
|
|
2127
|
+
model: IModel.dictionaryId,
|
|
2128
|
+
code,
|
|
2129
|
+
};
|
|
2130
|
+
const id = db.elements.insertElement(props);
|
|
2131
|
+
const element1 = db.elements.getElementProps(id);
|
|
2132
|
+
db.abandonChanges();
|
|
2133
|
+
code.value = "bar";
|
|
2134
|
+
const props2 = {
|
|
2135
|
+
classFullName: GenericGraphicalType2d.classFullName,
|
|
2136
|
+
model: IModel.dictionaryId,
|
|
2137
|
+
code,
|
|
2138
|
+
};
|
|
2139
|
+
const id2 = db.elements.insertElement(props2);
|
|
2140
|
+
expect(id2).to.equal(id);
|
|
2141
|
+
const element2 = db.elements.getElementProps(id2);
|
|
2142
|
+
expect(element2).to.not.equal(element1);
|
|
2143
|
+
db.abandonChanges();
|
|
2144
|
+
db.close();
|
|
2145
|
+
});
|
|
2089
2146
|
it("Standalone iModel properties", () => {
|
|
2090
2147
|
const standaloneRootSubjectName = "Standalone";
|
|
2091
2148
|
const standaloneFile1 = IModelTestUtils.prepareOutputFile("IModel", "Standalone1.bim");
|
|
2092
|
-
|
|
2149
|
+
const ecefLocation = new EcefLocation({ origin: [1, 2, 3], orientation: { yaw: 0, pitch: 0, roll: 0 } });
|
|
2150
|
+
const geographicCoordinateSystem = {
|
|
2151
|
+
horizontalCRS: { id: "10TM115-27" },
|
|
2152
|
+
};
|
|
2153
|
+
let standaloneDb1 = StandaloneDb.createEmpty(standaloneFile1, { rootSubject: { name: standaloneRootSubjectName }, ecefLocation, geographicCoordinateSystem });
|
|
2093
2154
|
assert.isTrue(standaloneDb1.isStandaloneDb());
|
|
2094
2155
|
assert.isTrue(standaloneDb1.isStandalone);
|
|
2095
2156
|
assert.isFalse(standaloneDb1.isReadonly, "Expect standalone iModels to be read-write during create");
|
|
@@ -2102,6 +2163,8 @@ describe("iModel", () => {
|
|
|
2102
2163
|
assert.equal(standaloneDb1.iTwinId, Guid.empty);
|
|
2103
2164
|
assert.strictEqual("", standaloneDb1.changeset.id);
|
|
2104
2165
|
assert.strictEqual(0, standaloneDb1.changeset.index);
|
|
2166
|
+
assert.deepEqual(standaloneDb1.ecefLocation?.origin, ecefLocation.origin, "standalone ecefLocation should be set");
|
|
2167
|
+
assert.strictEqual(standaloneDb1.geographicCoordinateSystem?.horizontalCRS?.id, "10TM115-27", "standalone coordinate system should be set");
|
|
2105
2168
|
assert.equal(standaloneDb1.openMode, OpenMode.ReadWrite);
|
|
2106
2169
|
standaloneDb1.close();
|
|
2107
2170
|
assert.isFalse(standaloneDb1.isOpen);
|
|
@@ -2119,7 +2182,11 @@ describe("iModel", () => {
|
|
|
2119
2182
|
const snapshotFile2 = IModelTestUtils.prepareOutputFile("IModel", "Snapshot2.bim");
|
|
2120
2183
|
const snapshotFile3 = IModelTestUtils.prepareOutputFile("IModel", "Snapshot3.bim");
|
|
2121
2184
|
const imodel = await generateTestSnapshot("test_for_snapshot.bim", "test.bim");
|
|
2122
|
-
|
|
2185
|
+
const ecefLocation = new EcefLocation({ origin: [1, 2, 3], orientation: { yaw: 0, pitch: 0, roll: 0 } });
|
|
2186
|
+
const geographicCoordinateSystem = {
|
|
2187
|
+
horizontalCRS: { id: "10TM115-27" },
|
|
2188
|
+
};
|
|
2189
|
+
let snapshotDb1 = SnapshotDb.createEmpty(snapshotFile1, { rootSubject: { name: snapshotRootSubjectName }, createClassViews: true, ecefLocation, geographicCoordinateSystem });
|
|
2123
2190
|
let snapshotDb2 = SnapshotDb.createFrom(snapshotDb1, snapshotFile2);
|
|
2124
2191
|
let snapshotDb3 = SnapshotDb.createFrom(imodel, snapshotFile3, { createClassViews: true });
|
|
2125
2192
|
assert.isTrue(snapshotDb1.isSnapshotDb());
|
|
@@ -2156,6 +2223,8 @@ describe("iModel", () => {
|
|
|
2156
2223
|
assert.isTrue(snapshotDb1.isOpen);
|
|
2157
2224
|
assert.isTrue(snapshotDb2.isOpen);
|
|
2158
2225
|
assert.isTrue(snapshotDb3.isOpen);
|
|
2226
|
+
assert.deepEqual(snapshotDb1.ecefLocation?.origin, ecefLocation.origin, "snapshot ecefLocation should be set");
|
|
2227
|
+
assert.strictEqual(snapshotDb1.geographicCoordinateSystem?.horizontalCRS?.id, "10TM115-27", "snapshot coordinate system should be set");
|
|
2159
2228
|
snapshotDb1.close();
|
|
2160
2229
|
snapshotDb2.close();
|
|
2161
2230
|
snapshotDb3.close();
|
|
@@ -2587,6 +2656,32 @@ describe("iModel", () => {
|
|
|
2587
2656
|
expect(categ3.code.value).to.equal(code3.trimmedCodeVal);
|
|
2588
2657
|
imodel.close();
|
|
2589
2658
|
});
|
|
2659
|
+
it("should throw iTwinErrors on element CRUD opertion fails", async () => {
|
|
2660
|
+
const code = Code.createEmpty();
|
|
2661
|
+
code.value = "foo";
|
|
2662
|
+
const props = {
|
|
2663
|
+
classFullName: GenericGraphicalType2d.classFullName,
|
|
2664
|
+
model: IModel.dictionaryId,
|
|
2665
|
+
code,
|
|
2666
|
+
};
|
|
2667
|
+
imodel1.elements.insertElement(props);
|
|
2668
|
+
expect(() => imodel1.elements.insertElement(props)).throws("Error inserting element [duplicate code]").to.have.property("iTwinErrorId");
|
|
2669
|
+
const updateProps = {
|
|
2670
|
+
id: Id64.fromString("0x111111"),
|
|
2671
|
+
classFullName: GenericGraphicalType2d.classFullName,
|
|
2672
|
+
model: IModel.dictionaryId,
|
|
2673
|
+
code,
|
|
2674
|
+
};
|
|
2675
|
+
expect(() => imodel1.elements.updateElement(updateProps)).throws(`Error updating element [missing id], id: ${updateProps.id}`).to.have.property("iTwinErrorId");
|
|
2676
|
+
expect(() => imodel1.elements.deleteElement(updateProps.id)).throws(`Error deleting element [missing id], id: ${updateProps.id}`).to.have.property("iTwinErrorId");
|
|
2677
|
+
expect(() => imodel1.models.insertModel({ classFullName: DefinitionModel.classFullName, modeledElement: { id: "0x10000000bad" } })).throws("Error inserting model [error=10004], class=BisCore:DefinitionModel").to.have.property("iTwinErrorId");
|
|
2678
|
+
expect(() => imodel1.models.updateModel({
|
|
2679
|
+
id: Id64.fromString("0x111111"),
|
|
2680
|
+
modeledElement: { id: Id64.fromString("0x111111") },
|
|
2681
|
+
classFullName: ""
|
|
2682
|
+
})).throws(`Error updating model [missing id], id: ${Id64.fromString("0x111111")}`).to.have.property("iTwinErrorId");
|
|
2683
|
+
expect(() => imodel1.models.deleteModel(Id64.fromString("0x111111"))).throws(`Error deleting model [missing id], id: ${Id64.fromString("0x111111")}`).to.have.property("iTwinErrorId");
|
|
2684
|
+
});
|
|
2590
2685
|
it("throws NotFound when attempting to access element props after closing the iModel", () => {
|
|
2591
2686
|
const imodelPath = IModelTestUtils.prepareOutputFile("IModel", "accessAfterClose.bim");
|
|
2592
2687
|
const imodel = SnapshotDb.createEmpty(imodelPath, { rootSubject: { name: "accessAfterClose" } });
|
|
@@ -2622,5 +2717,160 @@ describe("iModel", () => {
|
|
|
2622
2717
|
expect(() => imodel.relationships.insertInstance(props)).to.throw(`Failed to insert relationship [${imodelPath}]: rc=2067, constraint failed (BE_SQLITE_CONSTRAINT_UNIQUE)`);
|
|
2623
2718
|
imodel.close();
|
|
2624
2719
|
});
|
|
2720
|
+
function createElemProps(_imodel, modId, catId, className) {
|
|
2721
|
+
// Create props
|
|
2722
|
+
const elementProps = {
|
|
2723
|
+
classFullName: className,
|
|
2724
|
+
model: modId,
|
|
2725
|
+
category: catId,
|
|
2726
|
+
code: Code.createEmpty(),
|
|
2727
|
+
};
|
|
2728
|
+
return elementProps;
|
|
2729
|
+
}
|
|
2730
|
+
function insertElement(imodel, mId, cId, cName, propName) {
|
|
2731
|
+
const elementProps = createElemProps(imodel, mId, cId, cName);
|
|
2732
|
+
const geomElement = imodel.elements.createElement(elementProps);
|
|
2733
|
+
geomElement.name = propName; // Add a custom property to the element
|
|
2734
|
+
const id = imodel.elements.insertElement(geomElement.toJSON());
|
|
2735
|
+
assert.isTrue(Id64.isValidId64(id), "insert failed");
|
|
2736
|
+
return id;
|
|
2737
|
+
}
|
|
2738
|
+
function validateADrivesBRowCount(imodel, expectedRows) {
|
|
2739
|
+
const reader = IModelTestUtils.executeQuery(imodel, `select * from trs.ADrivesB`);
|
|
2740
|
+
assert.strictEqual(reader.length, expectedRows, `Expected ${expectedRows} rows in trs.ADrivesB table`);
|
|
2741
|
+
}
|
|
2742
|
+
function validateNavProp(imodel, expectedNavPropValue) {
|
|
2743
|
+
const reader = IModelTestUtils.executeQuery(imodel, `select NavPropChildB from trs.ChildA`);
|
|
2744
|
+
assert.strictEqual(reader.length, 1);
|
|
2745
|
+
assert.deepEqual(reader[0].navPropChildB, expectedNavPropValue, `Expected NavPropChildB to be "${expectedNavPropValue}"`);
|
|
2746
|
+
}
|
|
2747
|
+
it("Validate invalid relationship classes being inserted/updated", async () => {
|
|
2748
|
+
const imodelPath = IModelTestUtils.prepareOutputFile("IModel", "invalidRelationshipClass.bim");
|
|
2749
|
+
if (IModelJsFs.existsSync(imodelPath))
|
|
2750
|
+
IModelJsFs.unlinkSync(imodelPath);
|
|
2751
|
+
const testImodel = SnapshotDb.createEmpty(imodelPath, { rootSubject: { name: "invalidRelationshipClass" } });
|
|
2752
|
+
await testImodel.importSchemaStrings([
|
|
2753
|
+
`<?xml version="1.0" encoding="UTF-8"?>
|
|
2754
|
+
<ECSchema schemaName="TestRelationSchema" alias="trs" version="01.00" xmlns="http://www.bentley.com/schemas/Bentley.ECXML.3.1">
|
|
2755
|
+
<ECSchemaReference name="BisCore" version="01.00" alias="bis"/>
|
|
2756
|
+
<ECEntityClass typeName="TestElement">
|
|
2757
|
+
<BaseClass>bis:PhysicalElement</BaseClass>
|
|
2758
|
+
<ECProperty propertyName="Name" typeName="string" />
|
|
2759
|
+
</ECEntityClass>
|
|
2760
|
+
|
|
2761
|
+
<ECEntityClass typeName="ChildA" >
|
|
2762
|
+
<BaseClass>TestElement</BaseClass>
|
|
2763
|
+
<ECNavigationProperty propertyName="NavPropChildB" relationshipName="ADrivesB" direction="Forward" readOnly="True">
|
|
2764
|
+
</ECNavigationProperty>
|
|
2765
|
+
</ECEntityClass>
|
|
2766
|
+
|
|
2767
|
+
<ECEntityClass typeName="ChildB" >
|
|
2768
|
+
<BaseClass>TestElement</BaseClass>
|
|
2769
|
+
</ECEntityClass>
|
|
2770
|
+
|
|
2771
|
+
<ECRelationshipClass typeName="ADrivesB" strengthDirection="Backward" strength="referencing" modifier="Sealed">
|
|
2772
|
+
<Source multiplicity="(0..*)" polymorphic="true" roleLabel="drives">
|
|
2773
|
+
<Class class="ChildA"/>
|
|
2774
|
+
</Source>
|
|
2775
|
+
<Target multiplicity="(0..1)" polymorphic="true" roleLabel="is driven by">
|
|
2776
|
+
<Class class="ChildB"/>
|
|
2777
|
+
</Target>
|
|
2778
|
+
</ECRelationshipClass>
|
|
2779
|
+
|
|
2780
|
+
<ECEntityClass typeName="ChildC">
|
|
2781
|
+
<BaseClass>TestElement</BaseClass>
|
|
2782
|
+
</ECEntityClass>
|
|
2783
|
+
|
|
2784
|
+
<ECEntityClass typeName="ChildD">
|
|
2785
|
+
<BaseClass>TestElement</BaseClass>
|
|
2786
|
+
</ECEntityClass>
|
|
2787
|
+
|
|
2788
|
+
<ECRelationshipClass typeName="CIsRelatedToD" strength="referencing" modifier="Sealed">
|
|
2789
|
+
<BaseClass>bis:ElementRefersToElements</BaseClass>
|
|
2790
|
+
<Source multiplicity="(0..*)" roleLabel="IsRelatedTo" polymorphic="true">
|
|
2791
|
+
<Class class="ChildC"/>
|
|
2792
|
+
</Source>
|
|
2793
|
+
<Target multiplicity="(0..*)" roleLabel="IsRelatedTo (Reversed)" polymorphic="true">
|
|
2794
|
+
<Class class="ChildD"/>
|
|
2795
|
+
</Target>
|
|
2796
|
+
</ECRelationshipClass>
|
|
2797
|
+
</ECSchema>`
|
|
2798
|
+
]);
|
|
2799
|
+
// Enable ECSQL write validation and verify it's set
|
|
2800
|
+
const pragmaRows = IModelTestUtils.executeQuery(testImodel, `PRAGMA validate_ecsql_writes=true`);
|
|
2801
|
+
assert.exists(pragmaRows);
|
|
2802
|
+
assert.strictEqual(pragmaRows[0].validate_ecsql_writes, true);
|
|
2803
|
+
// Ensure ADrivesB table is empty before test
|
|
2804
|
+
validateADrivesBRowCount(testImodel, 0);
|
|
2805
|
+
// Create a physical model and spatial category if needed
|
|
2806
|
+
const [, newModelId] = IModelTestUtils.createAndInsertPhysicalPartitionAndModel(testImodel, Code.createEmpty(), true);
|
|
2807
|
+
let spatialCategoryId = SpatialCategory.queryCategoryIdByName(testImodel, IModel.dictionaryId, "MySpatialCategory");
|
|
2808
|
+
if (!spatialCategoryId) {
|
|
2809
|
+
spatialCategoryId = SpatialCategory.insert(testImodel, IModel.dictionaryId, "MySpatialCategory", new SubCategoryAppearance({ color: ColorDef.fromString("rgb(255,0,0)").toJSON() }));
|
|
2810
|
+
}
|
|
2811
|
+
// Insert a ChildB element to be referenced by ChildA
|
|
2812
|
+
const idB = insertElement(testImodel, newModelId, spatialCategoryId, "TestRelationSchema:ChildB", "ChildBElement");
|
|
2813
|
+
assert.isTrue(Id64.isValidId64(idB), "Insert ChildBElement failed");
|
|
2814
|
+
testImodel.saveChanges();
|
|
2815
|
+
// Prepare base props for ChildA
|
|
2816
|
+
const elementProps = createElemProps(testImodel, newModelId, spatialCategoryId, "TestRelationSchema:ChildA");
|
|
2817
|
+
// Test various relationship class names for navigation property
|
|
2818
|
+
const testCases = [
|
|
2819
|
+
{ name: "trs:ADrivesB", shouldSucceed: true, expectedRows: 1 },
|
|
2820
|
+
{ name: "trs.FakeClass", shouldSucceed: true, expectedRows: 0 },
|
|
2821
|
+
{ name: "trs:ChildA", shouldSucceed: false, expectedRows: 0 },
|
|
2822
|
+
{ name: "trs:ChildB", shouldSucceed: false, expectedRows: 0 },
|
|
2823
|
+
{ name: "trs:CIsRelatedToD", shouldSucceed: false, expectedRows: 0 },
|
|
2824
|
+
];
|
|
2825
|
+
for (const { name, shouldSucceed, expectedRows } of testCases) {
|
|
2826
|
+
const elemRef = new RelatedElement({ id: idB, relClassName: name });
|
|
2827
|
+
elementProps.navPropChildB = elemRef;
|
|
2828
|
+
elementProps.name = "ChildAElement";
|
|
2829
|
+
const geomElement = testImodel.elements.createElement(elementProps);
|
|
2830
|
+
let idA;
|
|
2831
|
+
try {
|
|
2832
|
+
idA = testImodel.elements.insertElement(geomElement.toJSON());
|
|
2833
|
+
if (shouldSucceed)
|
|
2834
|
+
assert.isTrue(Id64.isValidId64(idA), `Insert should have succeeded for ${name}.`);
|
|
2835
|
+
else
|
|
2836
|
+
assert.fail(`Insert should have failed for ${name}.`);
|
|
2837
|
+
}
|
|
2838
|
+
catch (err) {
|
|
2839
|
+
if (shouldSucceed)
|
|
2840
|
+
assert.fail(`Insert should have succeeded for ${name}. Error: ${err.message}`);
|
|
2841
|
+
// If should not succeed, error is expected
|
|
2842
|
+
}
|
|
2843
|
+
// Validate row count in ADrivesB table
|
|
2844
|
+
validateADrivesBRowCount(testImodel, expectedRows);
|
|
2845
|
+
// If insert succeeded, test update and delete scenarios
|
|
2846
|
+
if (expectedRows === 1 && idA !== undefined) {
|
|
2847
|
+
validateNavProp(testImodel, { id: idB, relClassName: "TestRelationSchema.ADrivesB" });
|
|
2848
|
+
const editElem = testImodel.elements.getElement(idA);
|
|
2849
|
+
editElem.navPropChildB = new RelatedElement({ id: idB, relClassName: "trs.FakeClass" });
|
|
2850
|
+
editElem.name = "ChildAElementUpdated";
|
|
2851
|
+
testImodel.elements.updateElement(editElem);
|
|
2852
|
+
validateADrivesBRowCount(testImodel, 1);
|
|
2853
|
+
validateNavProp(testImodel, { id: idB, relClassName: "TestRelationSchema.ADrivesB" });
|
|
2854
|
+
const editedElem = testImodel.elements.getElement(idA);
|
|
2855
|
+
assert.equal(editedElem.name, "ChildAElementUpdated", `Expected name to be "ChildAElementUpdated" after update, but got "${editedElem.name}"`);
|
|
2856
|
+
assert.strictEqual(editedElem.navPropChildB.relClassName, "TestRelationSchema.ADrivesB", `Expected navPropChildB to be "TestRelationSchema.ADrivesB" after update, but got "${editedElem.navPropChildB}"`);
|
|
2857
|
+
// Set the nav prop value to null
|
|
2858
|
+
editElem.name = "ChildAElementNulled";
|
|
2859
|
+
editElem.navPropChildB = null;
|
|
2860
|
+
testImodel.elements.updateElement(editElem);
|
|
2861
|
+
validateADrivesBRowCount(testImodel, 0);
|
|
2862
|
+
const nulledElem = testImodel.elements.getElement(idA);
|
|
2863
|
+
assert.equal(nulledElem.name, "ChildAElementNulled", `Expected name to be "ChildAElementNulled" after nulling, but got "${nulledElem.name}"`);
|
|
2864
|
+
assert.isUndefined(nulledElem.navPropChildB, `Expected navPropChildB to be undefined after nulling, but got "${nulledElem.navPropChildB}"`);
|
|
2865
|
+
if (shouldSucceed) {
|
|
2866
|
+
// Delete the element
|
|
2867
|
+
testImodel.elements.deleteElement(idA);
|
|
2868
|
+
assert.isUndefined(testImodel.elements.tryGetElement(idA), `Expected element with id ${idA} to be deleted, but it still exists.`);
|
|
2869
|
+
}
|
|
2870
|
+
}
|
|
2871
|
+
testImodel.abandonChanges();
|
|
2872
|
+
}
|
|
2873
|
+
testImodel.close();
|
|
2874
|
+
});
|
|
2625
2875
|
});
|
|
2626
2876
|
//# sourceMappingURL=IModel.test.js.map
|