@itwin/rpcinterface-full-stack-tests 3.0.0-dev.91 → 3.0.0-dev.95

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.
@@ -8,7 +8,7 @@ exports.IModelSession = void 0;
8
8
  const chai_1 = require("chai");
9
9
  const core_frontend_1 = require("@itwin/core-frontend");
10
10
  const imodelhub_client_1 = require("@bentley/imodelhub-client");
11
- const itwin_registry_client_1 = require("@bentley/itwin-registry-client");
11
+ const projects_client_1 = require("@itwin/projects-client");
12
12
  const core_common_1 = require("@itwin/core-common");
13
13
  class IModelSession {
14
14
  constructor(iTwinId, imodelId, changesetId) {
@@ -24,11 +24,11 @@ class IModelSession {
24
24
  if (iModelData.useITwinName) {
25
25
  if (!iModelData.iTwinName)
26
26
  throw new Error(`The iModel has no iTwin name, so it cannot get the iTwin.`);
27
- const client = new itwin_registry_client_1.ITwinAccessClient();
27
+ const client = new projects_client_1.ProjectsAccessClient();
28
28
  const iTwinList = await client.getAll(requestContext, {
29
29
  search: {
30
30
  searchString: iModelData.iTwinName,
31
- propertyName: itwin_registry_client_1.ITwinSearchableProperty.Name,
31
+ propertyName: projects_client_1.ProjectsSearchableProperty.Name,
32
32
  exactMatch: true,
33
33
  }
34
34
  });
@@ -1 +1 @@
1
- {"version":3,"file":"IModelSession.js","sourceRoot":"","sources":["../../../src/frontend/setup/IModelSession.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\nimport { expect } from \"chai\";\r\nimport { CheckpointConnection } from \"@itwin/core-frontend\";\r\nimport { IModelHubClient, IModelQuery } from \"@bentley/imodelhub-client\";\r\nimport { ITwin, ITwinAccessClient, ITwinSearchableProperty } from \"@bentley/itwin-registry-client\";\r\nimport { IModelData } from \"../../common/Settings\";\r\nimport { IModelVersion } from \"@itwin/core-common\";\r\nimport { AccessToken } from \"@itwin/core-bentley\";\r\n\r\nexport class IModelSession {\r\n\r\n public iTwinId: string;\r\n public iModelId: string;\r\n public changesetId?: string;\r\n private _imodelVersion: IModelVersion;\r\n\r\n private _iModel?: CheckpointConnection;\r\n\r\n private constructor(iTwinId: string, imodelId: string, changesetId?: string) {\r\n this.iTwinId = iTwinId;\r\n this.iModelId = imodelId;\r\n this.changesetId = changesetId;\r\n\r\n this._imodelVersion = changesetId ? IModelVersion.asOfChangeSet(changesetId) : IModelVersion.latest();\r\n }\r\n\r\n public static async create(requestContext: AccessToken, iModelData: IModelData): Promise<IModelSession> {\r\n let iTwinId;\r\n let imodelId;\r\n\r\n // Turn the iTwin name into an id\r\n if (iModelData.useITwinName) {\r\n if (!iModelData.iTwinName)\r\n throw new Error(`The iModel has no iTwin name, so it cannot get the iTwin.`);\r\n\r\n const client = new ITwinAccessClient();\r\n const iTwinList: ITwin[] = await client.getAll(requestContext, {\r\n search: {\r\n searchString: iModelData.iTwinName,\r\n propertyName: ITwinSearchableProperty.Name,\r\n exactMatch: true,\r\n }});\r\n\r\n if (iTwinList.length === 0)\r\n throw new Error(`ITwin ${iModelData.iTwinName} was not found for the user.`);\r\n else if (iTwinList.length > 1)\r\n throw new Error(`Multiple iTwins named ${iModelData.iTwinName} were found for the user.`);\r\n\r\n iTwinId = iTwinList[0].id;\r\n } else\r\n iTwinId = iModelData.iTwinId!;\r\n\r\n if (iModelData.useName) {\r\n const imodelClient = new IModelHubClient();\r\n const imodels = await imodelClient.iModels.get(requestContext, iTwinId, new IModelQuery().byName(iModelData.name!));\r\n if (undefined === imodels || imodels.length === 0)\r\n throw new Error(`The iModel ${iModelData.name} does not exist in iTwin ${iTwinId}.`);\r\n imodelId = imodels[0].wsgId;\r\n } else\r\n imodelId = iModelData.id!;\r\n\r\n console.log(`Using iModel { name:${iModelData.name}, id:${iModelData.id}, iTwinId:${iModelData.iTwinId}, changesetId:${iModelData.changeSetId} }`); // eslint-disable-line no-console\r\n\r\n return new IModelSession(iTwinId, imodelId, iModelData.changeSetId);\r\n }\r\n\r\n public async getConnection(): Promise<CheckpointConnection> {\r\n return undefined === this._iModel ? this.open() : this._iModel;\r\n }\r\n\r\n public async open(): Promise<CheckpointConnection> {\r\n try {\r\n // eslint-disable-next-line no-console\r\n console.log(`Environment: ${process.env.IMJS_URL_PREFIX}`);\r\n this._iModel = await CheckpointConnection.openRemote(this.iTwinId, this.iModelId, this._imodelVersion);\r\n expect(this._iModel).to.exist;\r\n } catch (e: any) {\r\n throw new Error(`Failed to open test iModel. Error: ${e.message}`);\r\n }\r\n\r\n return this._iModel;\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"IModelSession.js","sourceRoot":"","sources":["../../../src/frontend/setup/IModelSession.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\nimport { expect } from \"chai\";\r\nimport { CheckpointConnection } from \"@itwin/core-frontend\";\r\nimport { IModelHubClient, IModelQuery } from \"@bentley/imodelhub-client\";\r\nimport { Project as ITwin, ProjectsAccessClient, ProjectsSearchableProperty } from \"@itwin/projects-client\";\r\nimport { IModelData } from \"../../common/Settings\";\r\nimport { IModelVersion } from \"@itwin/core-common\";\r\nimport { AccessToken } from \"@itwin/core-bentley\";\r\n\r\nexport class IModelSession {\r\n\r\n public iTwinId: string;\r\n public iModelId: string;\r\n public changesetId?: string;\r\n private _imodelVersion: IModelVersion;\r\n\r\n private _iModel?: CheckpointConnection;\r\n\r\n private constructor(iTwinId: string, imodelId: string, changesetId?: string) {\r\n this.iTwinId = iTwinId;\r\n this.iModelId = imodelId;\r\n this.changesetId = changesetId;\r\n\r\n this._imodelVersion = changesetId ? IModelVersion.asOfChangeSet(changesetId) : IModelVersion.latest();\r\n }\r\n\r\n public static async create(requestContext: AccessToken, iModelData: IModelData): Promise<IModelSession> {\r\n let iTwinId;\r\n let imodelId;\r\n\r\n // Turn the iTwin name into an id\r\n if (iModelData.useITwinName) {\r\n if (!iModelData.iTwinName)\r\n throw new Error(`The iModel has no iTwin name, so it cannot get the iTwin.`);\r\n\r\n const client = new ProjectsAccessClient();\r\n const iTwinList: ITwin[] = await client.getAll(requestContext, {\r\n search: {\r\n searchString: iModelData.iTwinName,\r\n propertyName: ProjectsSearchableProperty.Name,\r\n exactMatch: true,\r\n }});\r\n\r\n if (iTwinList.length === 0)\r\n throw new Error(`ITwin ${iModelData.iTwinName} was not found for the user.`);\r\n else if (iTwinList.length > 1)\r\n throw new Error(`Multiple iTwins named ${iModelData.iTwinName} were found for the user.`);\r\n\r\n iTwinId = iTwinList[0].id;\r\n } else\r\n iTwinId = iModelData.iTwinId!;\r\n\r\n if (iModelData.useName) {\r\n const imodelClient = new IModelHubClient();\r\n const imodels = await imodelClient.iModels.get(requestContext, iTwinId, new IModelQuery().byName(iModelData.name!));\r\n if (undefined === imodels || imodels.length === 0)\r\n throw new Error(`The iModel ${iModelData.name} does not exist in iTwin ${iTwinId}.`);\r\n imodelId = imodels[0].wsgId;\r\n } else\r\n imodelId = iModelData.id!;\r\n\r\n console.log(`Using iModel { name:${iModelData.name}, id:${iModelData.id}, iTwinId:${iModelData.iTwinId}, changesetId:${iModelData.changeSetId} }`); // eslint-disable-line no-console\r\n\r\n return new IModelSession(iTwinId, imodelId, iModelData.changeSetId);\r\n }\r\n\r\n public async getConnection(): Promise<CheckpointConnection> {\r\n return undefined === this._iModel ? this.open() : this._iModel;\r\n }\r\n\r\n public async open(): Promise<CheckpointConnection> {\r\n try {\r\n // eslint-disable-next-line no-console\r\n console.log(`Environment: ${process.env.IMJS_URL_PREFIX}`);\r\n this._iModel = await CheckpointConnection.openRemote(this.iTwinId, this.iModelId, this._imodelVersion);\r\n expect(this._iModel).to.exist;\r\n } catch (e: any) {\r\n throw new Error(`Failed to open test iModel. Error: ${e.message}`);\r\n }\r\n\r\n return this._iModel;\r\n }\r\n}\r\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@itwin/rpcinterface-full-stack-tests",
3
- "version": "3.0.0-dev.91",
3
+ "version": "3.0.0-dev.95",
4
4
  "description": "Test the full iModel.js stack (frontend and backend) using standard RPC interfaces",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -18,20 +18,18 @@
18
18
  "url": "http://www.bentley.com"
19
19
  },
20
20
  "dependencies": {
21
- "@itwin/core-bentley": "3.0.0-dev.91",
22
- "@itwin/build-tools": "3.0.0-dev.91",
23
- "@itwin/certa": "3.0.0-dev.91",
24
- "@itwin/eslint-plugin": "3.0.0-dev.91",
25
- "@itwin/core-geometry": "3.0.0-dev.91",
26
- "@bentley/imodelhub-client": "3.0.0-dev.91",
27
- "@itwin/core-common": "3.0.0-dev.91",
28
- "@itwin/core-frontend": "3.0.0-dev.91",
29
- "@itwin/core-i18n": "3.0.0-dev.91",
30
- "@itwin/core-quantity": "3.0.0-dev.91",
31
- "@itwin/oidc-signin-tool": "3.0.0-dev.91",
32
- "@itwin/presentation-common": "3.0.0-dev.91",
33
- "@itwin/presentation-frontend": "3.0.0-dev.91",
34
- "@bentley/telemetry-client": "3.0.0-dev.91",
21
+ "@itwin/core-bentley": "3.0.0-dev.95",
22
+ "@itwin/build-tools": "3.0.0-dev.95",
23
+ "@itwin/certa": "3.0.0-dev.95",
24
+ "@itwin/eslint-plugin": "3.0.0-dev.95",
25
+ "@itwin/core-geometry": "3.0.0-dev.95",
26
+ "@bentley/imodelhub-client": "3.0.0-dev.95",
27
+ "@itwin/core-common": "3.0.0-dev.95",
28
+ "@itwin/core-frontend": "3.0.0-dev.95",
29
+ "@itwin/core-quantity": "3.0.0-dev.95",
30
+ "@itwin/oidc-signin-tool": "3.0.0-dev.95",
31
+ "@itwin/presentation-common": "3.0.0-dev.95",
32
+ "@itwin/presentation-frontend": "3.0.0-dev.95",
35
33
  "@itwin/service-authorization": "^0.2.0",
36
34
  "chai": "^4.1.2",
37
35
  "chai-as-promised": "^7",
@@ -42,10 +40,10 @@
42
40
  "puppeteer": "chrome-86"
43
41
  },
44
42
  "devDependencies": {
45
- "@itwin/express-server": "3.0.0-dev.91",
46
- "@itwin/core-backend": "3.0.0-dev.91",
47
- "@itwin/presentation-backend": "3.0.0-dev.91",
48
- "@bentley/itwin-registry-client": "3.0.0-dev.91",
43
+ "@itwin/express-server": "3.0.0-dev.95",
44
+ "@itwin/core-backend": "3.0.0-dev.95",
45
+ "@itwin/presentation-backend": "3.0.0-dev.95",
46
+ "@itwin/projects-client": "^0.2.0",
49
47
  "@types/chai": "^4.1.4",
50
48
  "@types/chai-as-promised": "^7",
51
49
  "@types/mocha": "^8.2.2",
@@ -69,8 +67,8 @@
69
67
  "extends": "plugin:@itwin/itwinjs-recommended"
70
68
  },
71
69
  "scripts": {
72
- "compile": "npm run -s build",
73
70
  "build": "tsc 1>&2 && npm run -s webpack:frontend",
71
+ "build:ci": "npm run -s build",
74
72
  "clean": "rimraf lib .rush/temp/package-deps*.json integration_test_results",
75
73
  "copy:config": "internal-tools copy-config",
76
74
  "cover": "",