@magda/typescript-common 1.1.0-arm64.0 → 1.2.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 +7 -0
- package/dist/AspectBuilder.js +3 -0
- package/dist/AspectBuilder.js.map +1 -0
- package/dist/AspectCreationFailure.d.ts +5 -0
- package/dist/AspectCreationFailure.js +10 -0
- package/dist/AspectCreationFailure.js.map +1 -0
- package/dist/AsyncPage.d.ts +18 -0
- package/dist/AsyncPage.js +140 -0
- package/dist/AsyncPage.js.map +1 -0
- package/dist/ConnectionResult.d.ts +16 -0
- package/dist/ConnectionResult.js +77 -0
- package/dist/ConnectionResult.js.map +1 -0
- package/dist/ConnectorRecordId.d.ts +15 -0
- package/dist/ConnectorRecordId.js +46 -0
- package/dist/ConnectorRecordId.js.map +1 -0
- package/dist/JsonConnector.d.ts +195 -0
- package/dist/JsonConnector.js +427 -0
- package/dist/JsonConnector.js.map +1 -0
- package/dist/JsonTransformer.d.ts +112 -0
- package/dist/JsonTransformer.js +225 -0
- package/dist/JsonTransformer.js.map +1 -0
- package/dist/OpaCompileResponseParser.d.ts +480 -0
- package/dist/OpaCompileResponseParser.js +1134 -0
- package/dist/OpaCompileResponseParser.js.map +1 -0
- package/dist/RecordCreationFailure.d.ts +7 -0
- package/dist/RecordCreationFailure.js +11 -0
- package/dist/RecordCreationFailure.js.map +1 -0
- package/dist/SimpleOpaSQLTranslator.d.ts +14 -0
- package/dist/SimpleOpaSQLTranslator.js +79 -0
- package/dist/SimpleOpaSQLTranslator.js.map +1 -0
- package/dist/addTrailingSlash.d.ts +1 -0
- package/dist/addTrailingSlash.js +15 -0
- package/dist/addTrailingSlash.js.map +1 -0
- package/dist/appendUrlSegments.d.ts +2 -0
- package/dist/appendUrlSegments.js +18 -0
- package/dist/appendUrlSegments.js.map +1 -0
- package/dist/authorization-api/AccessControlError.d.ts +4 -0
- package/dist/authorization-api/AccessControlError.js +13 -0
- package/dist/authorization-api/AccessControlError.js.map +1 -0
- package/dist/authorization-api/ApiClient.d.ts +141 -0
- package/dist/authorization-api/ApiClient.js +335 -0
- package/dist/authorization-api/ApiClient.js.map +1 -0
- package/dist/authorization-api/AuthError.d.ts +4 -0
- package/dist/authorization-api/AuthError.js +13 -0
- package/dist/authorization-api/AuthError.js.map +1 -0
- package/dist/authorization-api/GenericError.d.ts +9 -0
- package/dist/authorization-api/GenericError.js +17 -0
- package/dist/authorization-api/GenericError.js.map +1 -0
- package/dist/authorization-api/authMiddleware.d.ts +7 -0
- package/dist/authorization-api/authMiddleware.js +52 -0
- package/dist/authorization-api/authMiddleware.js.map +1 -0
- package/dist/authorization-api/model.d.ts +99 -0
- package/dist/authorization-api/model.js +3 -0
- package/dist/authorization-api/model.js.map +1 -0
- package/dist/coerceJson.d.ts +2 -0
- package/dist/coerceJson.js +13 -0
- package/dist/coerceJson.js.map +1 -0
- package/dist/createServiceError.d.ts +19 -0
- package/dist/createServiceError.js +45 -0
- package/dist/createServiceError.js.map +1 -0
- package/dist/delay.d.ts +2 -0
- package/dist/delay.js +9 -0
- package/dist/delay.js.map +1 -0
- package/dist/express/status.d.ts +30 -0
- package/dist/express/status.js +180 -0
- package/dist/express/status.js.map +1 -0
- package/dist/formatServiceError.d.ts +1 -0
- package/dist/formatServiceError.js +23 -0
- package/dist/formatServiceError.js.map +1 -0
- package/dist/generated/registry/api.d.ts +596 -0
- package/dist/generated/registry/api.js +2060 -0
- package/dist/generated/registry/api.js.map +1 -0
- package/dist/getAbsoluteUrl.d.ts +12 -0
- package/dist/getAbsoluteUrl.js +35 -0
- package/dist/getAbsoluteUrl.js.map +1 -0
- package/dist/getBasePathFromUrl.d.ts +10 -0
- package/dist/getBasePathFromUrl.js +27 -0
- package/dist/getBasePathFromUrl.js.map +1 -0
- package/dist/markdownToHtml.d.ts +3 -0
- package/dist/markdownToHtml.js +38 -0
- package/dist/markdownToHtml.js.map +1 -0
- package/dist/opa/OpaTypes.d.ts +41 -0
- package/dist/opa/OpaTypes.js +3 -0
- package/dist/opa/OpaTypes.js.map +1 -0
- package/dist/opa/getAuthDecision.d.ts +19 -0
- package/dist/opa/getAuthDecision.js +94 -0
- package/dist/opa/getAuthDecision.js.map +1 -0
- package/dist/opa/queryOpa.d.ts +1 -0
- package/dist/opa/queryOpa.js +41 -0
- package/dist/opa/queryOpa.js.map +1 -0
- package/dist/registry/AuthorizedRegistryClient.d.ts +29 -0
- package/dist/registry/AuthorizedRegistryClient.js +115 -0
- package/dist/registry/AuthorizedRegistryClient.js.map +1 -0
- package/dist/registry/RegistryClient.d.ts +36 -0
- package/dist/registry/RegistryClient.js +59 -0
- package/dist/registry/RegistryClient.js.map +1 -0
- package/dist/registry/TenantConsts.d.ts +31 -0
- package/dist/registry/TenantConsts.js +35 -0
- package/dist/registry/TenantConsts.js.map +1 -0
- package/dist/registry-manual/api.d.ts +9 -0
- package/dist/registry-manual/api.js +10 -0
- package/dist/registry-manual/api.js.map +1 -0
- package/dist/request.d.ts +3 -0
- package/dist/request.js +19 -0
- package/dist/request.js.map +1 -0
- package/dist/retry.d.ts +1 -0
- package/dist/retry.js +21 -0
- package/dist/retry.js.map +1 -0
- package/dist/retryBackoff.d.ts +1 -0
- package/dist/retryBackoff.js +21 -0
- package/dist/retryBackoff.js.map +1 -0
- package/dist/runLater.d.ts +1 -0
- package/dist/runLater.js +16 -0
- package/dist/runLater.js.map +1 -0
- package/dist/session/GetUserId.d.ts +5 -0
- package/dist/session/GetUserId.js +41 -0
- package/dist/session/GetUserId.js.map +1 -0
- package/dist/session/GetUserSession.d.ts +3 -0
- package/dist/session/GetUserSession.js +22 -0
- package/dist/session/GetUserSession.js.map +1 -0
- package/dist/session/addJwtSecretFromEnvVar.d.ts +14 -0
- package/dist/session/addJwtSecretFromEnvVar.js +23 -0
- package/dist/session/addJwtSecretFromEnvVar.js.map +1 -0
- package/dist/session/buildJwt.d.ts +1 -0
- package/dist/session/buildJwt.js +8 -0
- package/dist/session/buildJwt.js.map +1 -0
- package/dist/session/cookieUtils.d.ts +16 -0
- package/dist/session/cookieUtils.js +19 -0
- package/dist/session/cookieUtils.js.map +1 -0
- package/dist/session/destroySession.d.ts +10 -0
- package/dist/session/destroySession.js +44 -0
- package/dist/session/destroySession.js.map +1 -0
- package/dist/session/getSessionId.d.ts +2 -0
- package/dist/session/getSessionId.js +28 -0
- package/dist/session/getSessionId.js.map +1 -0
- package/dist/tenant-api/AuthorizedTenantClient.d.ts +25 -0
- package/dist/tenant-api/AuthorizedTenantClient.js +61 -0
- package/dist/tenant-api/AuthorizedTenantClient.js.map +1 -0
- package/dist/tenant-api/Tenant.d.ts +17 -0
- package/dist/tenant-api/Tenant.js +10 -0
- package/dist/tenant-api/Tenant.js.map +1 -0
- package/dist/test/JsonConnector.spec.d.ts +1 -0
- package/dist/test/JsonConnector.spec.js +352 -0
- package/dist/test/JsonConnector.spec.js.map +1 -0
- package/dist/test/JsonTransformer.spec.d.ts +1 -0
- package/dist/test/JsonTransformer.spec.js +98 -0
- package/dist/test/JsonTransformer.spec.js.map +1 -0
- package/dist/test/arbitraries.d.ts +98 -0
- package/dist/test/arbitraries.js +264 -0
- package/dist/test/arbitraries.js.map +1 -0
- package/dist/test/aspect-templates/organization-details.d.ts +4 -0
- package/dist/test/aspect-templates/organization-details.js +11 -0
- package/dist/test/aspect-templates/organization-details.js.map +1 -0
- package/dist/test/buildApiClient.spec.d.ts +1 -0
- package/dist/test/buildApiClient.spec.js +177 -0
- package/dist/test/buildApiClient.spec.js.map +1 -0
- package/dist/test/buildAuthorizedTenantClient.spec.d.ts +1 -0
- package/dist/test/buildAuthorizedTenantClient.spec.js +60 -0
- package/dist/test/buildAuthorizedTenantClient.spec.js.map +1 -0
- package/dist/test/connectors/MockExpressServer.d.ts +5 -0
- package/dist/test/connectors/MockExpressServer.js +28 -0
- package/dist/test/connectors/MockExpressServer.js.map +1 -0
- package/dist/test/connectors/MockRegistry.d.ts +7 -0
- package/dist/test/connectors/MockRegistry.js +93 -0
- package/dist/test/connectors/MockRegistry.js.map +1 -0
- package/dist/test/connectors/runConnectorTest.d.ts +5 -0
- package/dist/test/connectors/runConnectorTest.js +106 -0
- package/dist/test/connectors/runConnectorTest.js.map +1 -0
- package/dist/test/db/getTestDBConfig.d.ts +7 -0
- package/dist/test/db/getTestDBConfig.js +13 -0
- package/dist/test/db/getTestDBConfig.js.map +1 -0
- package/dist/test/db/runMigrationSql.d.ts +9 -0
- package/dist/test/db/runMigrationSql.js +82 -0
- package/dist/test/db/runMigrationSql.js.map +1 -0
- package/dist/test/express/status.spec.d.ts +1 -0
- package/dist/test/express/status.spec.js +160 -0
- package/dist/test/express/status.spec.js.map +1 -0
- package/dist/test/fakeArgv.d.ts +2 -0
- package/dist/test/fakeArgv.js +7 -0
- package/dist/test/fakeArgv.js.map +1 -0
- package/dist/test/getAuthDecision.spec.d.ts +1 -0
- package/dist/test/getAuthDecision.spec.js +22 -0
- package/dist/test/getAuthDecision.spec.js.map +1 -0
- package/dist/test/getBasePathFromUrl.spec.d.ts +1 -0
- package/dist/test/getBasePathFromUrl.spec.js +25 -0
- package/dist/test/getBasePathFromUrl.spec.js.map +1 -0
- package/dist/test/jsverify.d.ts +2 -0
- package/dist/test/jsverify.js +8 -0
- package/dist/test/jsverify.js.map +1 -0
- package/dist/test/mockAuthApiHost.d.ts +14 -0
- package/dist/test/mockAuthApiHost.js +174 -0
- package/dist/test/mockAuthApiHost.js.map +1 -0
- package/dist/test/mockAuthorization.d.ts +3 -0
- package/dist/test/mockAuthorization.js +24 -0
- package/dist/test/mockAuthorization.js.map +1 -0
- package/dist/test/mockTenantDataStore.d.ts +8 -0
- package/dist/test/mockTenantDataStore.js +41 -0
- package/dist/test/mockTenantDataStore.js.map +1 -0
- package/dist/test/mockUserDataStore.d.ts +11 -0
- package/dist/test/mockUserDataStore.js +56 -0
- package/dist/test/mockUserDataStore.js.map +1 -0
- package/dist/test/registry/buildAuthorizedClient.spec.d.ts +1 -0
- package/dist/test/registry/buildAuthorizedClient.spec.js +101 -0
- package/dist/test/registry/buildAuthorizedClient.spec.js.map +1 -0
- package/dist/test/sampleOpaResponse.json +480 -0
- package/dist/test/sampleOpaResponseSimple.json +173 -0
- package/dist/test/sampleOpaResponseUnconditionalTrue.json +193 -0
- package/dist/test/sampleOpaResponseUnconditionalTrueWithDefaultRule.json +303 -0
- package/dist/test/sampleOpaResponseWithDefaultRule.json +303 -0
- package/dist/test/session/buildJwt.spec.d.ts +1 -0
- package/dist/test/session/buildJwt.spec.js +50 -0
- package/dist/test/session/buildJwt.spec.js.map +1 -0
- package/dist/test/session/buildJwtForRegistryEsriOpaGroupsAndOwnerTest.spec.d.ts +1 -0
- package/dist/test/session/buildJwtForRegistryEsriOpaGroupsAndOwnerTest.spec.js +64 -0
- package/dist/test/session/buildJwtForRegistryEsriOpaGroupsAndOwnerTest.spec.js.map +1 -0
- package/dist/test/session/buildJwtForRegistryEsriOpaGroupsTest.spec.d.ts +1 -0
- package/dist/test/session/buildJwtForRegistryEsriOpaGroupsTest.spec.js +52 -0
- package/dist/test/session/buildJwtForRegistryEsriOpaGroupsTest.spec.js.map +1 -0
- package/dist/test/session/buildJwtForRegistryEsriOpaOwnerTest.spec.d.ts +1 -0
- package/dist/test/session/buildJwtForRegistryEsriOpaOwnerTest.spec.js +36 -0
- package/dist/test/session/buildJwtForRegistryEsriOpaOwnerTest.spec.js.map +1 -0
- package/dist/test/testAsyncPage.spec.d.ts +1 -0
- package/dist/test/testAsyncPage.spec.js +463 -0
- package/dist/test/testAsyncPage.spec.js.map +1 -0
- package/dist/test/testOpaCompileResponseParser.spec.d.ts +1 -0
- package/dist/test/testOpaCompileResponseParser.spec.js +148 -0
- package/dist/test/testOpaCompileResponseParser.spec.js.map +1 -0
- package/dist/test/util.d.ts +1 -0
- package/dist/test/util.js +8 -0
- package/dist/test/util.js.map +1 -0
- package/dist/util/arrayToMaybe.d.ts +2 -0
- package/dist/util/arrayToMaybe.js +8 -0
- package/dist/util/arrayToMaybe.js.map +1 -0
- package/dist/util/cleanOrgTitle.d.ts +1 -0
- package/dist/util/cleanOrgTitle.js +13 -0
- package/dist/util/cleanOrgTitle.js.map +1 -0
- package/dist/util/escapeRegExp.d.ts +2 -0
- package/dist/util/escapeRegExp.js +5 -0
- package/dist/util/escapeRegExp.js.map +1 -0
- package/dist/util/getMinikubeIP.d.ts +1 -0
- package/dist/util/getMinikubeIP.js +13 -0
- package/dist/util/getMinikubeIP.js.map +1 -0
- package/dist/util/isUuid.d.ts +2 -0
- package/dist/util/isUuid.js +6 -0
- package/dist/util/isUuid.js.map +1 -0
- package/dist/util/unionToThrowable.d.ts +1 -0
- package/dist/util/unionToThrowable.js +12 -0
- package/dist/util/unionToThrowable.js.map +1 -0
- package/dist/utilityTypes.d.ts +1 -0
- package/dist/utilityTypes.js +3 -0
- package/dist/utilityTypes.js.map +1 -0
- package/package.json +3 -3
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import { Record } from "../generated/registry/api";
|
|
2
|
+
import jsc from "./jsverify";
|
|
3
|
+
/**
|
|
4
|
+
* Generates a random string with characters greater than code 32 (so no random
|
|
5
|
+
* TTY crap that can't be matched by any regex
|
|
6
|
+
*/
|
|
7
|
+
export declare const stringArb: jsc.Arbitrary<string>;
|
|
8
|
+
export declare const lowerCaseAlphaCharArb: jsc.Arbitrary<string>;
|
|
9
|
+
export declare const numArb: jsc.Arbitrary<string>;
|
|
10
|
+
export declare const lcAlphaNumCharArb: jsc.Arbitrary<string>;
|
|
11
|
+
export declare const lcAlphaNumStringArb: jsc.Arbitrary<string>;
|
|
12
|
+
export declare const lcAlphaNumStringArbNe: jsc.Arbitrary<string>;
|
|
13
|
+
export declare const lcAlphaStringArb: jsc.Arbitrary<string>;
|
|
14
|
+
export declare const lcAlphaStringArbNe: jsc.Arbitrary<string>;
|
|
15
|
+
export declare const peopleNameArb: jsc.Arbitrary<string>;
|
|
16
|
+
export declare const uuidArb: jsc.Arbitrary<string>;
|
|
17
|
+
export declare const recordArb: jsc.Arbitrary<Record>;
|
|
18
|
+
export declare const specificRecordArb: (aspectArbs: {
|
|
19
|
+
[key: string]: jsc.Arbitrary<any>;
|
|
20
|
+
}) => jsc.Arbitrary<Record>;
|
|
21
|
+
declare type UrlArbOptions = {
|
|
22
|
+
schemeArb?: jsc.Arbitrary<string>;
|
|
23
|
+
hostArb?: jsc.Arbitrary<string>;
|
|
24
|
+
};
|
|
25
|
+
export declare type MonadicArb<T> = jsc.Arbitrary<T> & {
|
|
26
|
+
flatMap<U>(arbForward: (t: T) => jsc.Arbitrary<U>, backwards: (u: U) => T): MonadicArb<U>;
|
|
27
|
+
};
|
|
28
|
+
export declare function arbFlatMap<T, U>(arb: jsc.Arbitrary<T>, arbForward: (t: T) => jsc.Arbitrary<U>, backwards: (u: U) => T, show?: (u: U) => string | undefined): MonadicArb<U>;
|
|
29
|
+
/** Generates an array that is guaranteed to be of the supplied size */
|
|
30
|
+
export declare function arrayOfSizeArb<T>(size: number, arb: jsc.Arbitrary<T>): jsc.Arbitrary<T[]>;
|
|
31
|
+
/** Generates a URL for a distribution - this could be ftp, http or https */
|
|
32
|
+
export declare const distUrlArb: ({ schemeArb, hostArb }?: UrlArbOptions) => jsc.Arbitrary<string>;
|
|
33
|
+
/**
|
|
34
|
+
* Can be passed into distStringsArb to override the default arbitraries.
|
|
35
|
+
*/
|
|
36
|
+
export declare type DistStringsOverrideArbs = {
|
|
37
|
+
url?: jsc.Arbitrary<string>;
|
|
38
|
+
license?: jsc.Arbitrary<string>;
|
|
39
|
+
format?: jsc.Arbitrary<string>;
|
|
40
|
+
};
|
|
41
|
+
/**
|
|
42
|
+
* Can be passed into sourceLinkArb to override the default arbitraries.
|
|
43
|
+
*/
|
|
44
|
+
export declare type SourceLinkOverrideArbs = {
|
|
45
|
+
status?: jsc.Arbitrary<string | undefined>;
|
|
46
|
+
};
|
|
47
|
+
/**
|
|
48
|
+
* Can be passed into datasetFormatArb to override the default arbitaries.
|
|
49
|
+
*/
|
|
50
|
+
export declare type DatasetFormatOverrideArbs = {
|
|
51
|
+
format?: jsc.Arbitrary<string>;
|
|
52
|
+
};
|
|
53
|
+
/**
|
|
54
|
+
* Generates the content of a distribution's dcat-distribution-strings aspect.
|
|
55
|
+
*/
|
|
56
|
+
export declare const distStringsArb: ({ url, license, format }: DistStringsOverrideArbs) => jsc.Arbitrary<{
|
|
57
|
+
downloadURL: string;
|
|
58
|
+
accessURL: string;
|
|
59
|
+
license: string;
|
|
60
|
+
format: string;
|
|
61
|
+
}>;
|
|
62
|
+
/**
|
|
63
|
+
* Generates the content of source link status aspect
|
|
64
|
+
*/
|
|
65
|
+
export declare const sourceLinkArb: ({ status }: SourceLinkOverrideArbs) => jsc.Arbitrary<{
|
|
66
|
+
status: string;
|
|
67
|
+
}>;
|
|
68
|
+
/**
|
|
69
|
+
*
|
|
70
|
+
*/
|
|
71
|
+
export declare const datasetFormatArb: ({ format }: DatasetFormatOverrideArbs) => jsc.Arbitrary<{
|
|
72
|
+
format: string;
|
|
73
|
+
}>;
|
|
74
|
+
/**
|
|
75
|
+
* Generates records, allowing specific arbs to be defined for the distribution.
|
|
76
|
+
*/
|
|
77
|
+
export declare const recordArbWithDistArbs: (distStringsOverrides?: DistStringsOverrideArbs, sourceLinkOverrides?: SourceLinkOverrideArbs, datasetFormatOverrides?: DatasetFormatOverrideArbs) => jsc.Arbitrary<Record>;
|
|
78
|
+
/**
|
|
79
|
+
* Randomly generates a record with the passed objects under its
|
|
80
|
+
* distributions' dcat-distribution-strings aspect.
|
|
81
|
+
*/
|
|
82
|
+
export declare const recordArbWithDists: (dists: object[]) => jsc.Arbitrary<Record>;
|
|
83
|
+
/**
|
|
84
|
+
* Randomly returns a subset of the array, in-order.
|
|
85
|
+
*/
|
|
86
|
+
export declare function someOf<T>(array: T[]): jsc.Arbitrary<T[]>;
|
|
87
|
+
/**
|
|
88
|
+
* Fuzzes a string, changing the case and putting random strings around it
|
|
89
|
+
* and in spaces.
|
|
90
|
+
*/
|
|
91
|
+
export declare function fuzzStringArb(string: string, fuzzArb?: jsc.Arbitrary<string>): jsc.Arbitrary<string>;
|
|
92
|
+
/**
|
|
93
|
+
* Gets the result of the passed string arbitrary and fuzzes it, changing
|
|
94
|
+
* the case and putting random strings around it and in spaces.
|
|
95
|
+
*/
|
|
96
|
+
export declare function fuzzStringArbResult(stringArb: jsc.Arbitrary<string>, fuzzArb?: jsc.Arbitrary<string>): MonadicArb<string>;
|
|
97
|
+
export declare const dateStringArb: jsc.Arbitrary<string>;
|
|
98
|
+
export {};
|
|
@@ -0,0 +1,264 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.dateStringArb = exports.fuzzStringArbResult = exports.fuzzStringArb = exports.someOf = exports.recordArbWithDists = exports.recordArbWithDistArbs = exports.datasetFormatArb = exports.sourceLinkArb = exports.distStringsArb = exports.distUrlArb = exports.arrayOfSizeArb = exports.arbFlatMap = exports.specificRecordArb = exports.recordArb = exports.uuidArb = exports.peopleNameArb = exports.lcAlphaStringArbNe = exports.lcAlphaStringArb = exports.lcAlphaNumStringArbNe = exports.lcAlphaNumStringArb = exports.lcAlphaNumCharArb = exports.numArb = exports.lowerCaseAlphaCharArb = exports.stringArb = void 0;
|
|
7
|
+
const { curried2 } = require("jsverify/lib/utils");
|
|
8
|
+
const lazyseq = require("lazy-seq");
|
|
9
|
+
const uuid_1 = require("uuid");
|
|
10
|
+
const lodash_1 = __importDefault(require("lodash"));
|
|
11
|
+
const jsverify_1 = __importDefault(require("./jsverify"));
|
|
12
|
+
function fromCode(code) {
|
|
13
|
+
return String.fromCharCode(code);
|
|
14
|
+
}
|
|
15
|
+
function toCode(c) {
|
|
16
|
+
return c.charCodeAt(0);
|
|
17
|
+
}
|
|
18
|
+
const charArb = jsverify_1.default.integer(32, 0xff).smap(fromCode, toCode);
|
|
19
|
+
/**
|
|
20
|
+
* Generates a random string with characters greater than code 32 (so no random
|
|
21
|
+
* TTY crap that can't be matched by any regex
|
|
22
|
+
*/
|
|
23
|
+
exports.stringArb = jsverify_1.default.array(charArb).smap((chars) => chars.join(""), (string) => string.split(""));
|
|
24
|
+
exports.lowerCaseAlphaCharArb = jsverify_1.default
|
|
25
|
+
.integer(97, 122)
|
|
26
|
+
.smap(fromCode, toCode);
|
|
27
|
+
exports.numArb = jsverify_1.default.integer(48, 57).smap(fromCode, toCode);
|
|
28
|
+
exports.lcAlphaNumCharArb = jsverify_1.default.oneof([exports.numArb, exports.lowerCaseAlphaCharArb]);
|
|
29
|
+
exports.lcAlphaNumStringArb = jsverify_1.default.array(exports.lcAlphaNumCharArb).smap((arr) => arr.join(""), (string) => string.split(""));
|
|
30
|
+
exports.lcAlphaNumStringArbNe = jsverify_1.default.nearray(exports.lcAlphaNumCharArb).smap((arr) => arr.join(""), (string) => string.split(""));
|
|
31
|
+
exports.lcAlphaStringArb = jsverify_1.default.array(exports.lowerCaseAlphaCharArb).smap((chars) => chars.join(""), (string) => string.split(""));
|
|
32
|
+
exports.lcAlphaStringArbNe = jsverify_1.default.nearray(exports.lowerCaseAlphaCharArb).smap((chars) => chars.join(""), (string) => string.split(""));
|
|
33
|
+
exports.peopleNameArb = jsverify_1.default
|
|
34
|
+
.tuple([exports.lcAlphaStringArbNe, exports.lcAlphaStringArbNe])
|
|
35
|
+
.smap((strArr) => strArr.join(" "), (string) => string.split(" "));
|
|
36
|
+
exports.uuidArb = jsverify_1.default.bless({
|
|
37
|
+
generator: jsverify_1.default.generator.bless((x) => uuid_1.v4()),
|
|
38
|
+
shrink: jsverify_1.default.shrink.bless((x) => []),
|
|
39
|
+
show: (x) => x
|
|
40
|
+
});
|
|
41
|
+
const intArb = jsverify_1.default.integer(48, 57);
|
|
42
|
+
exports.recordArb = jsverify_1.default.record({
|
|
43
|
+
id: exports.uuidArb,
|
|
44
|
+
name: exports.stringArb,
|
|
45
|
+
aspects: jsverify_1.default.suchthat(jsverify_1.default.array(jsverify_1.default.json), (arr) => arr.length <= 10),
|
|
46
|
+
sourceTag: jsverify_1.default.constant(undefined),
|
|
47
|
+
tenantId: intArb,
|
|
48
|
+
authnReadPolicyId: jsverify_1.default.constant(undefined)
|
|
49
|
+
});
|
|
50
|
+
exports.specificRecordArb = (aspectArbs) => jsverify_1.default.record({
|
|
51
|
+
id: exports.uuidArb,
|
|
52
|
+
name: exports.stringArb,
|
|
53
|
+
aspects: jsverify_1.default.record(aspectArbs),
|
|
54
|
+
sourceTag: jsverify_1.default.constant(undefined),
|
|
55
|
+
tenantId: intArb,
|
|
56
|
+
authnReadPolicyId: jsverify_1.default.constant(undefined)
|
|
57
|
+
});
|
|
58
|
+
const defaultSchemeArb = jsverify_1.default.oneof([
|
|
59
|
+
jsverify_1.default.constant("http"),
|
|
60
|
+
jsverify_1.default.constant("https"),
|
|
61
|
+
jsverify_1.default.constant("ftp"),
|
|
62
|
+
exports.lcAlphaNumStringArbNe
|
|
63
|
+
]);
|
|
64
|
+
function shrinkArrayWithMinimumSize(size) {
|
|
65
|
+
function shrinkArrayImpl(...args) {
|
|
66
|
+
const shrink = args[0];
|
|
67
|
+
const result = jsverify_1.default.shrink.bless(function (arr) {
|
|
68
|
+
if (arr.length <= size) {
|
|
69
|
+
return lazyseq.nil;
|
|
70
|
+
}
|
|
71
|
+
else {
|
|
72
|
+
var x = arr[0];
|
|
73
|
+
var xs = arr.slice(1);
|
|
74
|
+
return lazyseq
|
|
75
|
+
.cons(xs, lazyseq.nil)
|
|
76
|
+
.append(shrink(x).map(function (xp) {
|
|
77
|
+
return [xp].concat(xs);
|
|
78
|
+
}))
|
|
79
|
+
.append(shrinkArrayImpl(shrink, xs).map(function (xsp) {
|
|
80
|
+
return [x].concat(xsp);
|
|
81
|
+
}));
|
|
82
|
+
}
|
|
83
|
+
});
|
|
84
|
+
return curried2(result, args);
|
|
85
|
+
}
|
|
86
|
+
return shrinkArrayImpl;
|
|
87
|
+
}
|
|
88
|
+
/** Sometimes jsc returns a lazy-seq when it should return an array, this makes sure it's an array. */
|
|
89
|
+
function unSeq(maybeArray) {
|
|
90
|
+
return maybeArray.toArray ? maybeArray.toArray() : maybeArray;
|
|
91
|
+
}
|
|
92
|
+
function arbFlatMap(arb, arbForward, backwards, show = (u) => JSON.stringify(u)) {
|
|
93
|
+
const x = jsverify_1.default.bless({
|
|
94
|
+
generator: arb.generator.flatmap((t) => {
|
|
95
|
+
return arbForward(t).generator;
|
|
96
|
+
}),
|
|
97
|
+
show,
|
|
98
|
+
shrink: jsverify_1.default.shrink.bless((u) => {
|
|
99
|
+
const t = backwards(u);
|
|
100
|
+
if (lodash_1.default.isUndefined(t)) {
|
|
101
|
+
return [];
|
|
102
|
+
}
|
|
103
|
+
const ts = unSeq(arb.shrink(t));
|
|
104
|
+
const us = lodash_1.default(ts)
|
|
105
|
+
.flatMap((thisT) => {
|
|
106
|
+
const newArb = arbForward(thisT);
|
|
107
|
+
const newU = jsverify_1.default.sampler(newArb, ts.length)(1)[0];
|
|
108
|
+
return lodash_1.default.take(unSeq(newArb.shrink(newU)), 3);
|
|
109
|
+
})
|
|
110
|
+
.value();
|
|
111
|
+
return us;
|
|
112
|
+
})
|
|
113
|
+
});
|
|
114
|
+
return Object.assign(Object.assign({}, x), { flatMap(arbForward, backwards) {
|
|
115
|
+
return arbFlatMap(x, arbForward, backwards);
|
|
116
|
+
} });
|
|
117
|
+
}
|
|
118
|
+
exports.arbFlatMap = arbFlatMap;
|
|
119
|
+
function generateArrayOfSize(arrSize, gen) {
|
|
120
|
+
var result = jsverify_1.default.generator.bless(function (size) {
|
|
121
|
+
var arr = new Array(arrSize);
|
|
122
|
+
for (var i = 0; i < arrSize; i++) {
|
|
123
|
+
arr[i] = gen(size);
|
|
124
|
+
}
|
|
125
|
+
return arr;
|
|
126
|
+
});
|
|
127
|
+
return result;
|
|
128
|
+
}
|
|
129
|
+
/** Generates an array that is guaranteed to be of the supplied size */
|
|
130
|
+
function arrayOfSizeArb(size, arb) {
|
|
131
|
+
return jsverify_1.default.bless({
|
|
132
|
+
generator: generateArrayOfSize(size, arb.generator),
|
|
133
|
+
shrink: shrinkArrayWithMinimumSize(size)(arb.shrink),
|
|
134
|
+
show: (x) => x.toString()
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
exports.arrayOfSizeArb = arrayOfSizeArb;
|
|
138
|
+
/**
|
|
139
|
+
* Randomly generates a scheme, host, port and path for a URL.
|
|
140
|
+
*/
|
|
141
|
+
const urlPartsArb = (options) => jsverify_1.default.record({
|
|
142
|
+
scheme: options.schemeArb,
|
|
143
|
+
host: jsverify_1.default.suchthat(options.hostArb, (string) => !string.startsWith("ftp")),
|
|
144
|
+
port: jsverify_1.default.oneof([
|
|
145
|
+
jsverify_1.default.integer(1, 65000),
|
|
146
|
+
jsverify_1.default.constant(80),
|
|
147
|
+
jsverify_1.default.constant(21)
|
|
148
|
+
]),
|
|
149
|
+
path: jsverify_1.default.array(exports.lcAlphaNumStringArbNe)
|
|
150
|
+
});
|
|
151
|
+
/** Generates a URL for a distribution - this could be ftp, http or https */
|
|
152
|
+
exports.distUrlArb = ({ schemeArb = defaultSchemeArb, hostArb = exports.lcAlphaNumStringArbNe } = {}) => urlPartsArb({ schemeArb, hostArb }).smap((urlParts) => {
|
|
153
|
+
const port = (urlParts.scheme === "http" && urlParts.port === 80) ||
|
|
154
|
+
(urlParts.scheme === "ftp" && urlParts.port === 21)
|
|
155
|
+
? ""
|
|
156
|
+
: ":" + urlParts.port;
|
|
157
|
+
return `${urlParts.scheme}://${urlParts.host}.com${port}/${(urlParts.path || []).join("/")}`;
|
|
158
|
+
}, (url) => {
|
|
159
|
+
const splitAfterScheme = url.split("://");
|
|
160
|
+
const scheme = splitAfterScheme[0];
|
|
161
|
+
const splitOnDotCom = splitAfterScheme[1].split(/\.com:?/);
|
|
162
|
+
const host = splitOnDotCom[0];
|
|
163
|
+
const pathSegments = splitOnDotCom[1].split("/");
|
|
164
|
+
const port = parseInt(pathSegments[0]);
|
|
165
|
+
const path = pathSegments.slice(1);
|
|
166
|
+
return { scheme, host, port, path };
|
|
167
|
+
});
|
|
168
|
+
/**
|
|
169
|
+
* Generates the content of a distribution's dcat-distribution-strings aspect.
|
|
170
|
+
*/
|
|
171
|
+
exports.distStringsArb = ({ url = jsverify_1.default.oneof([exports.distUrlArb(), jsverify_1.default.constant(undefined)]), license = exports.stringArb, format = exports.stringArb }) => jsverify_1.default.record({
|
|
172
|
+
downloadURL: url,
|
|
173
|
+
accessURL: url,
|
|
174
|
+
license,
|
|
175
|
+
format
|
|
176
|
+
});
|
|
177
|
+
/**
|
|
178
|
+
* Generates the content of source link status aspect
|
|
179
|
+
*/
|
|
180
|
+
exports.sourceLinkArb = ({ status = jsverify_1.default.constant("active") }) => jsverify_1.default.record({
|
|
181
|
+
status: status
|
|
182
|
+
});
|
|
183
|
+
/**
|
|
184
|
+
*
|
|
185
|
+
*/
|
|
186
|
+
exports.datasetFormatArb = ({ format = exports.stringArb }) => jsverify_1.default.record({
|
|
187
|
+
format
|
|
188
|
+
});
|
|
189
|
+
/**
|
|
190
|
+
* Generates records, allowing specific arbs to be defined for the distribution.
|
|
191
|
+
*/
|
|
192
|
+
exports.recordArbWithDistArbs = (distStringsOverrides = {}, sourceLinkOverrides = {}, datasetFormatOverrides = {}) => exports.specificRecordArb({
|
|
193
|
+
"dataset-distributions": jsverify_1.default.record({
|
|
194
|
+
distributions: jsverify_1.default.array(exports.specificRecordArb({
|
|
195
|
+
"dcat-distribution-strings": exports.distStringsArb(distStringsOverrides),
|
|
196
|
+
"dataset-format": exports.datasetFormatArb(datasetFormatOverrides),
|
|
197
|
+
"source-link-status": exports.sourceLinkArb(sourceLinkOverrides)
|
|
198
|
+
}))
|
|
199
|
+
})
|
|
200
|
+
});
|
|
201
|
+
/**
|
|
202
|
+
* Randomly generates a record with the passed objects under its
|
|
203
|
+
* distributions' dcat-distribution-strings aspect.
|
|
204
|
+
*/
|
|
205
|
+
exports.recordArbWithDists = (dists) => exports.specificRecordArb({
|
|
206
|
+
"dataset-distributions": jsverify_1.default.record({
|
|
207
|
+
distributions: jsverify_1.default.tuple(dists.map((dist) => exports.specificRecordArb({
|
|
208
|
+
"dcat-distribution-strings": jsverify_1.default.constant(dist)
|
|
209
|
+
})))
|
|
210
|
+
})
|
|
211
|
+
});
|
|
212
|
+
/**
|
|
213
|
+
* Randomly returns a subset of the array, in-order.
|
|
214
|
+
*/
|
|
215
|
+
function someOf(array) {
|
|
216
|
+
return jsverify_1.default
|
|
217
|
+
.record({
|
|
218
|
+
length: jsverify_1.default.integer(0, array.length),
|
|
219
|
+
start: jsverify_1.default.integer(0, array.length - 1)
|
|
220
|
+
})
|
|
221
|
+
.smap(({ length, start }) => lodash_1.default(array).drop(start).take(length).value(), (newArray) => {
|
|
222
|
+
const start = lodash_1.default.indexOf(array, newArray[0]);
|
|
223
|
+
const length = newArray.length - start;
|
|
224
|
+
return { start, length };
|
|
225
|
+
});
|
|
226
|
+
}
|
|
227
|
+
exports.someOf = someOf;
|
|
228
|
+
/**
|
|
229
|
+
* Fuzzes a string, changing the case and putting random strings around it
|
|
230
|
+
* and in spaces.
|
|
231
|
+
*/
|
|
232
|
+
function fuzzStringArb(string, fuzzArb = exports.stringArb) {
|
|
233
|
+
const words = string.split(/[^a-zA-Z\d]+/);
|
|
234
|
+
const aroundArbs = arrayOfSizeArb(words.length + 1, fuzzArb);
|
|
235
|
+
return arbFlatMap(aroundArbs, (around) => {
|
|
236
|
+
const string = lodash_1.default(around).zip(words).flatten().join("");
|
|
237
|
+
const caseArb = arrayOfSizeArb(string.length, jsverify_1.default.bool);
|
|
238
|
+
return jsverify_1.default.record({ string: jsverify_1.default.constant(string), cases: caseArb });
|
|
239
|
+
}, ({ string, cases }) => {
|
|
240
|
+
const wordsRegex = new RegExp(words.join("|"));
|
|
241
|
+
return string.split(wordsRegex);
|
|
242
|
+
}).smap(({ string, cases }) => lodash_1.default.map(string, (char, index) => {
|
|
243
|
+
if (cases[index]) {
|
|
244
|
+
return char.toUpperCase();
|
|
245
|
+
}
|
|
246
|
+
else {
|
|
247
|
+
return char.toLowerCase();
|
|
248
|
+
}
|
|
249
|
+
}).join(""), (string) => ({
|
|
250
|
+
cases: lodash_1.default.map(string, (char, index) => char === char.toUpperCase()),
|
|
251
|
+
string
|
|
252
|
+
}));
|
|
253
|
+
}
|
|
254
|
+
exports.fuzzStringArb = fuzzStringArb;
|
|
255
|
+
/**
|
|
256
|
+
* Gets the result of the passed string arbitrary and fuzzes it, changing
|
|
257
|
+
* the case and putting random strings around it and in spaces.
|
|
258
|
+
*/
|
|
259
|
+
function fuzzStringArbResult(stringArb, fuzzArb) {
|
|
260
|
+
return arbFlatMap(stringArb, (string) => fuzzStringArb(string, fuzzArb), (fuzzedString) => undefined);
|
|
261
|
+
}
|
|
262
|
+
exports.fuzzStringArbResult = fuzzStringArbResult;
|
|
263
|
+
exports.dateStringArb = jsverify_1.default.datetime.smap((date) => date.toString(), (string) => new Date(Date.parse(string)));
|
|
264
|
+
//# sourceMappingURL=arbitraries.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"arbitraries.js","sourceRoot":"","sources":["../../src/test/arbitraries.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
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
|
+
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
|
+
chai_1.default.use(chai_as_promised_1.default);
|
|
24
|
+
const expect = chai_1.default.expect;
|
|
25
|
+
const mockUserData = mockUserDataStore_1.default.getData();
|
|
26
|
+
describe("Test ApiClient.ts", function () {
|
|
27
|
+
const argv = addJwtSecretFromEnvVar_1.default(yargs_1.default
|
|
28
|
+
.config()
|
|
29
|
+
.help()
|
|
30
|
+
.option("authorizationApi", {
|
|
31
|
+
describe: "The base URL of the authorization API.",
|
|
32
|
+
type: "string",
|
|
33
|
+
default: "http://localhost:6104/v0"
|
|
34
|
+
})
|
|
35
|
+
.option("jwtSecret", {
|
|
36
|
+
describe: "The secret to use to sign JSON Web Token (JWT) for authenticated requests. This can also be specified with the JWT_SECRET environment variable.",
|
|
37
|
+
type: "string"
|
|
38
|
+
})
|
|
39
|
+
.option("userId", {
|
|
40
|
+
describe: "The user id to use when making authenticated requests to the registry",
|
|
41
|
+
type: "string",
|
|
42
|
+
demand: true,
|
|
43
|
+
default: process.env.USER_ID || process.env.npm_package_config_userId
|
|
44
|
+
}).argv);
|
|
45
|
+
const mockHost = new mockAuthApiHost_1.default(argv.authorizationApi, argv.jwtSecret, argv.userId);
|
|
46
|
+
before(function () {
|
|
47
|
+
sinon_1.default.stub(console, "error").callsFake(() => { });
|
|
48
|
+
sinon_1.default.stub(console, "warn").callsFake(() => { });
|
|
49
|
+
mockHost.start();
|
|
50
|
+
});
|
|
51
|
+
after(function () {
|
|
52
|
+
console.error.restore();
|
|
53
|
+
console.warn.restore();
|
|
54
|
+
mockHost.stop();
|
|
55
|
+
});
|
|
56
|
+
it("`lookupUser` should return 'Unauthorised' error if called without sepecifying user ID", function () {
|
|
57
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
58
|
+
const api = new ApiClient_1.default(argv.authorizationApi);
|
|
59
|
+
return expect(api.lookupUser("ckan", "testuser")).to.eventually.rejectedWith("Unauthorised");
|
|
60
|
+
});
|
|
61
|
+
});
|
|
62
|
+
it("`lookupUser` should return 'Can only be accessed by Admin users' error if called as a standard user", function () {
|
|
63
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
64
|
+
const api = new ApiClient_1.default(argv.authorizationApi, argv.jwtSecret, mockUserData[1].id);
|
|
65
|
+
return expect(api.lookupUser("ckan", "testuser")).to.eventually.rejectedWith("Can only be accessed by Admin users");
|
|
66
|
+
});
|
|
67
|
+
});
|
|
68
|
+
it("`lookupUser` should return the correct test user record if called as admin user", function () {
|
|
69
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
70
|
+
const api = new ApiClient_1.default(argv.authorizationApi, argv.jwtSecret, argv.userId);
|
|
71
|
+
const data = (yield api.lookupUser("ckan", "testuser")).valueOr(null);
|
|
72
|
+
expect(data).to.deep.equal(mockUserData[1]);
|
|
73
|
+
});
|
|
74
|
+
});
|
|
75
|
+
it("`getUser` should return 'Unauthorised' error if called without sepecifying user ID", function () {
|
|
76
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
77
|
+
const api = new ApiClient_1.default(argv.authorizationApi);
|
|
78
|
+
return expect(api.getUser(mockUserData[1].id)).to.eventually.rejectedWith("Unauthorised");
|
|
79
|
+
});
|
|
80
|
+
});
|
|
81
|
+
it("`getUser` should return 'Can only be accessed by Admin users' error if called as a standard user", function () {
|
|
82
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
83
|
+
const api = new ApiClient_1.default(argv.authorizationApi, argv.jwtSecret, mockUserData[1].id);
|
|
84
|
+
return expect(api.getUser(mockUserData[1].id)).eventually.rejectedWith("Can only be accessed by Admin users");
|
|
85
|
+
});
|
|
86
|
+
});
|
|
87
|
+
it("`getUser` should return the correct test user record if called as admin user", function () {
|
|
88
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
89
|
+
const api = new ApiClient_1.default(argv.authorizationApi, argv.jwtSecret, argv.userId);
|
|
90
|
+
const data = (yield api.getUser(mockUserData[1].id)).valueOr(null);
|
|
91
|
+
expect(data).to.deep.equal(mockUserData[1]);
|
|
92
|
+
});
|
|
93
|
+
});
|
|
94
|
+
it("`getUserPublic` should return the correct test user record if called without sepecifying user ID", function () {
|
|
95
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
96
|
+
const api = new ApiClient_1.default(argv.authorizationApi);
|
|
97
|
+
const data = (yield api.getUserPublic(mockUserData[1].id)).valueOr(null);
|
|
98
|
+
const expectedUserData = {
|
|
99
|
+
id: mockUserData[1].id,
|
|
100
|
+
photoURL: mockUserData[1].photoURL,
|
|
101
|
+
displayName: mockUserData[1].displayName,
|
|
102
|
+
isAdmin: mockUserData[1].isAdmin
|
|
103
|
+
};
|
|
104
|
+
expect(data).to.deep.equal(expectedUserData);
|
|
105
|
+
});
|
|
106
|
+
});
|
|
107
|
+
it("`getUserPublic` should return the correct test user record if called as a standard user", function () {
|
|
108
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
109
|
+
const api = new ApiClient_1.default(argv.authorizationApi, argv.jwtSecret, mockUserData[1].id);
|
|
110
|
+
const data = (yield api.getUserPublic(mockUserData[1].id)).valueOr(null);
|
|
111
|
+
const expectedUserData = {
|
|
112
|
+
id: mockUserData[1].id,
|
|
113
|
+
photoURL: mockUserData[1].photoURL,
|
|
114
|
+
displayName: mockUserData[1].displayName,
|
|
115
|
+
isAdmin: mockUserData[1].isAdmin
|
|
116
|
+
};
|
|
117
|
+
expect(data).to.deep.equal(expectedUserData);
|
|
118
|
+
});
|
|
119
|
+
});
|
|
120
|
+
it("`getUserPublic` should return the correct test user record if called as admin user", function () {
|
|
121
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
122
|
+
const api = new ApiClient_1.default(argv.authorizationApi, argv.jwtSecret, argv.userId);
|
|
123
|
+
const data = (yield api.getUserPublic(mockUserData[1].id)).valueOr(null);
|
|
124
|
+
const expectedUserData = {
|
|
125
|
+
id: mockUserData[1].id,
|
|
126
|
+
photoURL: mockUserData[1].photoURL,
|
|
127
|
+
displayName: mockUserData[1].displayName,
|
|
128
|
+
isAdmin: mockUserData[1].isAdmin
|
|
129
|
+
};
|
|
130
|
+
expect(data).to.deep.equal(expectedUserData);
|
|
131
|
+
});
|
|
132
|
+
});
|
|
133
|
+
const newUserDataToBeInserted = {
|
|
134
|
+
displayName: "Test User2",
|
|
135
|
+
email: "test@test.com",
|
|
136
|
+
photoURL: "http://example.com",
|
|
137
|
+
source: "manual",
|
|
138
|
+
sourceId: "2",
|
|
139
|
+
isAdmin: false
|
|
140
|
+
};
|
|
141
|
+
it(`\`createUser\` should return 'Encountered error 401 when POSTing new user to ${argv.authorizationApi}' error if called without sepecifying user ID`, function () {
|
|
142
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
143
|
+
const api = new ApiClient_1.default(argv.authorizationApi);
|
|
144
|
+
return expect(api.createUser(newUserDataToBeInserted)).to.eventually.rejectedWith(`Encountered error 401 when POSTing new user to ${argv.authorizationApi}`);
|
|
145
|
+
});
|
|
146
|
+
});
|
|
147
|
+
it(`\`createUser\` should return 'Encountered error 403 when POSTing new user to ${argv.authorizationApi}' error if called as a standard user`, function () {
|
|
148
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
149
|
+
const api = new ApiClient_1.default(argv.authorizationApi, argv.jwtSecret, mockUserData[1].id);
|
|
150
|
+
return expect(api.createUser(newUserDataToBeInserted)).to.eventually.rejectedWith(`Encountered error 403 when POSTing new user to ${argv.authorizationApi}`);
|
|
151
|
+
});
|
|
152
|
+
});
|
|
153
|
+
let newlyCreatedUserId = null;
|
|
154
|
+
it("`createUser` should return the new user data if called as admin user", function () {
|
|
155
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
156
|
+
const api = new ApiClient_1.default(argv.authorizationApi, argv.jwtSecret, argv.userId);
|
|
157
|
+
const newUser = yield api.createUser(newUserDataToBeInserted);
|
|
158
|
+
expect(newUser).to.have.property("id");
|
|
159
|
+
expect(newUser.id).to.be.a("string");
|
|
160
|
+
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;
|
|
161
|
+
newlyCreatedUserId = newUser.id;
|
|
162
|
+
expect(newUser).to.deep.equal(Object.assign(Object.assign({}, newUserDataToBeInserted), { id: newUser.id }));
|
|
163
|
+
});
|
|
164
|
+
});
|
|
165
|
+
it("After `createUser` call, the same user record should be able to retrieved via `getUser`", function () {
|
|
166
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
167
|
+
if (!newlyCreatedUserId) {
|
|
168
|
+
this.skip();
|
|
169
|
+
return;
|
|
170
|
+
}
|
|
171
|
+
const api = new ApiClient_1.default(argv.authorizationApi, argv.jwtSecret, argv.userId);
|
|
172
|
+
const user = (yield api.getUser(newlyCreatedUserId)).valueOrThrow(null);
|
|
173
|
+
expect(user).to.deep.equal(Object.assign(Object.assign({}, newUserDataToBeInserted), { id: newlyCreatedUserId }));
|
|
174
|
+
});
|
|
175
|
+
});
|
|
176
|
+
});
|
|
177
|
+
//# sourceMappingURL=buildApiClient.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"buildApiClient.spec.js","sourceRoot":"","sources":["../../src/test/buildApiClient.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|