@magda/typescript-common 2.3.3 → 3.0.0-alpha.0
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/dist/AspectBuilder.d.ts +1 -1
- package/dist/AspectBuilder.js +1 -2
- package/dist/AspectCreationFailure.js +3 -4
- package/dist/AspectCreationFailure.js.map +1 -1
- package/dist/AsyncPage.js +59 -79
- package/dist/AsyncPage.js.map +1 -1
- package/dist/BaseApiClient.d.ts +3 -3
- package/dist/BaseApiClient.js +20 -13
- package/dist/BaseApiClient.js.map +1 -1
- package/dist/ConnectionResult.d.ts +2 -2
- package/dist/ConnectionResult.js +17 -22
- package/dist/ConnectionResult.js.map +1 -1
- package/dist/ConnectorRecordId.d.ts +1 -1
- package/dist/ConnectorRecordId.js +9 -13
- package/dist/ConnectorRecordId.js.map +1 -1
- package/dist/IndexerApiClient.d.ts +1 -1
- package/dist/IndexerApiClient.js +13 -32
- package/dist/IndexerApiClient.js.map +1 -1
- package/dist/JsonConnector.d.ts +9 -9
- package/dist/JsonConnector.js +163 -206
- package/dist/JsonConnector.js.map +1 -1
- package/dist/JsonTransformer.d.ts +3 -3
- package/dist/JsonTransformer.js +71 -75
- package/dist/JsonTransformer.js.map +1 -1
- package/dist/OpaCompileResponseParser.d.ts +4 -4
- package/dist/OpaCompileResponseParser.js +278 -211
- package/dist/OpaCompileResponseParser.js.map +1 -1
- package/dist/RecordCreationFailure.d.ts +1 -1
- package/dist/RecordCreationFailure.js +4 -4
- package/dist/RecordCreationFailure.js.map +1 -1
- package/dist/SQLUtils.d.ts +3 -3
- package/dist/SQLUtils.js +139 -195
- package/dist/SQLUtils.js.map +1 -1
- package/dist/ServerError.js +2 -4
- package/dist/ServerError.js.map +1 -1
- package/dist/Try.js +20 -35
- package/dist/Try.js.map +1 -1
- package/dist/addTrailingSlash.js +1 -4
- package/dist/addTrailingSlash.js.map +1 -1
- package/dist/appendUrlSegments.js +3 -8
- package/dist/appendUrlSegments.js.map +1 -1
- package/dist/authorization-api/AccessControlError.d.ts +1 -1
- package/dist/authorization-api/AccessControlError.js +2 -8
- package/dist/authorization-api/AccessControlError.js.map +1 -1
- package/dist/authorization-api/ApiClient.d.ts +3 -3
- package/dist/authorization-api/ApiClient.js +211 -272
- package/dist/authorization-api/ApiClient.js.map +1 -1
- package/dist/authorization-api/AuthError.d.ts +1 -1
- package/dist/authorization-api/AuthError.js +2 -8
- package/dist/authorization-api/AuthError.js.map +1 -1
- package/dist/authorization-api/GenericError.js +2 -4
- package/dist/authorization-api/GenericError.js.map +1 -1
- package/dist/authorization-api/authMiddleware.d.ts +3 -3
- package/dist/authorization-api/authMiddleware.js +19 -40
- package/dist/authorization-api/authMiddleware.js.map +1 -1
- package/dist/authorization-api/constants.js +9 -12
- package/dist/authorization-api/constants.js.map +1 -1
- package/dist/authorization-api/model.d.ts +8 -8
- package/dist/authorization-api/model.js +1 -2
- package/dist/coerceJson.js +1 -3
- package/dist/coerceJson.js.map +1 -1
- package/dist/createNoCacheFetchOptions.d.ts +1 -1
- package/dist/createNoCacheFetchOptions.js +4 -7
- package/dist/createNoCacheFetchOptions.js.map +1 -1
- package/dist/createServiceError.d.ts +1 -1
- package/dist/createServiceError.js +4 -9
- package/dist/createServiceError.js.map +1 -1
- package/dist/delay.js +1 -3
- package/dist/delay.js.map +1 -1
- package/dist/express/getNoCacheHeaders.js +1 -3
- package/dist/express/getNoCacheHeaders.js.map +1 -1
- package/dist/express/setResponseNoCache.d.ts +1 -1
- package/dist/express/setResponseNoCache.js +3 -8
- package/dist/express/setResponseNoCache.js.map +1 -1
- package/dist/express/status.d.ts +14 -15
- package/dist/express/status.js +135 -126
- package/dist/express/status.js.map +1 -1
- package/dist/fetchRequest.d.ts +6 -6
- package/dist/fetchRequest.js +36 -51
- package/dist/fetchRequest.js.map +1 -1
- package/dist/formatServiceError.js +1 -4
- package/dist/formatServiceError.js.map +1 -1
- package/dist/generated/registry/api.d.ts +4 -4
- package/dist/generated/registry/api.js +197 -102
- package/dist/generated/registry/api.js.map +1 -1
- package/dist/getAbsoluteUrl.js +8 -11
- package/dist/getAbsoluteUrl.js.map +1 -1
- package/dist/getBasePathFromUrl.js +3 -9
- package/dist/getBasePathFromUrl.js.map +1 -1
- package/dist/getBoolValWithDefault.js +1 -3
- package/dist/getBoolValWithDefault.js.map +1 -1
- package/dist/getRequest.js +9 -26
- package/dist/getRequest.js.map +1 -1
- package/dist/getRequestNoCache.js +4 -21
- package/dist/getRequestNoCache.js.map +1 -1
- package/dist/getStorageUrl.js +13 -23
- package/dist/getStorageUrl.js.map +1 -1
- package/dist/handleServerError.js +3 -9
- package/dist/handleServerError.js.map +1 -1
- package/dist/markdownToHtml.js +5 -11
- package/dist/markdownToHtml.js.map +1 -1
- package/dist/opa/AspectQuery.js +55 -79
- package/dist/opa/AspectQuery.js.map +1 -1
- package/dist/opa/AuthDecision.d.ts +2 -2
- package/dist/opa/AuthDecision.js +52 -69
- package/dist/opa/AuthDecision.js.map +1 -1
- package/dist/opa/AuthDecisionQueryClient.d.ts +2 -2
- package/dist/opa/AuthDecisionQueryClient.js +72 -102
- package/dist/opa/AuthDecisionQueryClient.js.map +1 -1
- package/dist/pgTypes.js +4 -9
- package/dist/pgTypes.js.map +1 -1
- package/dist/registry/AuthorizedRegistryClient.d.ts +4 -4
- package/dist/registry/AuthorizedRegistryClient.js +52 -92
- package/dist/registry/AuthorizedRegistryClient.js.map +1 -1
- package/dist/registry/RegistryClient.d.ts +2 -2
- package/dist/registry/RegistryClient.js +60 -76
- package/dist/registry/RegistryClient.js.map +1 -1
- package/dist/registry/TenantConsts.js +3 -6
- package/dist/registry/TenantConsts.js.map +1 -1
- package/dist/registry/model.js +1 -2
- package/dist/registry-manual/api.d.ts +1 -1
- package/dist/registry-manual/api.js +18 -7
- package/dist/registry-manual/api.js.map +1 -1
- package/dist/request.d.ts +2 -2
- package/dist/request.js +4 -9
- package/dist/request.js.map +1 -1
- package/dist/retry.d.ts +1 -1
- package/dist/retry.js +3 -9
- package/dist/retry.js.map +1 -1
- package/dist/retryBackoff.js +3 -9
- package/dist/retryBackoff.js.map +1 -1
- package/dist/runLater.js +1 -4
- package/dist/runLater.js.map +1 -1
- package/dist/session/GetUserId.d.ts +2 -2
- package/dist/session/GetUserId.js +10 -16
- package/dist/session/GetUserId.js.map +1 -1
- package/dist/session/GetUserSession.d.ts +1 -1
- package/dist/session/GetUserSession.js +6 -10
- package/dist/session/GetUserSession.js.map +1 -1
- package/dist/session/addJwtSecretFromEnvVar.js +1 -4
- package/dist/session/addJwtSecretFromEnvVar.js.map +1 -1
- package/dist/session/buildJwt.d.ts +1 -1
- package/dist/session/buildJwt.js +2 -5
- package/dist/session/buildJwt.js.map +1 -1
- package/dist/session/buildJwtFromReq.d.ts +1 -1
- package/dist/session/buildJwtFromReq.js +3 -8
- package/dist/session/buildJwtFromReq.js.map +1 -1
- package/dist/session/cookieUtils.d.ts +2 -13
- package/dist/session/cookieUtils.js +8 -9
- package/dist/session/cookieUtils.js.map +1 -1
- package/dist/session/destroySession.js +18 -33
- package/dist/session/destroySession.js.map +1 -1
- package/dist/session/getSessionId.js +5 -11
- package/dist/session/getSessionId.js.map +1 -1
- package/dist/tenant-api/AuthorizedTenantClient.d.ts +1 -1
- package/dist/tenant-api/AuthorizedTenantClient.js +22 -36
- package/dist/tenant-api/AuthorizedTenantClient.js.map +1 -1
- package/dist/tenant-api/Tenant.js +13 -5
- package/dist/tenant-api/Tenant.js.map +1 -1
- package/dist/test/JsonConnector.spec.js +56 -61
- package/dist/test/JsonConnector.spec.js.map +1 -1
- package/dist/test/JsonTransformer.spec.js +15 -19
- package/dist/test/JsonTransformer.spec.js.map +1 -1
- package/dist/test/arbitraries.d.ts +21 -21
- package/dist/test/arbitraries.js +85 -99
- package/dist/test/arbitraries.js.map +1 -1
- package/dist/test/aspect-templates/organization-details.d.ts +1 -4
- package/dist/test/aspect-templates/organization-details.js +1 -1
- package/dist/test/aspect-templates/organization-details.js.map +1 -1
- package/dist/test/buildApiClient.spec.js +81 -107
- package/dist/test/buildApiClient.spec.js.map +1 -1
- package/dist/test/buildAuthorizedTenantClient.spec.js +25 -40
- package/dist/test/buildAuthorizedTenantClient.spec.js.map +1 -1
- package/dist/test/connectors/MockExpressServer.js +9 -23
- package/dist/test/connectors/MockExpressServer.js.map +1 -1
- package/dist/test/connectors/MockRegistry.d.ts +1 -1
- package/dist/test/connectors/MockRegistry.js +11 -18
- package/dist/test/connectors/MockRegistry.js.map +1 -1
- package/dist/test/connectors/runConnectorTest.js +33 -55
- package/dist/test/connectors/runConnectorTest.js.map +1 -1
- package/dist/test/createMockAuthDecisionQueryClient.d.ts +4 -4
- package/dist/test/createMockAuthDecisionQueryClient.js +4 -9
- package/dist/test/createMockAuthDecisionQueryClient.js.map +1 -1
- package/dist/test/db/getTestDBConfig.js +1 -3
- package/dist/test/db/getTestDBConfig.js.map +1 -1
- package/dist/test/db/runMigrationSql.js +37 -58
- package/dist/test/db/runMigrationSql.js.map +1 -1
- package/dist/test/express/status.spec.js +81 -72
- package/dist/test/express/status.spec.js.map +1 -1
- package/dist/test/fakeArgv.js +6 -5
- package/dist/test/fakeArgv.js.map +1 -1
- package/dist/test/getBasePathFromUrl.spec.js +5 -10
- package/dist/test/getBasePathFromUrl.spec.js.map +1 -1
- package/dist/test/getStorageUrl.spec.js +22 -46
- package/dist/test/getStorageUrl.spec.js.map +1 -1
- package/dist/test/mockAuthApiHost.js +26 -28
- package/dist/test/mockAuthApiHost.js.map +1 -1
- package/dist/test/mockAuthorization.js +4 -10
- package/dist/test/mockAuthorization.js.map +1 -1
- package/dist/test/mockTenantDataStore.d.ts +1 -1
- package/dist/test/mockTenantDataStore.js +3 -5
- package/dist/test/mockTenantDataStore.js.map +1 -1
- package/dist/test/mockUserDataStore.d.ts +1 -1
- package/dist/test/mockUserDataStore.js +4 -6
- package/dist/test/mockUserDataStore.js.map +1 -1
- package/dist/test/registry/buildAuthorizedClient.spec.js +65 -87
- package/dist/test/registry/buildAuthorizedClient.spec.js.map +1 -1
- package/dist/test/session/buildJwt.spec.js +15 -19
- package/dist/test/session/buildJwt.spec.js.map +1 -1
- package/dist/test/session/buildJwtForRegistryEsriOpaGroupsAndOwnerTest.spec.js +6 -11
- package/dist/test/session/buildJwtForRegistryEsriOpaGroupsAndOwnerTest.spec.js.map +1 -1
- package/dist/test/session/buildJwtForRegistryEsriOpaGroupsTest.spec.js +6 -11
- package/dist/test/session/buildJwtForRegistryEsriOpaGroupsTest.spec.js.map +1 -1
- package/dist/test/session/buildJwtForRegistryEsriOpaOwnerTest.spec.js +6 -11
- package/dist/test/session/buildJwtForRegistryEsriOpaOwnerTest.spec.js.map +1 -1
- package/dist/test/testAsyncPage.spec.js +84 -105
- package/dist/test/testAsyncPage.spec.js.map +1 -1
- package/dist/test/testOpaCompileResponseParser.spec.js +192 -196
- package/dist/test/testOpaCompileResponseParser.spec.js.map +1 -1
- package/dist/test/util.js +1 -5
- package/dist/test/util.js.map +1 -1
- package/dist/unknown2Error.d.ts +2 -0
- package/dist/unknown2Error.js +3 -0
- package/dist/unknown2Error.js.map +1 -0
- package/dist/util/arrayToMaybe.d.ts +1 -1
- package/dist/util/arrayToMaybe.js +3 -6
- package/dist/util/arrayToMaybe.js.map +1 -1
- package/dist/util/cleanOrgTitle.js +1 -4
- package/dist/util/cleanOrgTitle.js.map +1 -1
- package/dist/util/escapeRegExp.js +1 -3
- package/dist/util/escapeRegExp.js.map +1 -1
- package/dist/util/getMinikubeIP.js +3 -9
- package/dist/util/getMinikubeIP.js.map +1 -1
- package/dist/util/isArray.js +1 -3
- package/dist/util/isArray.js.map +1 -1
- package/dist/util/isUuid.js +1 -3
- package/dist/util/isUuid.js.map +1 -1
- package/dist/util/unionToThrowable.d.ts +1 -1
- package/dist/util/unionToThrowable.js +3 -9
- package/dist/util/unionToThrowable.js.map +1 -1
- package/dist/utilityTypes.d.ts +1 -1
- package/dist/utilityTypes.js +1 -2
- package/package.json +44 -26
- package/dist/test/jsverify.d.ts +0 -2
- package/dist/test/jsverify.js +0 -8
- package/dist/test/jsverify.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"organization-details.js","sourceRoot":"","sources":["../../../src/test/aspect-templates/organization-details.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"organization-details.js","sourceRoot":"","sources":["../../../src/test/aspect-templates/organization-details.js"],"names":[],"mappings":"AAAA,MAAM,IAAI,GAAG;IACT,IAAI,EAAE,YAAY,CAAC,IAAI;IACvB,WAAW,EAAE,YAAY,CAAC,WAAW;CACxC,CAAC;AAEF,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;IAC9B,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;AACrC,CAAC,CAAC,CAAC;AAEH,OAAO,IAAI,CAAC"}
|
|
@@ -1,31 +1,17 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
};
|
|
14
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
const sinon_1 = __importDefault(require("sinon"));
|
|
16
|
-
const chai_1 = __importDefault(require("chai"));
|
|
17
|
-
const chai_as_promised_1 = __importDefault(require("chai-as-promised"));
|
|
18
|
-
const yargs_1 = __importDefault(require("yargs"));
|
|
19
|
-
const addJwtSecretFromEnvVar_1 = __importDefault(require("../session/addJwtSecretFromEnvVar"));
|
|
20
|
-
const mockAuthApiHost_1 = __importDefault(require("./mockAuthApiHost"));
|
|
21
|
-
const ApiClient_1 = __importDefault(require("../authorization-api/ApiClient"));
|
|
22
|
-
const mockUserDataStore_1 = __importDefault(require("./mockUserDataStore"));
|
|
23
|
-
const urijs_1 = __importDefault(require("urijs"));
|
|
24
|
-
chai_1.default.use(chai_as_promised_1.default);
|
|
25
|
-
const expect = chai_1.default.expect;
|
|
26
|
-
const mockUserData = mockUserDataStore_1.default.getData();
|
|
1
|
+
import sinon from "sinon";
|
|
2
|
+
import * as chai from "chai";
|
|
3
|
+
import chaiAsPromised from "chai-as-promised";
|
|
4
|
+
import yargs from "yargs";
|
|
5
|
+
import addJwtSecretFromEnvVar from "../session/addJwtSecretFromEnvVar.js";
|
|
6
|
+
import mockAuthApiHost from "./mockAuthApiHost.js";
|
|
7
|
+
import ApiClient from "../authorization-api/ApiClient.js";
|
|
8
|
+
import mockUserDataStore from "./mockUserDataStore.js";
|
|
9
|
+
import urijs from "urijs";
|
|
10
|
+
chai.use(chaiAsPromised);
|
|
11
|
+
const expect = chai.expect;
|
|
12
|
+
const mockUserData = mockUserDataStore.getData();
|
|
27
13
|
describe("Test ApiClient.ts", function () {
|
|
28
|
-
const argv =
|
|
14
|
+
const argv = addJwtSecretFromEnvVar(yargs
|
|
29
15
|
.config()
|
|
30
16
|
.help()
|
|
31
17
|
.option("authorizationApi", {
|
|
@@ -43,10 +29,10 @@ describe("Test ApiClient.ts", function () {
|
|
|
43
29
|
demand: true,
|
|
44
30
|
default: process.env.USER_ID || process.env.npm_package_config_userId
|
|
45
31
|
}).argv);
|
|
46
|
-
const mockHost = new
|
|
32
|
+
const mockHost = new mockAuthApiHost(argv.authorizationApi, argv.jwtSecret, argv.userId);
|
|
47
33
|
beforeEach(function () {
|
|
48
|
-
|
|
49
|
-
|
|
34
|
+
sinon.stub(console, "error").callsFake(() => { });
|
|
35
|
+
sinon.stub(console, "warn").callsFake(() => { });
|
|
50
36
|
mockHost.start();
|
|
51
37
|
});
|
|
52
38
|
afterEach(function () {
|
|
@@ -54,60 +40,50 @@ describe("Test ApiClient.ts", function () {
|
|
|
54
40
|
console.warn.restore();
|
|
55
41
|
mockHost.stop();
|
|
56
42
|
});
|
|
57
|
-
it("`lookupUser` should throw 'Unauthorised' error if called without specifying source or sourceId", function () {
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
catch (e) { }
|
|
70
|
-
});
|
|
43
|
+
it("`lookupUser` should throw 'Unauthorised' error if called without specifying source or sourceId", async function () {
|
|
44
|
+
const api = new ApiClient(argv.authorizationApi);
|
|
45
|
+
try {
|
|
46
|
+
await api.lookupUser(undefined, "testuser");
|
|
47
|
+
expect.fail("expect an error thrown");
|
|
48
|
+
}
|
|
49
|
+
catch (e) { }
|
|
50
|
+
try {
|
|
51
|
+
await api.lookupUser("testsource", undefined);
|
|
52
|
+
expect.fail("expect an error thrown");
|
|
53
|
+
}
|
|
54
|
+
catch (e) { }
|
|
71
55
|
});
|
|
72
|
-
it("`lookupUser` should request /public/users API with correct query parameters", function () {
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
return [200, JSON.stringify([{ id: "xxx1" }])];
|
|
87
|
-
});
|
|
88
|
-
const user = yield api.lookupUser("source1", "testuser");
|
|
89
|
-
expect(user.valueOrThrow()).to.have.property("id", "xxx1");
|
|
90
|
-
expect(hasCalled).to.be.true;
|
|
56
|
+
it("`lookupUser` should request /public/users API with correct query parameters", async function () {
|
|
57
|
+
const api = new ApiClient(argv.authorizationApi);
|
|
58
|
+
let hasCalled = false;
|
|
59
|
+
mockHost.scope
|
|
60
|
+
.get("/public/users")
|
|
61
|
+
.query(true)
|
|
62
|
+
.reply(function (uri, requestBody) {
|
|
63
|
+
const parsedUri = urijs(uri);
|
|
64
|
+
const queries = parsedUri.search(true);
|
|
65
|
+
expect(queries).to.have.property("source", "source1");
|
|
66
|
+
expect(queries).to.have.property("sourceId", "testuser");
|
|
67
|
+
expect(queries).to.have.property("limit", "1");
|
|
68
|
+
hasCalled = true;
|
|
69
|
+
return [200, JSON.stringify([{ id: "xxx1" }])];
|
|
91
70
|
});
|
|
71
|
+
const user = await api.lookupUser("source1", "testuser");
|
|
72
|
+
expect(user.valueOrThrow()).to.have.property("id", "xxx1");
|
|
73
|
+
expect(hasCalled).to.be.true;
|
|
92
74
|
});
|
|
93
|
-
it("`getUser` should return 'Unauthorised' error if called without sepecifying user ID", function () {
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
return expect(api.getUser(mockUserData[1].id)).to.eventually.rejectedWith("Unauthorised");
|
|
97
|
-
});
|
|
75
|
+
it("`getUser` should return 'Unauthorised' error if called without sepecifying user ID", async function () {
|
|
76
|
+
const api = new ApiClient(argv.authorizationApi);
|
|
77
|
+
return expect(api.getUser(mockUserData[1].id)).to.eventually.rejectedWith("Unauthorised");
|
|
98
78
|
});
|
|
99
|
-
it("`getUser` should return 'Can only be accessed by Admin users' error if called as a standard user", function () {
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
return expect(api.getUser(mockUserData[1].id)).eventually.rejectedWith("Can only be accessed by Admin users");
|
|
103
|
-
});
|
|
79
|
+
it("`getUser` should return 'Can only be accessed by Admin users' error if called as a standard user", async function () {
|
|
80
|
+
const api = new ApiClient(argv.authorizationApi, argv.jwtSecret, mockUserData[1].id);
|
|
81
|
+
return expect(api.getUser(mockUserData[1].id)).eventually.rejectedWith("Can only be accessed by Admin users");
|
|
104
82
|
});
|
|
105
|
-
it("`getUser` should return the correct test user record if called as admin user", function () {
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
expect(data).to.deep.equal(mockUserData[1]);
|
|
110
|
-
});
|
|
83
|
+
it("`getUser` should return the correct test user record if called as admin user", async function () {
|
|
84
|
+
const api = new ApiClient(argv.authorizationApi, argv.jwtSecret, argv.userId);
|
|
85
|
+
const data = (await api.getUser(mockUserData[1].id)).valueOr(null);
|
|
86
|
+
expect(data).to.deep.equal(mockUserData[1]);
|
|
111
87
|
});
|
|
112
88
|
const newUserDataToBeInserted = {
|
|
113
89
|
displayName: "Test User2",
|
|
@@ -117,39 +93,37 @@ describe("Test ApiClient.ts", function () {
|
|
|
117
93
|
sourceId: "2",
|
|
118
94
|
isAdmin: false
|
|
119
95
|
};
|
|
120
|
-
it(`\`createUser\` should return 'Encountered error 401 when POSTing new user to ${argv.authorizationApi}' error if called without sepecifying user ID`, function () {
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
return expect(api.createUser(newUserDataToBeInserted)).to.eventually.rejectedWith("Encountered error 401: Unauthorised when creating new user to http://localhost:6104/v0/public/users");
|
|
124
|
-
});
|
|
96
|
+
it(`\`createUser\` should return 'Encountered error 401 when POSTing new user to ${argv.authorizationApi}' error if called without sepecifying user ID`, async function () {
|
|
97
|
+
const api = new ApiClient(argv.authorizationApi);
|
|
98
|
+
return expect(api.createUser(newUserDataToBeInserted)).to.eventually.rejectedWith("Encountered error 401: Unauthorised when creating new user to http://localhost:6104/v0/public/users");
|
|
125
99
|
});
|
|
126
|
-
it(`\`createUser\` should return 'Encountered error 403 when POSTing new user to ${argv.authorizationApi}' error if called as a standard user`, function () {
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
return expect(api.createUser(newUserDataToBeInserted)).to.eventually.rejectedWith("Encountered error 403: Can only be accessed by Admin users when creating new user to http://localhost:6104/v0/public/users");
|
|
130
|
-
});
|
|
100
|
+
it(`\`createUser\` should return 'Encountered error 403 when POSTing new user to ${argv.authorizationApi}' error if called as a standard user`, async function () {
|
|
101
|
+
const api = new ApiClient(argv.authorizationApi, argv.jwtSecret, mockUserData[1].id);
|
|
102
|
+
return expect(api.createUser(newUserDataToBeInserted)).to.eventually.rejectedWith("Encountered error 403: Can only be accessed by Admin users when creating new user to http://localhost:6104/v0/public/users");
|
|
131
103
|
});
|
|
132
104
|
let newlyCreatedUserId = null;
|
|
133
|
-
it("`createUser` should return the new user data if called as admin user", function () {
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
105
|
+
it("`createUser` should return the new user data if called as admin user", async function () {
|
|
106
|
+
const api = new ApiClient(argv.authorizationApi, argv.jwtSecret, argv.userId);
|
|
107
|
+
const newUser = await api.createUser(newUserDataToBeInserted);
|
|
108
|
+
expect(newUser).to.have.property("id");
|
|
109
|
+
expect(newUser.id).to.be.a("string");
|
|
110
|
+
expect(/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/.test(newUser.id)).to.be.true;
|
|
111
|
+
newlyCreatedUserId = newUser.id;
|
|
112
|
+
expect(newUser).to.deep.equal({
|
|
113
|
+
...newUserDataToBeInserted,
|
|
114
|
+
id: newUser.id
|
|
142
115
|
});
|
|
143
116
|
});
|
|
144
|
-
it("After `createUser` call, the same user record should be able to retrieved via `getUser`", function () {
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
117
|
+
it("After `createUser` call, the same user record should be able to retrieved via `getUser`", async function () {
|
|
118
|
+
if (!newlyCreatedUserId) {
|
|
119
|
+
this.skip();
|
|
120
|
+
return;
|
|
121
|
+
}
|
|
122
|
+
const api = new ApiClient(argv.authorizationApi, argv.jwtSecret, argv.userId);
|
|
123
|
+
const user = (await api.getUser(newlyCreatedUserId)).valueOrThrow(null);
|
|
124
|
+
expect(user).to.deep.equal({
|
|
125
|
+
...newUserDataToBeInserted,
|
|
126
|
+
id: newlyCreatedUserId
|
|
153
127
|
});
|
|
154
128
|
});
|
|
155
129
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildApiClient.spec.js","sourceRoot":"","sources":["../../src/test/buildApiClient.spec.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"buildApiClient.spec.js","sourceRoot":"","sources":["../../src/test/buildApiClient.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,60 +1,45 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
};
|
|
11
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
-
};
|
|
14
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
const chai_1 = __importDefault(require("chai"));
|
|
16
|
-
const chai_as_promised_1 = __importDefault(require("chai-as-promised"));
|
|
17
|
-
const AuthorizedTenantClient_1 = __importDefault(require("../tenant-api/AuthorizedTenantClient"));
|
|
18
|
-
const mockTenantDataStore_1 = __importDefault(require("./mockTenantDataStore"));
|
|
19
|
-
const TenantConsts_1 = require("../registry/TenantConsts");
|
|
20
|
-
const nock_1 = __importDefault(require("nock"));
|
|
21
|
-
const jwt = require("jsonwebtoken");
|
|
22
|
-
chai_1.default.use(chai_as_promised_1.default);
|
|
23
|
-
const expect = chai_1.default.expect;
|
|
1
|
+
import * as chai from "chai";
|
|
2
|
+
import chaiAsPromised from "chai-as-promised";
|
|
3
|
+
import AuthorizedTenantClient from "../tenant-api/AuthorizedTenantClient.js";
|
|
4
|
+
import mockTenantDataStore from "./mockTenantDataStore.js";
|
|
5
|
+
import { MAGDA_ADMIN_PORTAL_ID } from "../registry/TenantConsts.js";
|
|
6
|
+
import nock from "nock";
|
|
7
|
+
import jwt from "jsonwebtoken";
|
|
8
|
+
chai.use(chaiAsPromised);
|
|
9
|
+
const expect = chai.expect;
|
|
24
10
|
describe("Test AuthorizedTenantClient.ts", function () {
|
|
25
|
-
const mockTenants =
|
|
11
|
+
const mockTenants = mockTenantDataStore.getTenants();
|
|
26
12
|
const jwtSecret = "a top secret";
|
|
27
13
|
const adminUserId = "an-admin-user";
|
|
28
14
|
const tenantsBaseUrl = "http://tenant.some.where";
|
|
29
|
-
const requestScope =
|
|
15
|
+
const requestScope = nock(tenantsBaseUrl, {
|
|
30
16
|
reqheaders: {
|
|
31
17
|
// A jwt will contain timestamp by default. The value of header
|
|
32
18
|
// "X-Magda-Session" can not be pre-determined. The exact match
|
|
33
19
|
// of this header can not be guaranteed. Therefore we have to
|
|
34
20
|
// check the decoded user id.
|
|
35
21
|
"X-Magda-Session": (jwtToken) => {
|
|
36
|
-
return jwt.verify(jwtToken, jwtSecret).userId ===
|
|
22
|
+
return (jwt.verify(jwtToken, jwtSecret).userId ===
|
|
23
|
+
adminUserId);
|
|
37
24
|
},
|
|
38
25
|
"Content-Type": "application/json",
|
|
39
|
-
"X-Magda-Tenant-Id": `${
|
|
26
|
+
"X-Magda-Tenant-Id": `${MAGDA_ADMIN_PORTAL_ID}`
|
|
40
27
|
}
|
|
41
28
|
});
|
|
42
29
|
afterEach(() => {
|
|
43
|
-
|
|
30
|
+
nock.cleanAll();
|
|
44
31
|
});
|
|
45
|
-
it("`getTenants()` should return all tenants", function () {
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
userId: adminUserId
|
|
54
|
-
});
|
|
55
|
-
const actual = yield api.getTenants();
|
|
56
|
-
return expect(actual).to.deep.equal(mockTenants);
|
|
32
|
+
it("`getTenants()` should return all tenants", async function () {
|
|
33
|
+
requestScope.get("/tenants").reply(200, mockTenants);
|
|
34
|
+
const api = new AuthorizedTenantClient({
|
|
35
|
+
urlStr: tenantsBaseUrl,
|
|
36
|
+
maxRetries: 1,
|
|
37
|
+
secondsBetweenRetries: 1,
|
|
38
|
+
jwtSecret: jwtSecret,
|
|
39
|
+
userId: adminUserId
|
|
57
40
|
});
|
|
41
|
+
const actual = await api.getTenants();
|
|
42
|
+
return expect(actual).to.deep.equal(mockTenants);
|
|
58
43
|
});
|
|
59
44
|
});
|
|
60
45
|
//# sourceMappingURL=buildAuthorizedTenantClient.spec.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildAuthorizedTenantClient.spec.js","sourceRoot":"","sources":["../../src/test/buildAuthorizedTenantClient.spec.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"buildAuthorizedTenantClient.spec.js","sourceRoot":"","sources":["../../src/test/buildAuthorizedTenantClient.spec.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAC9C,OAAO,sBAAsB,MAAM,yCAAyC,CAAC;AAC7E,OAAO,mBAAmB,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,GAAmB,MAAM,cAAc,CAAC;AAE/C,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;AACzB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;AAE3B,QAAQ,CAAC,gCAAgC,EAAE;IACvC,MAAM,WAAW,GAAG,mBAAmB,CAAC,UAAU,EAAE,CAAC;IACrD,MAAM,SAAS,GAAG,cAAc,CAAC;IACjC,MAAM,WAAW,GAAG,eAAe,CAAC;IACpC,MAAM,cAAc,GAAG,0BAA0B,CAAC;IAElD,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,EAAE;QACtC,UAAU,EAAE;YACR,+DAA+D;YAC/D,+DAA+D;YAC/D,6DAA6D;YAC7D,6BAA6B;YAC7B,iBAAiB,EAAE,CAAC,QAAQ,EAAE,EAAE;gBAC5B,OAAO,CACF,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAgB,CAAC,MAAM;oBACtD,WAAW,CACd,CAAC;YACN,CAAC;YACD,cAAc,EAAE,kBAAkB;YAClC,mBAAmB,EAAE,GAAG,qBAAqB,EAAE;SAClD;KACJ,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACX,IAAI,CAAC,QAAQ,EAAE,CAAC;IACpB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0CAA0C,EAAE,KAAK;QAChD,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;QAErD,MAAM,GAAG,GAAG,IAAI,sBAAsB,CAAC;YACnC,MAAM,EAAE,cAAc;YACtB,UAAU,EAAE,CAAC;YACb,qBAAqB,EAAE,CAAC;YACxB,SAAS,EAAE,SAAS;YACpB,MAAM,EAAE,WAAW;SACtB,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,UAAU,EAAE,CAAC;QACtC,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
|
|
@@ -1,28 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
};
|
|
11
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.MockExpressServer = void 0;
|
|
13
|
-
const express = require("express");
|
|
14
|
-
class MockExpressServer {
|
|
15
|
-
run(port) {
|
|
16
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
17
|
-
const app = express();
|
|
18
|
-
yield this.runImplementation(app);
|
|
19
|
-
return new Promise((resolve) => {
|
|
20
|
-
this.server = app.listen(port, () => {
|
|
21
|
-
resolve(this);
|
|
22
|
-
});
|
|
1
|
+
import express from "express";
|
|
2
|
+
export class MockExpressServer {
|
|
3
|
+
server;
|
|
4
|
+
async run(port) {
|
|
5
|
+
const app = express();
|
|
6
|
+
await this.runImplementation(app);
|
|
7
|
+
return new Promise((resolve) => {
|
|
8
|
+
this.server = app.listen(port, () => {
|
|
9
|
+
resolve(this);
|
|
23
10
|
});
|
|
24
11
|
});
|
|
25
12
|
}
|
|
26
13
|
}
|
|
27
|
-
exports.MockExpressServer = MockExpressServer;
|
|
28
14
|
//# sourceMappingURL=MockExpressServer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MockExpressServer.js","sourceRoot":"","sources":["../../../src/test/connectors/MockExpressServer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"MockExpressServer.js","sourceRoot":"","sources":["../../../src/test/connectors/MockExpressServer.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAE9B,MAAM,OAAgB,iBAAiB;IACnC,MAAM,CAAM;IAEZ,KAAK,CAAC,GAAG,CAAC,IAAY;QAClB,MAAM,GAAG,GAAQ,OAAO,EAAE,CAAC;QAE3B,MAAM,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;QAElC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC3B,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE;gBAChC,OAAO,CAAC,IAAI,CAAC,CAAC;YAClB,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC;CAGJ"}
|
|
@@ -1,19 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
constructor() {
|
|
10
|
-
super(...arguments);
|
|
11
|
-
this.aspects = {};
|
|
12
|
-
this.records = {};
|
|
13
|
-
this.env = djv();
|
|
14
|
-
}
|
|
1
|
+
import { MockExpressServer } from "./MockExpressServer.js";
|
|
2
|
+
import { merge } from "lodash";
|
|
3
|
+
import express from "express";
|
|
4
|
+
import djv from "djv";
|
|
5
|
+
export class MockRegistry extends MockExpressServer {
|
|
6
|
+
aspects = {};
|
|
7
|
+
records = {};
|
|
8
|
+
env = djv();
|
|
15
9
|
runImplementation(registry) {
|
|
16
|
-
registry.use(
|
|
10
|
+
registry.use(express.json({
|
|
17
11
|
limit: "500000kb"
|
|
18
12
|
}));
|
|
19
13
|
registry.put("/aspects/:id", (req, res) => {
|
|
@@ -23,7 +17,7 @@ class MockRegistry extends MockExpressServer_1.MockExpressServer {
|
|
|
23
17
|
res.json(req.body);
|
|
24
18
|
});
|
|
25
19
|
registry.put("/records/:id", (req, res) => {
|
|
26
|
-
this.records[req.params.id] =
|
|
20
|
+
this.records[req.params.id] = merge(this.records[req.params.id] || {}, req.body);
|
|
27
21
|
// validate aspects
|
|
28
22
|
if (req.body.aspects) {
|
|
29
23
|
for (const [aspect, aspectBody] of Object.entries(req.body.aspects)) {
|
|
@@ -52,7 +46,7 @@ class MockRegistry extends MockExpressServer_1.MockExpressServer {
|
|
|
52
46
|
// error: e.message
|
|
53
47
|
// })
|
|
54
48
|
// .end();
|
|
55
|
-
console.log(e
|
|
49
|
+
console.log(e?.message);
|
|
56
50
|
}
|
|
57
51
|
}
|
|
58
52
|
}
|
|
@@ -85,7 +79,6 @@ class MockRegistry extends MockExpressServer_1.MockExpressServer {
|
|
|
85
79
|
});
|
|
86
80
|
}
|
|
87
81
|
}
|
|
88
|
-
exports.MockRegistry = MockRegistry;
|
|
89
82
|
if (require.main === module) {
|
|
90
83
|
const app = new MockRegistry();
|
|
91
84
|
app.run(8080);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MockRegistry.js","sourceRoot":"","sources":["../../../src/test/connectors/MockRegistry.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"MockRegistry.js","sourceRoot":"","sources":["../../../src/test/connectors/MockRegistry.ts"],"names":[],"mappings":"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"}
|