@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,36 +1,32 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
const
|
|
7
|
-
const
|
|
8
|
-
const
|
|
9
|
-
const
|
|
10
|
-
const
|
|
11
|
-
const
|
|
12
|
-
const
|
|
13
|
-
const
|
|
14
|
-
const
|
|
15
|
-
const
|
|
16
|
-
const
|
|
17
|
-
const datasetPermissionWithOrgUnitConstraint_json_1 = __importDefault(require("./sampleOpaResponses/datasetPermissionWithOrgUnitConstraint.json"));
|
|
18
|
-
const singleTermAspectRef_json_1 = __importDefault(require("./sampleOpaResponses/singleTermAspectRef.json"));
|
|
19
|
-
const extraLargeResponse_json_1 = __importDefault(require("./sampleOpaResponses/extraLargeResponse.json"));
|
|
20
|
-
require("mocha");
|
|
1
|
+
import "mocha";
|
|
2
|
+
import { require } from "@magda/esm-utils";
|
|
3
|
+
import { expect } from "chai";
|
|
4
|
+
import OpaCompileResponseParser from "../OpaCompileResponseParser.js";
|
|
5
|
+
const testData = require("./sampleOpaResponses/content.json");
|
|
6
|
+
const testDataSimple = require("./sampleOpaResponses/simple.json");
|
|
7
|
+
const testDataUnconditionalTrue = require("./sampleOpaResponses/unconditionalTrue.json");
|
|
8
|
+
const testDataUnconditionalTrueWithDefaultRule = require("./sampleOpaResponses/unconditionalTrueWithDefaultRule.json");
|
|
9
|
+
const testDataEsriPolicyWithDefaultRule = require("./sampleOpaResponses/withDefaultRule.json");
|
|
10
|
+
const testDataUnconditionalNotMacthed = require("./sampleOpaResponses/unconditionalNotMacthed.json");
|
|
11
|
+
const testDataUnconditionalNotMacthedWithExtraRefs = require("./sampleOpaResponses/unconditionalNotMacthedWithExtraRefs.json");
|
|
12
|
+
const testDataUnconditionalFalseSimple = require("./sampleOpaResponses/unconditionalFalseSimple.json");
|
|
13
|
+
const testDataUnconditionalTrueSimple = require("./sampleOpaResponses/unconditionalTrueSimple.json");
|
|
14
|
+
const testDataDatasetPermissionWithOrgUnitConstraint = require("./sampleOpaResponses/datasetPermissionWithOrgUnitConstraint.json");
|
|
15
|
+
const testDataSingleTermAspectRef = require("./sampleOpaResponses/singleTermAspectRef.json");
|
|
16
|
+
const testExtraLargeResponse = require("./sampleOpaResponses/extraLargeResponse.json");
|
|
21
17
|
describe("Test extra large opa response", () => {
|
|
22
18
|
it("should process extra large opa response in timely manager", function () {
|
|
23
19
|
// this test case should be completed in less than 3000ms
|
|
24
20
|
// should be around 600ms locally but we set for 3000ms in case it get slower in CI (we use highmem instance)
|
|
25
21
|
this.timeout(3000);
|
|
26
22
|
console.time("process-extra-large-opa-response-time");
|
|
27
|
-
const parser = new
|
|
28
|
-
const data = parser.parse(JSON.stringify(
|
|
23
|
+
const parser = new OpaCompileResponseParser();
|
|
24
|
+
const data = parser.parse(JSON.stringify(testExtraLargeResponse));
|
|
29
25
|
console.log("no.of original rules vs filtered rules: ", parser.originalRules.length, parser.rules.length);
|
|
30
26
|
parser.evaluate();
|
|
31
27
|
//console.log(parser.evaluateAsHumanReadableString());
|
|
32
|
-
|
|
33
|
-
|
|
28
|
+
expect(parser.hasWarns).to.be.equal(false);
|
|
29
|
+
expect(data).to.be.an("array");
|
|
34
30
|
console.timeEnd("process-extra-large-opa-response-time");
|
|
35
31
|
});
|
|
36
32
|
});
|
|
@@ -45,296 +41,296 @@ describe("Test extra large opa response", () => {
|
|
|
45
41
|
*/
|
|
46
42
|
describe("Test OpaCompileResultParser with complex response", function () {
|
|
47
43
|
it("Parse sample response with no errors", function () {
|
|
48
|
-
const parser = new
|
|
49
|
-
const data = parser.parse(JSON.stringify(
|
|
50
|
-
|
|
51
|
-
|
|
44
|
+
const parser = new OpaCompileResponseParser();
|
|
45
|
+
const data = parser.parse(JSON.stringify(testData));
|
|
46
|
+
expect(parser.hasWarns).to.be.equal(false);
|
|
47
|
+
expect(data).to.be.an("array");
|
|
52
48
|
});
|
|
53
49
|
it("Should evalute rule `allowRead` from parse result correctly", function () {
|
|
54
|
-
const parser = new
|
|
55
|
-
parser.parse(JSON.stringify(
|
|
50
|
+
const parser = new OpaCompileResponseParser();
|
|
51
|
+
parser.parse(JSON.stringify(testData));
|
|
56
52
|
const result = parser.evaluate();
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
53
|
+
expect(parser.hasWarns).to.be.equal(false);
|
|
54
|
+
expect(result.isCompleteEvaluated).to.be.equal(false);
|
|
55
|
+
expect(result.residualRules).to.be.an("array");
|
|
56
|
+
expect(result.residualRules.length).to.be.equal(1);
|
|
57
|
+
expect(result.residualRules[0].isCompleteEvaluated).to.be.equal(false);
|
|
58
|
+
expect(result.residualRules[0].expressions.length).to.be.equal(1);
|
|
59
|
+
expect(result.residualRules[0].expressions[0].terms.length).to.be.equal(3);
|
|
60
|
+
expect(result.residualRules[0].expressions[0].toHumanReadableString()).to.be.equal('input.object.content.id = "header/navigation/datasets"');
|
|
65
61
|
});
|
|
66
62
|
it("Should generate correct human readable string", function () {
|
|
67
|
-
const parser = new
|
|
68
|
-
parser.parse(JSON.stringify(
|
|
63
|
+
const parser = new OpaCompileResponseParser();
|
|
64
|
+
parser.parse(JSON.stringify(testData));
|
|
69
65
|
const result = parser.evaluateAsHumanReadableString();
|
|
70
|
-
|
|
71
|
-
|
|
66
|
+
expect(parser.hasWarns).to.be.equal(false);
|
|
67
|
+
expect(result).to.be.equal('input.object.content.id = "header/navigation/datasets"');
|
|
72
68
|
});
|
|
73
69
|
});
|
|
74
70
|
describe("Test OpaCompileResultParser with simple response", function () {
|
|
75
71
|
it("Parse sample response with no errors", function () {
|
|
76
|
-
const parser = new
|
|
77
|
-
const data = parser.parse(JSON.stringify(
|
|
78
|
-
|
|
79
|
-
|
|
72
|
+
const parser = new OpaCompileResponseParser();
|
|
73
|
+
const data = parser.parse(JSON.stringify(testDataSimple));
|
|
74
|
+
expect(parser.hasWarns).to.be.equal(false);
|
|
75
|
+
expect(data).to.be.an("array");
|
|
80
76
|
});
|
|
81
77
|
it("Should evalute rule `allowRead` from parse result correctly", function () {
|
|
82
|
-
const parser = new
|
|
83
|
-
parser.parse(JSON.stringify(
|
|
78
|
+
const parser = new OpaCompileResponseParser();
|
|
79
|
+
parser.parse(JSON.stringify(testDataSimple));
|
|
84
80
|
const result = parser.evaluate();
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
81
|
+
expect(parser.hasWarns).to.be.equal(false);
|
|
82
|
+
expect(result.isCompleteEvaluated).to.be.equal(false);
|
|
83
|
+
expect(result.residualRules).to.be.an("array");
|
|
84
|
+
expect(result.residualRules.length).to.be.equal(1);
|
|
85
|
+
expect(result.residualRules[0].isCompleteEvaluated).to.be.equal(false);
|
|
86
|
+
expect(result.residualRules[0].expressions.length).to.be.equal(1);
|
|
87
|
+
expect(result.residualRules[0].expressions[0].terms.length).to.be.equal(3);
|
|
88
|
+
expect(result.residualRules[0].expressions[0].toHumanReadableString()).to.be.equal('input.object.content.id = "header/navigation/datasets"');
|
|
93
89
|
});
|
|
94
90
|
it("Should generate correct human readable string", function () {
|
|
95
|
-
const parser = new
|
|
96
|
-
parser.parse(JSON.stringify(
|
|
91
|
+
const parser = new OpaCompileResponseParser();
|
|
92
|
+
parser.parse(JSON.stringify(testDataSimple));
|
|
97
93
|
const result = parser.evaluateAsHumanReadableString();
|
|
98
|
-
|
|
99
|
-
|
|
94
|
+
expect(parser.hasWarns).to.be.equal(false);
|
|
95
|
+
expect(result).to.be.equal('input.object.content.id = "header/navigation/datasets"');
|
|
100
96
|
});
|
|
101
97
|
});
|
|
102
98
|
describe("Test OpaCompileResultParser with unconditional true response", function () {
|
|
103
99
|
it("Parse sample response with no errors", function () {
|
|
104
|
-
const parser = new
|
|
105
|
-
const data = parser.parse(JSON.stringify(
|
|
106
|
-
|
|
107
|
-
|
|
100
|
+
const parser = new OpaCompileResponseParser();
|
|
101
|
+
const data = parser.parse(JSON.stringify(testDataUnconditionalTrue));
|
|
102
|
+
expect(parser.hasWarns).to.be.equal(false);
|
|
103
|
+
expect(data).to.be.an("array");
|
|
108
104
|
});
|
|
109
105
|
it("Should evalute query from parse result correctly", function () {
|
|
110
|
-
const parser = new
|
|
111
|
-
parser.parse(JSON.stringify(
|
|
106
|
+
const parser = new OpaCompileResponseParser();
|
|
107
|
+
parser.parse(JSON.stringify(testDataUnconditionalTrue));
|
|
112
108
|
const result = parser.evaluate();
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
109
|
+
expect(parser.hasWarns).to.be.equal(false);
|
|
110
|
+
expect(result.isCompleteEvaluated).to.be.equal(true);
|
|
111
|
+
expect(result.value).to.be.equal(true);
|
|
116
112
|
});
|
|
117
113
|
it("Should generate correct human readable string", function () {
|
|
118
|
-
const parser = new
|
|
119
|
-
parser.parse(JSON.stringify(
|
|
114
|
+
const parser = new OpaCompileResponseParser();
|
|
115
|
+
parser.parse(JSON.stringify(testDataUnconditionalTrue));
|
|
120
116
|
const result = parser.evaluateAsHumanReadableString();
|
|
121
|
-
|
|
122
|
-
|
|
117
|
+
expect(parser.hasWarns).to.be.equal(false);
|
|
118
|
+
expect(result).to.be.equal("true");
|
|
123
119
|
});
|
|
124
120
|
});
|
|
125
121
|
describe("Test OpaCompileResultParser with unconditional true response (policy contains default rules)", function () {
|
|
126
122
|
it("Parse sample response with no errors", function () {
|
|
127
|
-
const parser = new
|
|
128
|
-
const data = parser.parse(JSON.stringify(
|
|
129
|
-
|
|
130
|
-
|
|
123
|
+
const parser = new OpaCompileResponseParser();
|
|
124
|
+
const data = parser.parse(JSON.stringify(testDataUnconditionalTrueWithDefaultRule));
|
|
125
|
+
expect(parser.hasWarns).to.be.equal(false);
|
|
126
|
+
expect(data).to.be.an("array");
|
|
131
127
|
});
|
|
132
128
|
it("Should evalute query from parse result correctly", function () {
|
|
133
|
-
const parser = new
|
|
134
|
-
parser.parse(JSON.stringify(
|
|
129
|
+
const parser = new OpaCompileResponseParser();
|
|
130
|
+
parser.parse(JSON.stringify(testDataUnconditionalTrueWithDefaultRule));
|
|
135
131
|
const result = parser.evaluate();
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
132
|
+
expect(parser.hasWarns).to.be.equal(false);
|
|
133
|
+
expect(result.isCompleteEvaluated).to.be.equal(true);
|
|
134
|
+
expect(result.value).to.be.equal(true);
|
|
139
135
|
});
|
|
140
136
|
it("Should generate correct human readable string", function () {
|
|
141
|
-
const parser = new
|
|
142
|
-
parser.parse(JSON.stringify(
|
|
137
|
+
const parser = new OpaCompileResponseParser();
|
|
138
|
+
parser.parse(JSON.stringify(testDataUnconditionalTrueWithDefaultRule));
|
|
143
139
|
const result = parser.evaluateAsHumanReadableString();
|
|
144
|
-
|
|
145
|
-
|
|
140
|
+
expect(parser.hasWarns).to.be.equal(false);
|
|
141
|
+
expect(result).to.be.equal("true");
|
|
146
142
|
});
|
|
147
143
|
});
|
|
148
144
|
describe("Test OpaCompileResultParser with esri policy that contains default rules", function () {
|
|
149
145
|
it("Parse sample response with no errors", function () {
|
|
150
|
-
const parser = new
|
|
151
|
-
const data = parser.parse(JSON.stringify(
|
|
152
|
-
|
|
153
|
-
|
|
146
|
+
const parser = new OpaCompileResponseParser();
|
|
147
|
+
const data = parser.parse(JSON.stringify(testDataEsriPolicyWithDefaultRule));
|
|
148
|
+
expect(parser.hasWarns).to.be.equal(false);
|
|
149
|
+
expect(data).to.be.an("array");
|
|
154
150
|
});
|
|
155
151
|
it("Should evalute query from parse result correctly", function () {
|
|
156
|
-
const parser = new
|
|
157
|
-
parser.parse(JSON.stringify(
|
|
152
|
+
const parser = new OpaCompileResponseParser();
|
|
153
|
+
parser.parse(JSON.stringify(testDataEsriPolicyWithDefaultRule));
|
|
158
154
|
const result = parser.evaluate();
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
155
|
+
expect(parser.hasWarns).to.be.equal(false);
|
|
156
|
+
expect(result.isCompleteEvaluated).to.be.equal(true);
|
|
157
|
+
expect(result.value).to.be.equal(true);
|
|
162
158
|
});
|
|
163
159
|
it("Should generate correct human readable string", function () {
|
|
164
|
-
const parser = new
|
|
165
|
-
parser.parse(JSON.stringify(
|
|
160
|
+
const parser = new OpaCompileResponseParser();
|
|
161
|
+
parser.parse(JSON.stringify(testDataEsriPolicyWithDefaultRule));
|
|
166
162
|
const result = parser.evaluateAsHumanReadableString();
|
|
167
|
-
|
|
168
|
-
|
|
163
|
+
expect(parser.hasWarns).to.be.equal(false);
|
|
164
|
+
expect(result).to.be.equal("true");
|
|
169
165
|
});
|
|
170
166
|
});
|
|
171
167
|
describe("Test OpaCompileResultParser with unconditional not matched (no rule in query is matched) response", function () {
|
|
172
168
|
it("Parse sample response with no errors", function () {
|
|
173
|
-
const parser = new
|
|
174
|
-
const data = parser.parse(JSON.stringify(
|
|
175
|
-
|
|
176
|
-
|
|
169
|
+
const parser = new OpaCompileResponseParser();
|
|
170
|
+
const data = parser.parse(JSON.stringify(testDataUnconditionalNotMacthed));
|
|
171
|
+
expect(parser.hasWarns).to.be.equal(false);
|
|
172
|
+
expect(data).to.be.an("array");
|
|
177
173
|
});
|
|
178
174
|
it("Should evalute query from parse result correctly", function () {
|
|
179
|
-
const parser = new
|
|
180
|
-
parser.parse(JSON.stringify(
|
|
175
|
+
const parser = new OpaCompileResponseParser();
|
|
176
|
+
parser.parse(JSON.stringify(testDataUnconditionalNotMacthed));
|
|
181
177
|
const result = parser.evaluate();
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
178
|
+
expect(parser.hasWarns).to.be.equal(false);
|
|
179
|
+
expect(result.isCompleteEvaluated).to.be.equal(true);
|
|
180
|
+
expect(result.value).to.be.undefined;
|
|
185
181
|
});
|
|
186
182
|
it("Should generate correct human readable string", function () {
|
|
187
|
-
const parser = new
|
|
188
|
-
parser.parse(JSON.stringify(
|
|
183
|
+
const parser = new OpaCompileResponseParser();
|
|
184
|
+
parser.parse(JSON.stringify(testDataUnconditionalNotMacthed));
|
|
189
185
|
const result = parser.evaluateAsHumanReadableString();
|
|
190
|
-
|
|
191
|
-
|
|
186
|
+
expect(parser.hasWarns).to.be.equal(false);
|
|
187
|
+
expect(result).to.be.equal("undefined");
|
|
192
188
|
});
|
|
193
189
|
});
|
|
194
190
|
describe("Test OpaCompileResultParser with unconditional not matched (no rule in query is matched) with extra refs response", function () {
|
|
195
191
|
it("Parse sample response with no errors", function () {
|
|
196
|
-
const parser = new
|
|
197
|
-
const data = parser.parse(JSON.stringify(
|
|
198
|
-
|
|
199
|
-
|
|
192
|
+
const parser = new OpaCompileResponseParser();
|
|
193
|
+
const data = parser.parse(JSON.stringify(testDataUnconditionalNotMacthedWithExtraRefs));
|
|
194
|
+
expect(parser.hasWarns).to.be.equal(false);
|
|
195
|
+
expect(data).to.be.an("array");
|
|
200
196
|
});
|
|
201
197
|
it("Should evalute query from parse result correctly", function () {
|
|
202
|
-
const parser = new
|
|
203
|
-
parser.parse(JSON.stringify(
|
|
198
|
+
const parser = new OpaCompileResponseParser();
|
|
199
|
+
parser.parse(JSON.stringify(testDataUnconditionalNotMacthedWithExtraRefs));
|
|
204
200
|
const result = parser.evaluate();
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
201
|
+
expect(parser.hasWarns).to.be.equal(false);
|
|
202
|
+
expect(result.isCompleteEvaluated).to.be.equal(true);
|
|
203
|
+
expect(result.value).to.be.undefined;
|
|
208
204
|
});
|
|
209
205
|
it("Should generate correct human readable string", function () {
|
|
210
|
-
const parser = new
|
|
211
|
-
parser.parse(JSON.stringify(
|
|
206
|
+
const parser = new OpaCompileResponseParser();
|
|
207
|
+
parser.parse(JSON.stringify(testDataUnconditionalNotMacthedWithExtraRefs));
|
|
212
208
|
const result = parser.evaluateAsHumanReadableString();
|
|
213
|
-
|
|
214
|
-
|
|
209
|
+
expect(parser.hasWarns).to.be.equal(false);
|
|
210
|
+
expect(result).to.be.equal("undefined");
|
|
215
211
|
});
|
|
216
212
|
});
|
|
217
213
|
describe("Test OpaCompileResultParser with unconditional true (simple response)", function () {
|
|
218
214
|
it("Parse sample response with no errors", function () {
|
|
219
|
-
const parser = new
|
|
220
|
-
const data = parser.parse(JSON.stringify(
|
|
221
|
-
|
|
222
|
-
|
|
215
|
+
const parser = new OpaCompileResponseParser();
|
|
216
|
+
const data = parser.parse(JSON.stringify(testDataUnconditionalTrueSimple));
|
|
217
|
+
expect(parser.hasWarns).to.be.equal(false);
|
|
218
|
+
expect(data).to.be.an("array");
|
|
223
219
|
});
|
|
224
220
|
it("Should evalute query from parse result correctly", function () {
|
|
225
|
-
const parser = new
|
|
226
|
-
parser.parse(JSON.stringify(
|
|
221
|
+
const parser = new OpaCompileResponseParser();
|
|
222
|
+
parser.parse(JSON.stringify(testDataUnconditionalTrueSimple));
|
|
227
223
|
const result = parser.evaluate();
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
224
|
+
expect(parser.hasWarns).to.be.equal(false);
|
|
225
|
+
expect(result.isCompleteEvaluated).to.be.equal(true);
|
|
226
|
+
expect(result.value).to.be.equal(true);
|
|
231
227
|
});
|
|
232
228
|
it("Should generate correct human readable string", function () {
|
|
233
|
-
const parser = new
|
|
234
|
-
parser.parse(JSON.stringify(
|
|
229
|
+
const parser = new OpaCompileResponseParser();
|
|
230
|
+
parser.parse(JSON.stringify(testDataUnconditionalTrueSimple));
|
|
235
231
|
const result = parser.evaluateAsHumanReadableString();
|
|
236
|
-
|
|
237
|
-
|
|
232
|
+
expect(parser.hasWarns).to.be.equal(false);
|
|
233
|
+
expect(result).to.be.equal("true");
|
|
238
234
|
});
|
|
239
235
|
});
|
|
240
236
|
describe("Test OpaCompileResultParser with unconditional false (simple response)", function () {
|
|
241
237
|
it("Parse sample response with no errors", function () {
|
|
242
|
-
const parser = new
|
|
243
|
-
const data = parser.parse(JSON.stringify(
|
|
244
|
-
|
|
245
|
-
|
|
238
|
+
const parser = new OpaCompileResponseParser();
|
|
239
|
+
const data = parser.parse(JSON.stringify(testDataUnconditionalFalseSimple));
|
|
240
|
+
expect(parser.hasWarns).to.be.equal(false);
|
|
241
|
+
expect(data).to.be.an("array");
|
|
246
242
|
});
|
|
247
243
|
it("Should evalute query from parse result correctly", function () {
|
|
248
|
-
const parser = new
|
|
249
|
-
parser.parse(JSON.stringify(
|
|
244
|
+
const parser = new OpaCompileResponseParser();
|
|
245
|
+
parser.parse(JSON.stringify(testDataUnconditionalFalseSimple));
|
|
250
246
|
const result = parser.evaluate();
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
247
|
+
expect(parser.hasWarns).to.be.equal(false);
|
|
248
|
+
expect(result.isCompleteEvaluated).to.be.equal(true);
|
|
249
|
+
expect(result.value).to.be.equal(false);
|
|
254
250
|
});
|
|
255
251
|
it("Should generate correct human readable string", function () {
|
|
256
|
-
const parser = new
|
|
257
|
-
parser.parse(JSON.stringify(
|
|
252
|
+
const parser = new OpaCompileResponseParser();
|
|
253
|
+
parser.parse(JSON.stringify(testDataUnconditionalFalseSimple));
|
|
258
254
|
const result = parser.evaluateAsHumanReadableString();
|
|
259
|
-
|
|
260
|
-
|
|
255
|
+
expect(parser.hasWarns).to.be.equal(false);
|
|
256
|
+
expect(result).to.be.equal("false");
|
|
261
257
|
});
|
|
262
258
|
});
|
|
263
259
|
describe("Test OpaCompileResultParser with datasetPermissionWithOrgUnitConstraint", function () {
|
|
264
260
|
it("Parse sample response with no errors", function () {
|
|
265
|
-
const parser = new
|
|
266
|
-
const data = parser.parse(JSON.stringify(
|
|
267
|
-
|
|
268
|
-
|
|
261
|
+
const parser = new OpaCompileResponseParser();
|
|
262
|
+
const data = parser.parse(JSON.stringify(testDataDatasetPermissionWithOrgUnitConstraint));
|
|
263
|
+
expect(parser.hasWarns).to.be.equal(false);
|
|
264
|
+
expect(data).to.be.an("array");
|
|
269
265
|
});
|
|
270
266
|
it("Should evalute query from parse result correctly", function () {
|
|
271
|
-
const parser = new
|
|
272
|
-
parser.parse(JSON.stringify(
|
|
267
|
+
const parser = new OpaCompileResponseParser();
|
|
268
|
+
parser.parse(JSON.stringify(testDataDatasetPermissionWithOrgUnitConstraint));
|
|
273
269
|
const result = parser.evaluate();
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
270
|
+
expect(parser.hasWarns).to.be.equal(false);
|
|
271
|
+
expect(result.isCompleteEvaluated).to.be.equal(false);
|
|
272
|
+
expect(result.residualRules).to.be.an("array");
|
|
273
|
+
expect(result.residualRules.length).to.be.equal(2);
|
|
274
|
+
expect(result.residualRules[0].isCompleteEvaluated).to.be.equal(false);
|
|
275
|
+
expect(result.residualRules[0].expressions.length).to.be.equal(2);
|
|
276
|
+
expect(result.residualRules[0].expressions[0].terms.length).to.be.equal(3);
|
|
277
|
+
expect(result.residualRules[0].expressions[0].toHumanReadableString()).to.be.equal('input.object.dataset.publishingState = "published"');
|
|
278
|
+
expect(result.residualRules[0].expressions[1].terms.length).to.be.equal(3);
|
|
279
|
+
expect(result.residualRules[0].expressions[1].toHumanReadableString()).to.be.equal('"5447fcb1-74ec-451c-b6ef-007aa736a346" = input.object.dataset.accessControl.orgUnitId');
|
|
284
280
|
});
|
|
285
281
|
it("Should generate correct human readable string", function () {
|
|
286
|
-
const parser = new
|
|
287
|
-
parser.parse(JSON.stringify(
|
|
282
|
+
const parser = new OpaCompileResponseParser();
|
|
283
|
+
parser.parse(JSON.stringify(testDataDatasetPermissionWithOrgUnitConstraint));
|
|
288
284
|
const result = parser.evaluateAsHumanReadableString();
|
|
289
|
-
|
|
290
|
-
|
|
285
|
+
expect(parser.hasWarns).to.be.equal(false);
|
|
286
|
+
expect(result).to.be.equal(`( input.object.dataset.publishingState = "published" AND \n"5447fcb1-74ec-451c-b6ef-007aa736a346" = input.object.dataset.accessControl.orgUnitId )\nOR\n( input.object.dataset.publishingState = "published" AND \n"b749759e-6e6a-44c0-87ab-4590744187cf" = input.object.dataset.accessControl.orgUnitId )`);
|
|
291
287
|
});
|
|
292
288
|
});
|
|
293
289
|
describe("Test OpaCompileResultParser with testDataSingleTermAspectRef", function () {
|
|
294
290
|
it("Parse sample response with no errors", function () {
|
|
295
|
-
const parser = new
|
|
296
|
-
const data = parser.parse(JSON.stringify(
|
|
297
|
-
|
|
298
|
-
|
|
291
|
+
const parser = new OpaCompileResponseParser();
|
|
292
|
+
const data = parser.parse(JSON.stringify(testDataSingleTermAspectRef));
|
|
293
|
+
expect(parser.hasWarns).to.be.equal(false);
|
|
294
|
+
expect(data).to.be.an("array");
|
|
299
295
|
});
|
|
300
296
|
it("Should evalute query from parse result and output concise format correctly", function () {
|
|
301
|
-
const parser = new
|
|
302
|
-
parser.parse(JSON.stringify(
|
|
297
|
+
const parser = new OpaCompileResponseParser();
|
|
298
|
+
parser.parse(JSON.stringify(testDataSingleTermAspectRef));
|
|
303
299
|
const result = parser.evaluate();
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
300
|
+
expect(parser.hasWarns).to.be.equal(false);
|
|
301
|
+
expect(result.isCompleteEvaluated).to.be.equal(false);
|
|
302
|
+
expect(result.residualRules).to.be.an("array");
|
|
303
|
+
expect(result.residualRules.length).to.be.equal(1);
|
|
304
|
+
expect(result.residualRules[0].isCompleteEvaluated).to.be.equal(false);
|
|
309
305
|
const conciseRules = result.residualRules.map((item) => item.toConciseData());
|
|
310
|
-
|
|
306
|
+
expect(conciseRules[0].expressions.length).to.be.equal(2);
|
|
311
307
|
const exp1 = conciseRules[0].expressions[0];
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
308
|
+
expect(exp1.negated).to.be.equal(false);
|
|
309
|
+
expect(exp1.operator).to.be.null;
|
|
310
|
+
expect(exp1.operands.length).to.equal(1);
|
|
311
|
+
expect(exp1.operands[0]).to.deep.equal({
|
|
316
312
|
isRef: true,
|
|
317
313
|
value: "input.object.record.dcat-dataset-strings"
|
|
318
314
|
});
|
|
319
315
|
const exp2 = conciseRules[0].expressions[1];
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
316
|
+
expect(exp2.negated).to.be.equal(false);
|
|
317
|
+
expect(exp2.operator).to.be.equal("=");
|
|
318
|
+
expect(exp2.operands.length).to.equal(2);
|
|
319
|
+
expect(exp2.operands[0]).to.deep.equal({
|
|
324
320
|
isRef: true,
|
|
325
321
|
value: "input.object.record.publishing.state"
|
|
326
322
|
});
|
|
327
|
-
|
|
323
|
+
expect(exp2.operands[1]).to.deep.equal({
|
|
328
324
|
isRef: false,
|
|
329
325
|
value: "published"
|
|
330
326
|
});
|
|
331
327
|
});
|
|
332
328
|
it("Should generate correct human readable string", function () {
|
|
333
|
-
const parser = new
|
|
334
|
-
parser.parse(JSON.stringify(
|
|
329
|
+
const parser = new OpaCompileResponseParser();
|
|
330
|
+
parser.parse(JSON.stringify(testDataSingleTermAspectRef));
|
|
335
331
|
const result = parser.evaluateAsHumanReadableString();
|
|
336
|
-
|
|
337
|
-
|
|
332
|
+
expect(parser.hasWarns).to.be.equal(false);
|
|
333
|
+
expect(result).to.be.equal(`input.object.record.dcat-dataset-strings AND \ninput.object.record.publishing.state = "published"`);
|
|
338
334
|
});
|
|
339
335
|
});
|
|
340
336
|
//# sourceMappingURL=testOpaCompileResponseParser.spec.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testOpaCompileResponseParser.spec.js","sourceRoot":"","sources":["../../src/test/testOpaCompileResponseParser.spec.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"testOpaCompileResponseParser.spec.js","sourceRoot":"","sources":["../../src/test/testOpaCompileResponseParser.spec.ts"],"names":[],"mappings":"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"}
|