@magda/typescript-common 2.3.2 → 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 +75 -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 +2 -0
- package/dist/session/buildJwtFromReq.js +4 -0
- package/dist/session/buildJwtFromReq.js.map +1 -0
- 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,44 +1,24 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
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
|
-
exports.runConnectorTest = void 0;
|
|
16
|
-
const cross_spawn_1 = __importDefault(require("cross-spawn"));
|
|
17
|
-
const assert_1 = __importDefault(require("assert"));
|
|
18
|
-
const path_1 = __importDefault(require("path"));
|
|
19
|
-
const MockRegistry_1 = require("./MockRegistry");
|
|
20
|
-
const resolve_1 = __importDefault(require("resolve"));
|
|
1
|
+
import spawn from "cross-spawn";
|
|
2
|
+
import * as assert from "assert";
|
|
3
|
+
import * as path from "path";
|
|
4
|
+
import { MockRegistry } from "./MockRegistry.js";
|
|
21
5
|
/**
|
|
22
6
|
* Hoping to re-use this functionality for all black-box style connector
|
|
23
7
|
* testing.
|
|
24
8
|
*/
|
|
25
|
-
function runConnectorTest(TEST_CASES, Catalog, options = {}) {
|
|
9
|
+
export function runConnectorTest(TEST_CASES, Catalog, options = {}) {
|
|
26
10
|
describe("connector", function () {
|
|
27
11
|
this.timeout(30000);
|
|
28
12
|
const registryPort = 5000 + Math.round(5000 * Math.random());
|
|
29
13
|
const catalogPort = registryPort + 1;
|
|
30
14
|
function run() {
|
|
31
15
|
return new Promise((resolve, reject) => {
|
|
32
|
-
const tsconfigPath =
|
|
33
|
-
const
|
|
34
|
-
basedir: process.cwd()
|
|
35
|
-
})), "./bin.js");
|
|
16
|
+
const tsconfigPath = path.resolve("tsconfig.json");
|
|
17
|
+
const nodeExec = "node";
|
|
36
18
|
const command = [
|
|
37
|
-
"
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
}),
|
|
41
|
-
"./src",
|
|
19
|
+
"--import",
|
|
20
|
+
"tsx/esm",
|
|
21
|
+
"./src/index.ts",
|
|
42
22
|
"--id=connector",
|
|
43
23
|
"--name=Connector",
|
|
44
24
|
`--sourceUrl=http://localhost:${catalogPort}`,
|
|
@@ -47,10 +27,13 @@ function runConnectorTest(TEST_CASES, Catalog, options = {}) {
|
|
|
47
27
|
"--userId=user",
|
|
48
28
|
"--tenantId=1"
|
|
49
29
|
];
|
|
50
|
-
const proc =
|
|
30
|
+
const proc = spawn(nodeExec, command, {
|
|
51
31
|
stdio: "inherit",
|
|
52
|
-
cwd:
|
|
53
|
-
env:
|
|
32
|
+
cwd: path.dirname(tsconfigPath),
|
|
33
|
+
env: {
|
|
34
|
+
...(process.env ? process.env : {}),
|
|
35
|
+
TS_NODE_PROJECT: tsconfigPath
|
|
36
|
+
}
|
|
54
37
|
});
|
|
55
38
|
proc.on("error", (err) => {
|
|
56
39
|
console.log("Failed to start subprocess.", err);
|
|
@@ -68,39 +51,34 @@ function runConnectorTest(TEST_CASES, Catalog, options = {}) {
|
|
|
68
51
|
}
|
|
69
52
|
let servers = [];
|
|
70
53
|
let registry;
|
|
71
|
-
beforeEach(function () {
|
|
72
|
-
|
|
73
|
-
servers.push((registry = yield new MockRegistry_1.MockRegistry().run(registryPort)));
|
|
74
|
-
});
|
|
54
|
+
beforeEach(async function () {
|
|
55
|
+
servers.push((registry = await new MockRegistry().run(registryPort)));
|
|
75
56
|
});
|
|
76
57
|
afterEach(function () {
|
|
77
58
|
servers.forEach((server) => server.server.close());
|
|
78
59
|
});
|
|
79
60
|
TEST_CASES.forEach(function (testCase, index) {
|
|
80
|
-
it(`should run ${index}`, function () {
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
record.aspects.source.url = record.aspects.source.url.replace(`http://localhost:${catalogPort}`, "SOURCE");
|
|
92
|
-
}
|
|
93
|
-
});
|
|
94
|
-
if (options.cleanRegistry) {
|
|
95
|
-
options.cleanRegistry(registry);
|
|
61
|
+
it(`should run ${index}`, async function () {
|
|
62
|
+
const catalog = new Catalog(testCase.input);
|
|
63
|
+
await catalog.run(catalogPort).then((catalog) => {
|
|
64
|
+
servers.push(catalog);
|
|
65
|
+
return run().then(() => {
|
|
66
|
+
Object.values(registry.records).forEach((record) => {
|
|
67
|
+
record.sourceTag = "stag";
|
|
68
|
+
if (record.aspects &&
|
|
69
|
+
record.aspects.source &&
|
|
70
|
+
record.aspects.source.url) {
|
|
71
|
+
record.aspects.source.url = record.aspects.source.url.replace(`http://localhost:${catalogPort}`, "SOURCE");
|
|
96
72
|
}
|
|
97
|
-
assert_1.default.deepStrictEqual(registry.records, testCase.output);
|
|
98
73
|
});
|
|
74
|
+
if (options.cleanRegistry) {
|
|
75
|
+
options.cleanRegistry(registry);
|
|
76
|
+
}
|
|
77
|
+
assert.deepStrictEqual(registry.records, testCase.output);
|
|
99
78
|
});
|
|
100
79
|
});
|
|
101
80
|
});
|
|
102
81
|
});
|
|
103
82
|
});
|
|
104
83
|
}
|
|
105
|
-
exports.runConnectorTest = runConnectorTest;
|
|
106
84
|
//# sourceMappingURL=runConnectorTest.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runConnectorTest.js","sourceRoot":"","sources":["../../../src/test/connectors/runConnectorTest.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"runConnectorTest.js","sourceRoot":"","sources":["../../../src/test/connectors/runConnectorTest.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import AuthDecisionQueryClient, { AuthDecisionReqConfig } from "../opa/AuthDecisionQueryClient";
|
|
2
|
-
import AuthDecision from "../opa/AuthDecision";
|
|
3
|
-
|
|
4
|
-
export
|
|
1
|
+
import AuthDecisionQueryClient, { AuthDecisionReqConfig } from "../opa/AuthDecisionQueryClient.js";
|
|
2
|
+
import AuthDecision from "../opa/AuthDecision.js";
|
|
3
|
+
type AuthDecisionRequestHandler = (config: AuthDecisionReqConfig, jwtToken?: string) => Promise<AuthDecision>;
|
|
4
|
+
export type MockAuthDecisionClientConfig = AuthDecision | AuthDecisionRequestHandler;
|
|
5
5
|
declare function createMockAuthDecisionQueryClient(authDecisionOrHandler: MockAuthDecisionClientConfig): AuthDecisionQueryClient;
|
|
6
6
|
export default createMockAuthDecisionQueryClient;
|
|
@@ -1,12 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const AuthDecisionQueryClient_1 = __importDefault(require("../opa/AuthDecisionQueryClient"));
|
|
7
|
-
const sinon_1 = __importDefault(require("sinon"));
|
|
1
|
+
import AuthDecisionQueryClient from "../opa/AuthDecisionQueryClient.js";
|
|
2
|
+
import sinon from "sinon";
|
|
8
3
|
function createMockAuthDecisionQueryClient(authDecisionOrHandler) {
|
|
9
|
-
const authClient =
|
|
4
|
+
const authClient = sinon.createStubInstance(AuthDecisionQueryClient);
|
|
10
5
|
if (typeof authDecisionOrHandler === "function") {
|
|
11
6
|
authClient.getAuthDecision.callsFake(authDecisionOrHandler);
|
|
12
7
|
}
|
|
@@ -15,5 +10,5 @@ function createMockAuthDecisionQueryClient(authDecisionOrHandler) {
|
|
|
15
10
|
}
|
|
16
11
|
return authClient;
|
|
17
12
|
}
|
|
18
|
-
|
|
13
|
+
export default createMockAuthDecisionQueryClient;
|
|
19
14
|
//# sourceMappingURL=createMockAuthDecisionQueryClient.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createMockAuthDecisionQueryClient.js","sourceRoot":"","sources":["../../src/test/createMockAuthDecisionQueryClient.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"createMockAuthDecisionQueryClient.js","sourceRoot":"","sources":["../../src/test/createMockAuthDecisionQueryClient.ts"],"names":[],"mappings":"AAAA,OAAO,uBAEN,MAAM,mCAAmC,CAAC;AAE3C,OAAO,KAAK,MAAM,OAAO,CAAC;AAW1B,SAAS,iCAAiC,CACtC,qBAAmD;IAEnD,MAAM,UAAU,GAAG,KAAK,CAAC,kBAAkB,CAAC,uBAAuB,CAAC,CAAC;IACrE,IAAI,OAAO,qBAAqB,KAAK,UAAU,EAAE;QAC7C,UAAU,CAAC,eAAe,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC;KAC/D;SAAM;QACH,UAAU,CAAC,eAAe,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;KAC7D;IACD,OAAO,UAAU,CAAC;AACtB,CAAC;AAED,eAAe,iCAAiC,CAAC"}
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
1
|
function getTestDBConfig() {
|
|
4
2
|
const { POSTGRES_HOST: host, POSTGRES_DB: database, POSTGRES_USER: user, POSTGRES_PASSWORD: password } = process.env;
|
|
5
3
|
return {
|
|
@@ -9,5 +7,5 @@ function getTestDBConfig() {
|
|
|
9
7
|
password: password ? password : "password"
|
|
10
8
|
};
|
|
11
9
|
}
|
|
12
|
-
|
|
10
|
+
export default getTestDBConfig;
|
|
13
11
|
//# sourceMappingURL=getTestDBConfig.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getTestDBConfig.js","sourceRoot":"","sources":["../../../src/test/db/getTestDBConfig.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"getTestDBConfig.js","sourceRoot":"","sources":["../../../src/test/db/getTestDBConfig.ts"],"names":[],"mappings":"AAAA,SAAS,eAAe;IACpB,MAAM,EACF,aAAa,EAAE,IAAI,EACnB,WAAW,EAAE,QAAQ,EACrB,aAAa,EAAE,IAAI,EACnB,iBAAiB,EAAE,QAAQ,EAC9B,GAAG,OAAO,CAAC,GAAG,CAAC;IAEhB,OAAO;QACH,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW;QAC/B,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU;QAC1C,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU;QAC9B,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU;KAC7C,CAAC;AACN,CAAC;AAED,eAAe,eAAe,CAAC"}
|
|
@@ -1,23 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
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
|
-
exports.deleteAllTables = void 0;
|
|
16
|
-
const fs_extra_1 = __importDefault(require("fs-extra"));
|
|
17
|
-
const recursive_readdir_1 = __importDefault(require("recursive-readdir"));
|
|
18
|
-
const getTestDBConfig_1 = __importDefault(require("./getTestDBConfig"));
|
|
19
|
-
const path_1 = __importDefault(require("path"));
|
|
20
|
-
const fs_1 = __importDefault(require("fs"));
|
|
1
|
+
import fse from "fs-extra";
|
|
2
|
+
import recursive from "recursive-readdir";
|
|
3
|
+
import getTestDBConfig from "./getTestDBConfig.js";
|
|
4
|
+
import * as path from "path";
|
|
5
|
+
import * as fs from "fs";
|
|
21
6
|
function getVersionNumber(fileName) {
|
|
22
7
|
const matches = fileName.match(/^V(\d+(_\d+)*)/i);
|
|
23
8
|
if (!matches || matches.length < 2)
|
|
@@ -29,54 +14,48 @@ function getVersionNumber(fileName) {
|
|
|
29
14
|
return verNum;
|
|
30
15
|
}
|
|
31
16
|
function replaceEnvVar(sql) {
|
|
32
|
-
const config =
|
|
17
|
+
const config = getTestDBConfig();
|
|
33
18
|
return sql
|
|
34
19
|
.replace(/\$\{clientUserName\}/g, config.user)
|
|
35
20
|
.replace(/\$\{clientPassword\}/g, config.password);
|
|
36
21
|
}
|
|
37
|
-
function deleteAllTables(pool) {
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
.join(";\n"));
|
|
45
|
-
});
|
|
22
|
+
export async function deleteAllTables(pool) {
|
|
23
|
+
const result = await pool.query("SELECT tablename FROM pg_catalog.pg_tables WHERE schemaname = 'public'");
|
|
24
|
+
if (!result || !result.rows || !result.rows.length)
|
|
25
|
+
return;
|
|
26
|
+
await pool.query(result.rows
|
|
27
|
+
.map((r) => `DROP TABLE "${r["tablename"]}" CASCADE`)
|
|
28
|
+
.join(";\n"));
|
|
46
29
|
}
|
|
47
|
-
exports.deleteAllTables = deleteAllTables;
|
|
48
30
|
/**
|
|
49
31
|
* rebuilt a clean (i.e. in initial state) auth db in test database
|
|
50
32
|
*
|
|
51
33
|
* @param pool
|
|
52
34
|
* @param deleteAllTable
|
|
53
35
|
*/
|
|
54
|
-
function runMigrationSql(pool, sqlDir, deleteAllTable = false) {
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
}
|
|
79
|
-
});
|
|
36
|
+
export default async function runMigrationSql(pool, sqlDir, deleteAllTable = false) {
|
|
37
|
+
if (!fs.existsSync(sqlDir)) {
|
|
38
|
+
throw new Error("Path `sqlDir` doesn't exist!");
|
|
39
|
+
}
|
|
40
|
+
if (!fs.lstatSync(sqlDir).isDirectory()) {
|
|
41
|
+
throw new Error("`sqlDir` is not a path to a directory");
|
|
42
|
+
}
|
|
43
|
+
const files = await recursive(sqlDir, ["*,sql"]);
|
|
44
|
+
const fileObjects = files
|
|
45
|
+
.map((f) => ({
|
|
46
|
+
path: f,
|
|
47
|
+
version: getVersionNumber(path.basename(f))
|
|
48
|
+
}))
|
|
49
|
+
.sort((a, b) => a.version - b.version);
|
|
50
|
+
if (!fileObjects.length)
|
|
51
|
+
throw new Error("Can't find any DB migration SQL files.");
|
|
52
|
+
if (deleteAllTable) {
|
|
53
|
+
await deleteAllTables(pool);
|
|
54
|
+
}
|
|
55
|
+
for (let i = 0; i < fileObjects.length; i++) {
|
|
56
|
+
const file = fileObjects[i];
|
|
57
|
+
const fileContent = replaceEnvVar(await fse.readFile(file.path, { encoding: "utf-8" }));
|
|
58
|
+
await pool.query(fileContent);
|
|
59
|
+
}
|
|
80
60
|
}
|
|
81
|
-
exports.default = runMigrationSql;
|
|
82
61
|
//# sourceMappingURL=runMigrationSql.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runMigrationSql.js","sourceRoot":"","sources":["../../../src/test/db/runMigrationSql.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"runMigrationSql.js","sourceRoot":"","sources":["../../../src/test/db/runMigrationSql.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,18 +1,31 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
1
|
+
import { installStatusRouter, createServiceProbe } from "../../express/status.js";
|
|
2
|
+
import request from "supertest";
|
|
3
|
+
import express from "express";
|
|
4
|
+
import assert from "assert";
|
|
5
|
+
import delay from "../../delay.js";
|
|
6
|
+
describe("overall probe process", function () {
|
|
7
|
+
this.timeout(30000);
|
|
8
|
+
it("should be ready after required service online", async function () {
|
|
9
|
+
const app = express();
|
|
10
|
+
installStatusRouter(app, {
|
|
11
|
+
key: Math.random().toString(),
|
|
12
|
+
forceRun: true,
|
|
13
|
+
probes: {
|
|
14
|
+
a: async () => {
|
|
15
|
+
await delay(1000);
|
|
16
|
+
return {
|
|
17
|
+
ready: true
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
},
|
|
21
|
+
probeUpdateMs: 200
|
|
22
|
+
});
|
|
23
|
+
const agent = request.agent(app);
|
|
24
|
+
await agent.get("/status/ready").expect(500);
|
|
25
|
+
await delay(2000);
|
|
26
|
+
await agent.get("/status/ready").expect(200);
|
|
9
27
|
});
|
|
10
|
-
};
|
|
11
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
const status_1 = require("../../express/status");
|
|
13
|
-
const request = require("supertest");
|
|
14
|
-
const express = require("express");
|
|
15
|
-
const assert = require("assert");
|
|
28
|
+
});
|
|
16
29
|
setup("status - default", undefined, (agent) => {
|
|
17
30
|
it("should always be live", function (done) {
|
|
18
31
|
agent.get("/status/live").expect(200, "OK").end(done);
|
|
@@ -23,73 +36,75 @@ setup("status - default", undefined, (agent) => {
|
|
|
23
36
|
});
|
|
24
37
|
setup("status - not ready to ready", {
|
|
25
38
|
probes: {
|
|
26
|
-
a: () =>
|
|
39
|
+
a: async () => {
|
|
27
40
|
console.log("here");
|
|
28
|
-
|
|
41
|
+
await delay(500);
|
|
29
42
|
console.log("after");
|
|
30
43
|
return {
|
|
31
44
|
ready: true
|
|
32
45
|
};
|
|
33
|
-
}
|
|
46
|
+
}
|
|
34
47
|
},
|
|
35
|
-
probeUpdateMs:
|
|
48
|
+
probeUpdateMs: 200
|
|
36
49
|
}, (agent) => {
|
|
37
50
|
it("should be ready after a while", function (done) {
|
|
38
51
|
agent
|
|
39
52
|
.get("/status/ready")
|
|
40
53
|
.expect(500)
|
|
41
|
-
.end(() =>
|
|
42
|
-
|
|
54
|
+
.end(async () => {
|
|
55
|
+
await delay(1000);
|
|
43
56
|
agent.get("/status/ready").expect(200).end(done);
|
|
44
|
-
})
|
|
57
|
+
});
|
|
45
58
|
});
|
|
46
59
|
});
|
|
47
60
|
setup("status - not ready", {
|
|
48
61
|
probes: {
|
|
49
|
-
a: () =>
|
|
62
|
+
a: async () => {
|
|
50
63
|
return {
|
|
51
64
|
ready: true
|
|
52
65
|
};
|
|
53
|
-
}
|
|
66
|
+
}
|
|
54
67
|
},
|
|
55
68
|
probeUpdateMs: 10
|
|
56
69
|
}, (agent) => {
|
|
57
70
|
it("should be ready with probes", function (done) {
|
|
58
|
-
|
|
71
|
+
delay(100).then(function () {
|
|
59
72
|
agent.get("/status/ready").expect(200).end(done);
|
|
60
73
|
});
|
|
61
74
|
});
|
|
62
75
|
it("should be ready with probes", function (done) {
|
|
63
|
-
|
|
76
|
+
delay(100).then(function () {
|
|
64
77
|
agent.get("/status/readySync").expect(200).end(done);
|
|
65
78
|
});
|
|
66
79
|
});
|
|
67
80
|
});
|
|
68
81
|
setup("status - error", {
|
|
69
82
|
probes: {
|
|
70
|
-
a: () =>
|
|
83
|
+
a: async () => {
|
|
71
84
|
throw "ERROR";
|
|
72
|
-
}
|
|
85
|
+
}
|
|
73
86
|
},
|
|
74
87
|
probeUpdateMs: 10
|
|
75
88
|
}, (agent) => {
|
|
76
89
|
it("should error", function (done) {
|
|
77
|
-
|
|
90
|
+
delay(100).then(function () {
|
|
78
91
|
agent.get("/status/ready").expect(500).end(done);
|
|
79
92
|
});
|
|
80
93
|
});
|
|
81
94
|
});
|
|
82
|
-
setup("status - error", {
|
|
95
|
+
setup("status - no error consider as ready", {
|
|
83
96
|
probes: {
|
|
84
|
-
a: () =>
|
|
97
|
+
a: async () => {
|
|
98
|
+
// as long as no error, consider as ready
|
|
99
|
+
// event if not return a status data object. e.g. {ready: true}
|
|
85
100
|
return null;
|
|
86
|
-
}
|
|
101
|
+
}
|
|
87
102
|
},
|
|
88
103
|
probeUpdateMs: 60
|
|
89
104
|
}, (agent) => {
|
|
90
|
-
it("should
|
|
91
|
-
|
|
92
|
-
agent.get("/status/ready").expect(
|
|
105
|
+
it("should be ready", function (done) {
|
|
106
|
+
delay(100).then(function () {
|
|
107
|
+
agent.get("/status/ready").expect(200).end(done);
|
|
93
108
|
});
|
|
94
109
|
});
|
|
95
110
|
});
|
|
@@ -104,55 +119,49 @@ describe("request", function () {
|
|
|
104
119
|
afterEach(function () {
|
|
105
120
|
server.close();
|
|
106
121
|
});
|
|
107
|
-
it("should succeed", function () {
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
assert.deepEqual(return_.ready, true);
|
|
115
|
-
});
|
|
122
|
+
it("should succeed", async function () {
|
|
123
|
+
installStatusRouter(app, {});
|
|
124
|
+
let return_;
|
|
125
|
+
return_ = await createServiceProbe(`http://127.0.0.1:${port}`)();
|
|
126
|
+
assert.deepEqual(return_.ready, true);
|
|
127
|
+
return_ = await createServiceProbe(`http://127.0.0.1:${port}`, "/status/ready")();
|
|
128
|
+
assert.deepEqual(return_.ready, true);
|
|
116
129
|
});
|
|
117
|
-
it("should fail", function () {
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
res.status(500).json({ ready: false });
|
|
121
|
-
});
|
|
122
|
-
try {
|
|
123
|
-
yield status_1.createServiceProbe(`http://127.0.0.1:${port}`)();
|
|
124
|
-
throw "ERROR";
|
|
125
|
-
}
|
|
126
|
-
catch (return_) {
|
|
127
|
-
assert.deepEqual(return_, {
|
|
128
|
-
ready: false,
|
|
129
|
-
statusCode: 500
|
|
130
|
-
});
|
|
131
|
-
}
|
|
130
|
+
it("should fail", async function () {
|
|
131
|
+
app.use("/status/ready", function (req, res) {
|
|
132
|
+
res.status(500).json({ ready: false });
|
|
132
133
|
});
|
|
134
|
+
try {
|
|
135
|
+
await createServiceProbe(`http://127.0.0.1:${port}`)();
|
|
136
|
+
throw "ERROR";
|
|
137
|
+
}
|
|
138
|
+
catch (return_) {
|
|
139
|
+
assert.deepEqual(return_, {
|
|
140
|
+
ready: false,
|
|
141
|
+
statusCode: 500
|
|
142
|
+
});
|
|
143
|
+
}
|
|
133
144
|
});
|
|
134
|
-
it("should fail", function () {
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
}
|
|
143
|
-
});
|
|
145
|
+
it("should fail", async function () {
|
|
146
|
+
try {
|
|
147
|
+
await createServiceProbe(`http://127.0.0.1:${port + 6}`)();
|
|
148
|
+
throw "ERROR";
|
|
149
|
+
}
|
|
150
|
+
catch (return_) {
|
|
151
|
+
assert.notDeepEqual(return_, "ERROR");
|
|
152
|
+
}
|
|
144
153
|
});
|
|
145
154
|
});
|
|
146
|
-
function sleep(time) {
|
|
147
|
-
return new Promise((resolve) => setTimeout(resolve, time));
|
|
148
|
-
}
|
|
149
155
|
function setup(text, options, callback) {
|
|
150
156
|
describe(text, function () {
|
|
157
|
+
this.timeout(30000);
|
|
151
158
|
if (options) {
|
|
152
159
|
options.forceRun = true;
|
|
160
|
+
// --- manually set key to avoid status probe overwritten by other tests
|
|
161
|
+
options.key = Math.random().toString();
|
|
153
162
|
}
|
|
154
163
|
const app = express();
|
|
155
|
-
|
|
164
|
+
installStatusRouter(app, options);
|
|
156
165
|
const agent = request.agent(app);
|
|
157
166
|
callback(agent, options);
|
|
158
167
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status.spec.js","sourceRoot":"","sources":["../../../src/test/express/status.spec.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"status.spec.js","sourceRoot":"","sources":["../../../src/test/express/status.spec.ts"],"names":[],"mappings":"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"}
|
package/dist/test/fakeArgv.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
export default function fakeArgv(options) {
|
|
2
|
+
return {
|
|
3
|
+
...options,
|
|
4
|
+
$0: "",
|
|
5
|
+
_: []
|
|
6
|
+
};
|
|
5
7
|
}
|
|
6
|
-
exports.default = fakeArgv;
|
|
7
8
|
//# sourceMappingURL=fakeArgv.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fakeArgv.js","sourceRoot":"","sources":["../../src/test/fakeArgv.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"fakeArgv.js","sourceRoot":"","sources":["../../src/test/fakeArgv.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,OAAY;IACzC,OAAO;QACH,GAAG,OAAO;QACV,EAAE,EAAE,EAAE;QACN,CAAC,EAAE,EAAE;KACR,CAAC;AACN,CAAC"}
|