@dereekb/firebase-server 7.11.2 → 7.13.1
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/CHANGELOG.md +28 -0
- package/package.json +7 -7
- package/src/lib/auth/auth.nest.util.d.ts +7 -0
- package/src/lib/auth/auth.nest.util.js +33 -0
- package/src/lib/auth/auth.nest.util.js.map +1 -0
- package/src/lib/auth/index.d.ts +1 -0
- package/src/lib/auth/index.js +1 -0
- package/src/lib/auth/index.js.map +1 -1
- package/src/lib/function/error.d.ts +2 -2
- package/src/lib/function/error.js +2 -2
- package/src/lib/function/error.js.map +1 -1
- package/src/lib/nest/model/index.d.ts +0 -1
- package/src/lib/nest/model/index.js +0 -1
- package/src/lib/nest/model/index.js.map +1 -1
- package/test/CHANGELOG.md +27 -0
- package/test/package.json +10 -10
- package/test/src/lib/firebase/firebase.admin.auth.d.ts +13 -0
- package/test/src/lib/firebase/firebase.admin.auth.js +22 -4
- package/test/src/lib/firebase/firebase.admin.auth.js.map +1 -1
- package/test/src/lib/firebase/firebase.admin.collection.d.ts +5 -5
- package/test/src/lib/firebase/firebase.admin.collection.js.map +1 -1
- package/test/src/lib/firebase/firebase.admin.nest.function.context.d.ts +21 -3
- package/test/src/lib/firebase/firebase.admin.nest.function.context.js +27 -21
- package/test/src/lib/firebase/firebase.admin.nest.function.context.js.map +1 -1
- package/src/lib/nest/model/model.param.d.ts +0 -7
- package/src/lib/nest/model/model.param.js +0 -18
- package/src/lib/nest/model/model.param.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,34 @@
|
|
|
2
2
|
|
|
3
3
|
This file was generated using [@jscutlery/semver](https://github.com/jscutlery/semver).
|
|
4
4
|
|
|
5
|
+
## [7.13.1](https://github.com/dereekb/dbx-components/compare/v7.13.0-dev...v7.13.1) (2022-06-15)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
### Bug Fixes
|
|
9
|
+
|
|
10
|
+
* fixed createTestFunctionContextOptions() authData typing ([ba017cd](https://github.com/dereekb/dbx-components/commit/ba017cd5c48fe96277c8c40a6c24d0f65d937214))
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
# [7.13.0](https://github.com/dereekb/dbx-components/compare/v7.12.0-dev...v7.13.0) (2022-06-14)
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
### Features
|
|
18
|
+
|
|
19
|
+
* added describeCloudFunctionTest() to handle a map of functions ([5545149](https://github.com/dereekb/dbx-components/commit/55451495c305726d89973613d7d5b9a5be9871bc))
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
# [7.12.0](https://github.com/dereekb/dbx-components/compare/v7.11.2-dev...v7.12.0) (2022-06-14)
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
### Features
|
|
27
|
+
|
|
28
|
+
* added isAdminOrTargetUserInRequestData() ([c597eb9](https://github.com/dereekb/dbx-components/commit/c597eb9ce968ae5e8d64f3bc2f6ba6520cb11681))
|
|
29
|
+
* updated firestoreModelKey() ([1459a15](https://github.com/dereekb/dbx-components/commit/1459a150b00cd657cc5a835652c17945ae85ca15))
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
|
|
5
33
|
## [7.11.2](https://github.com/dereekb/dbx-components/compare/v7.11.1-dev...v7.11.2) (2022-06-13)
|
|
6
34
|
|
|
7
35
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dereekb/firebase-server",
|
|
3
|
-
"version": "7.
|
|
3
|
+
"version": "7.13.1",
|
|
4
4
|
"devDependencies": {
|
|
5
5
|
"firebase-functions-test": "2.0.2"
|
|
6
6
|
},
|
|
@@ -20,27 +20,27 @@
|
|
|
20
20
|
"typings": "./src/index.d.ts",
|
|
21
21
|
"dependencies": {},
|
|
22
22
|
"peerDependencies": {
|
|
23
|
-
"@dereekb/firebase": "7.
|
|
23
|
+
"@dereekb/firebase": "7.13.1",
|
|
24
24
|
"rxjs": "^7.0.0",
|
|
25
25
|
"rxfire": "^6.0.3",
|
|
26
26
|
"firebase": "^9.8.0",
|
|
27
|
-
"@dereekb/util": "7.
|
|
27
|
+
"@dereekb/util": "7.13.1",
|
|
28
28
|
"make-error": "^1.3.0",
|
|
29
29
|
"ts-essentials": "^9.1.2",
|
|
30
30
|
"extra-set": "^2.2.11",
|
|
31
|
-
"@dereekb/rxjs": "7.
|
|
31
|
+
"@dereekb/rxjs": "7.13.1",
|
|
32
32
|
"ms": "^3.0.0-canary.1",
|
|
33
|
-
"@dereekb/model": "7.
|
|
33
|
+
"@dereekb/model": "7.13.1",
|
|
34
34
|
"class-transformer": "^0.5.1",
|
|
35
35
|
"class-validator": "^0.13.2",
|
|
36
|
-
"@dereekb/date": "7.
|
|
36
|
+
"@dereekb/date": "7.13.1",
|
|
37
37
|
"date-fns": "^2.28.0",
|
|
38
38
|
"date-fns-tz": "^1.3.0",
|
|
39
39
|
"rrule": "2.7.0",
|
|
40
40
|
"firebase-functions": "^3.21.2",
|
|
41
41
|
"firebase-admin": "^10.3.0",
|
|
42
42
|
"@nestjs/common": "^8.4.0",
|
|
43
|
-
"@dereekb/nestjs": "7.
|
|
43
|
+
"@dereekb/nestjs": "7.13.1",
|
|
44
44
|
"@nestjs/config": "^2.0.1",
|
|
45
45
|
"@google-cloud/firestore": "^4.15.1",
|
|
46
46
|
"@nestjs/core": "^8.4.0",
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { UserRelated } from '@dereekb/firebase';
|
|
2
|
+
import { NestContextCallableRequestWithAuth } from '../nest/function/nest';
|
|
3
|
+
import { AbstractFirebaseNestContext } from '../nest/nest.provider';
|
|
4
|
+
export declare function assertIsAdminInRequest<N extends AbstractFirebaseNestContext<any, any> = AbstractFirebaseNestContext<any, any>, I = unknown>(request: NestContextCallableRequestWithAuth<N, I>): void;
|
|
5
|
+
export declare function isAdminInRequest<N extends AbstractFirebaseNestContext<any, any> = AbstractFirebaseNestContext<any, any>, I = unknown>(request: NestContextCallableRequestWithAuth<N, I>): boolean;
|
|
6
|
+
export declare function assertIsAdminOrTargetUserInRequestData<N extends AbstractFirebaseNestContext<any, any> = AbstractFirebaseNestContext<any, any>, I extends Partial<UserRelated> = Partial<UserRelated>>(request: NestContextCallableRequestWithAuth<N, I>, requireUid?: boolean): string;
|
|
7
|
+
export declare function isAdminOrTargetUserInRequestData<N extends AbstractFirebaseNestContext<any, any> = AbstractFirebaseNestContext<any, any>, I extends Partial<UserRelated> = Partial<UserRelated>>(request: NestContextCallableRequestWithAuth<N, I>, requireUid?: boolean): boolean;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isAdminOrTargetUserInRequestData = exports.assertIsAdminOrTargetUserInRequestData = exports.isAdminInRequest = exports.assertIsAdminInRequest = void 0;
|
|
4
|
+
const function_1 = require("../function");
|
|
5
|
+
function assertIsAdminInRequest(request) {
|
|
6
|
+
if (!isAdminInRequest(request)) {
|
|
7
|
+
throw (0, function_1.forbiddenError)();
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
exports.assertIsAdminInRequest = assertIsAdminInRequest;
|
|
11
|
+
function isAdminInRequest(request) {
|
|
12
|
+
return request.nest.authService.context(request).isAdmin;
|
|
13
|
+
}
|
|
14
|
+
exports.isAdminInRequest = isAdminInRequest;
|
|
15
|
+
function assertIsAdminOrTargetUserInRequestData(request, requireUid) {
|
|
16
|
+
var _a;
|
|
17
|
+
if (!isAdminOrTargetUserInRequestData(request, requireUid)) {
|
|
18
|
+
throw (0, function_1.forbiddenError)();
|
|
19
|
+
}
|
|
20
|
+
return (_a = request.data.uid) !== null && _a !== void 0 ? _a : request.auth.uid;
|
|
21
|
+
}
|
|
22
|
+
exports.assertIsAdminOrTargetUserInRequestData = assertIsAdminOrTargetUserInRequestData;
|
|
23
|
+
function isAdminOrTargetUserInRequestData(request, requireUid = false) {
|
|
24
|
+
const uid = request.data.uid;
|
|
25
|
+
const authUid = request.auth.uid;
|
|
26
|
+
let isAdminOrTargetUser = true;
|
|
27
|
+
if ((requireUid && uid == null) || (uid != null && uid !== authUid)) {
|
|
28
|
+
isAdminOrTargetUser = request.nest.authService.context(request).isAdmin;
|
|
29
|
+
}
|
|
30
|
+
return isAdminOrTargetUser;
|
|
31
|
+
}
|
|
32
|
+
exports.isAdminOrTargetUserInRequestData = isAdminOrTargetUserInRequestData;
|
|
33
|
+
//# sourceMappingURL=auth.nest.util.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.nest.util.js","sourceRoot":"","sources":["../../../../../../packages/firebase-server/src/lib/auth/auth.nest.util.ts"],"names":[],"mappings":";;;AACA,0CAA6C;AAI7C,SAAgB,sBAAsB,CAAuG,OAAiD;IAC5L,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE;QAC9B,MAAM,IAAA,yBAAc,GAAE,CAAC;KACxB;AACH,CAAC;AAJD,wDAIC;AAED,SAAgB,gBAAgB,CAAuG,OAAiD;IACtL,OAAO,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC;AAC3D,CAAC;AAFD,4CAEC;AAED,SAAgB,sCAAsC,CAAiJ,OAAiD,EAAE,UAAoB;;IAC5Q,IAAI,CAAC,gCAAgC,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE;QAC1D,MAAM,IAAA,yBAAc,GAAE,CAAC;KACxB;IAED,OAAO,MAAA,OAAO,CAAC,IAAI,CAAC,GAAG,mCAAI,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;AAC9C,CAAC;AAND,wFAMC;AAED,SAAgB,gCAAgC,CAAiJ,OAAiD,EAAE,UAAU,GAAG,KAAK;IACpQ,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;IAC7B,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;IAEjC,IAAI,mBAAmB,GAAG,IAAI,CAAC;IAE/B,IAAI,CAAC,UAAU,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI,IAAI,GAAG,KAAK,OAAO,CAAC,EAAE;QACnE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC;KACzE;IAED,OAAO,mBAAmB,CAAC;AAC7B,CAAC;AAXD,4EAWC"}
|
package/src/lib/auth/index.d.ts
CHANGED
package/src/lib/auth/index.js
CHANGED
|
@@ -4,4 +4,5 @@ const tslib_1 = require("tslib");
|
|
|
4
4
|
tslib_1.__exportStar(require("./auth.service"), exports);
|
|
5
5
|
tslib_1.__exportStar(require("./auth.nest"), exports);
|
|
6
6
|
tslib_1.__exportStar(require("./auth.context"), exports);
|
|
7
|
+
tslib_1.__exportStar(require("./auth.nest.util"), exports);
|
|
7
8
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/firebase-server/src/lib/auth/index.ts"],"names":[],"mappings":";;;AAAA,yDAA+B;AAC/B,sDAA4B;AAC5B,yDAA+B"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/firebase-server/src/lib/auth/index.ts"],"names":[],"mappings":";;;AAAA,yDAA+B;AAC/B,sDAA4B;AAC5B,yDAA+B;AAC/B,2DAAiC"}
|
|
@@ -3,5 +3,5 @@ import * as functions from 'firebase-functions';
|
|
|
3
3
|
export declare function unauthenticatedContextHasNoAuthData(): functions.auth.HttpsError;
|
|
4
4
|
export declare function unauthenticatedContextHasNoUidError(): functions.auth.HttpsError;
|
|
5
5
|
export declare function preconditionConflictError(message: string): functions.auth.HttpsError;
|
|
6
|
-
export declare function forbiddenError(serverError
|
|
7
|
-
export declare function badRequestError(serverError
|
|
6
|
+
export declare function forbiddenError(serverError?: ServerError): functions.auth.HttpsError;
|
|
7
|
+
export declare function badRequestError(serverError?: ServerError): functions.auth.HttpsError;
|
|
@@ -16,11 +16,11 @@ function preconditionConflictError(message) {
|
|
|
16
16
|
exports.preconditionConflictError = preconditionConflictError;
|
|
17
17
|
// MARK: General Errors
|
|
18
18
|
function forbiddenError(serverError) {
|
|
19
|
-
return new functions.https.HttpsError('unauthenticated', serverError.message || 'forbidden', serverError);
|
|
19
|
+
return new functions.https.HttpsError('unauthenticated', (serverError === null || serverError === void 0 ? void 0 : serverError.message) || 'forbidden', serverError);
|
|
20
20
|
}
|
|
21
21
|
exports.forbiddenError = forbiddenError;
|
|
22
22
|
function badRequestError(serverError) {
|
|
23
|
-
return new functions.https.HttpsError('invalid-argument', serverError.message || 'bad request', serverError);
|
|
23
|
+
return new functions.https.HttpsError('invalid-argument', (serverError === null || serverError === void 0 ? void 0 : serverError.message) || 'bad request', serverError);
|
|
24
24
|
}
|
|
25
25
|
exports.badRequestError = badRequestError;
|
|
26
26
|
//# sourceMappingURL=error.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error.js","sourceRoot":"","sources":["../../../../../../packages/firebase-server/src/lib/function/error.ts"],"names":[],"mappings":";;;AACA,gDAAgD;AAEhD,SAAgB,mCAAmC;IACjD,OAAO,IAAI,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,iBAAiB,EAAE,yBAAyB,CAAC,CAAC;AACtF,CAAC;AAFD,kFAEC;AAED,SAAgB,mCAAmC;IACjD,OAAO,IAAI,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,iBAAiB,EAAE,kBAAkB,CAAC,CAAC;AAC/E,CAAC;AAFD,kFAEC;AAED,SAAgB,yBAAyB,CAAC,OAAe;IACvD,OAAO,IAAI,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,qBAAqB,EAAE,OAAO,CAAC,CAAC;AACxE,CAAC;AAFD,8DAEC;AAED,uBAAuB;AACvB,SAAgB,cAAc,CAAC,
|
|
1
|
+
{"version":3,"file":"error.js","sourceRoot":"","sources":["../../../../../../packages/firebase-server/src/lib/function/error.ts"],"names":[],"mappings":";;;AACA,gDAAgD;AAEhD,SAAgB,mCAAmC;IACjD,OAAO,IAAI,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,iBAAiB,EAAE,yBAAyB,CAAC,CAAC;AACtF,CAAC;AAFD,kFAEC;AAED,SAAgB,mCAAmC;IACjD,OAAO,IAAI,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,iBAAiB,EAAE,kBAAkB,CAAC,CAAC;AAC/E,CAAC;AAFD,kFAEC;AAED,SAAgB,yBAAyB,CAAC,OAAe;IACvD,OAAO,IAAI,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,qBAAqB,EAAE,OAAO,CAAC,CAAC;AACxE,CAAC;AAFD,8DAEC;AAED,uBAAuB;AACvB,SAAgB,cAAc,CAAC,WAAyB;IACtD,OAAO,IAAI,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,OAAO,KAAI,WAAW,EAAE,WAAW,CAAC,CAAC;AAC7G,CAAC;AAFD,wCAEC;AAED,SAAgB,eAAe,CAAC,WAAyB;IACvD,OAAO,IAAI,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,OAAO,KAAI,aAAa,EAAE,WAAW,CAAC,CAAC;AAChH,CAAC;AAFD,0CAEC"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const tslib_1 = require("tslib");
|
|
4
|
-
tslib_1.__exportStar(require("./model.param"), exports);
|
|
5
4
|
tslib_1.__exportStar(require("./permission.error"), exports);
|
|
6
5
|
tslib_1.__exportStar(require("./create.model.function"), exports);
|
|
7
6
|
tslib_1.__exportStar(require("./update.model.function"), exports);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../packages/firebase-server/src/lib/nest/model/index.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../packages/firebase-server/src/lib/nest/model/index.ts"],"names":[],"mappings":";;;AAAA,6DAAmC;AACnC,kEAAwC;AACxC,kEAAwC;AACxC,kEAAwC"}
|
package/test/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,33 @@
|
|
|
2
2
|
|
|
3
3
|
This file was generated using [@jscutlery/semver](https://github.com/jscutlery/semver).
|
|
4
4
|
|
|
5
|
+
## [7.13.1](https://github.com/dereekb/dbx-components/compare/v7.13.0-dev...v7.13.1) (2022-06-15)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
### Bug Fixes
|
|
9
|
+
|
|
10
|
+
* fixed createTestFunctionContextOptions() authData typing ([ba017cd](https://github.com/dereekb/dbx-components/commit/ba017cd5c48fe96277c8c40a6c24d0f65d937214))
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
# [7.13.0](https://github.com/dereekb/dbx-components/compare/v7.12.0-dev...v7.13.0) (2022-06-14)
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
### Features
|
|
18
|
+
|
|
19
|
+
* added describeCloudFunctionTest() to handle a map of functions ([5545149](https://github.com/dereekb/dbx-components/commit/55451495c305726d89973613d7d5b9a5be9871bc))
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
# [7.12.0](https://github.com/dereekb/dbx-components/compare/v7.11.2-dev...v7.12.0) (2022-06-14)
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
### Features
|
|
27
|
+
|
|
28
|
+
* added isAdminOrTargetUserInRequestData() ([c597eb9](https://github.com/dereekb/dbx-components/commit/c597eb9ce968ae5e8d64f3bc2f6ba6520cb11681))
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
|
|
5
32
|
## [7.11.2](https://github.com/dereekb/dbx-components/compare/v7.11.1-dev...v7.11.2) (2022-06-13)
|
|
6
33
|
|
|
7
34
|
|
package/test/package.json
CHANGED
|
@@ -1,36 +1,36 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dereekb/firebase-server/test",
|
|
3
|
-
"version": "7.
|
|
3
|
+
"version": "7.13.1",
|
|
4
4
|
"main": "./src/index.js",
|
|
5
5
|
"typings": "./src/index.d.ts",
|
|
6
6
|
"dependencies": {},
|
|
7
7
|
"peerDependencies": {
|
|
8
|
-
"@dereekb/firebase": "7.
|
|
8
|
+
"@dereekb/firebase": "7.13.1",
|
|
9
9
|
"rxjs": "^7.0.0",
|
|
10
10
|
"rxfire": "^6.0.3",
|
|
11
11
|
"firebase": "^9.8.0",
|
|
12
|
-
"@dereekb/util": "7.
|
|
12
|
+
"@dereekb/util": "7.13.1",
|
|
13
13
|
"make-error": "^1.3.0",
|
|
14
14
|
"ts-essentials": "^9.1.2",
|
|
15
15
|
"extra-set": "^2.2.11",
|
|
16
|
-
"@dereekb/rxjs": "7.
|
|
16
|
+
"@dereekb/rxjs": "7.13.1",
|
|
17
17
|
"ms": "^3.0.0-canary.1",
|
|
18
|
-
"@dereekb/model": "7.
|
|
18
|
+
"@dereekb/model": "7.13.1",
|
|
19
19
|
"class-transformer": "^0.5.1",
|
|
20
20
|
"class-validator": "^0.13.2",
|
|
21
|
-
"@dereekb/date": "7.
|
|
21
|
+
"@dereekb/date": "7.13.1",
|
|
22
22
|
"date-fns": "^2.28.0",
|
|
23
23
|
"date-fns-tz": "^1.3.0",
|
|
24
24
|
"rrule": "2.7.0",
|
|
25
|
-
"@dereekb/util/test": "7.
|
|
25
|
+
"@dereekb/util/test": "7.13.1",
|
|
26
26
|
"firebase-admin": "^10.3.0",
|
|
27
27
|
"jsonwebtoken": "^8.0.0",
|
|
28
28
|
"firebase-functions": "^3.21.2",
|
|
29
29
|
"@nestjs/common": "^8.4.0",
|
|
30
30
|
"@google-cloud/firestore": "^4.15.1",
|
|
31
|
-
"@dereekb/firebase/test": "7.
|
|
32
|
-
"@dereekb/firebase-server": "7.
|
|
33
|
-
"@dereekb/nestjs": "7.
|
|
31
|
+
"@dereekb/firebase/test": "7.13.1",
|
|
32
|
+
"@dereekb/firebase-server": "7.13.1",
|
|
33
|
+
"@dereekb/nestjs": "7.13.1",
|
|
34
34
|
"@nestjs/config": "^2.0.1",
|
|
35
35
|
"@nestjs/core": "^8.4.0",
|
|
36
36
|
"@nestjs/platform-express": "^8.4.0",
|
|
@@ -8,6 +8,7 @@ import { DecodedIdToken } from 'firebase-admin/lib/auth/token-verifier';
|
|
|
8
8
|
import { Auth } from 'firebase-admin/lib/auth/auth';
|
|
9
9
|
import { CallableContextOptions, ContextOptions, WrappedFunction, WrappedScheduledFunction } from 'firebase-functions-test/lib/main';
|
|
10
10
|
import { EventContext } from 'firebase-functions/lib/cloud-functions';
|
|
11
|
+
import { AuthData } from 'firebase-functions/lib/common/providers/https';
|
|
11
12
|
export declare type CallCloudFunction<I = any> = WrappedScheduledFunction | WrappedFunction<I>;
|
|
12
13
|
export declare type CallCloudFunctionParams<F> = F extends WrappedFunction<infer I> ? I : unknown;
|
|
13
14
|
/**
|
|
@@ -88,6 +89,10 @@ export declare type AuthorizedUserTestContextFactoryConfig<PI extends FirebaseAd
|
|
|
88
89
|
export interface AuthorizedUserTestContextFactoryParams<PI extends FirebaseAdminTestContext = FirebaseAdminTestContext, PF extends JestTestContextFixture<PI> = JestTestContextFixture<PI>> {
|
|
89
90
|
f: PF;
|
|
90
91
|
user?: CreateRequest;
|
|
92
|
+
/**
|
|
93
|
+
* Optional template details.
|
|
94
|
+
*/
|
|
95
|
+
template?: AuthorizedUserTestContextDetailsTemplate;
|
|
91
96
|
}
|
|
92
97
|
/**
|
|
93
98
|
* Creates a new Jest Context that has a random user for authorization for use in firebase server tests.
|
|
@@ -114,6 +119,14 @@ export declare type DecodedFirestoreCreateCustomTokenResult = {
|
|
|
114
119
|
* @returns
|
|
115
120
|
*/
|
|
116
121
|
export declare function createTestFunctionContextOptions(auth: Auth, userRecord: UserRecord): Promise<CallableContextOptions>;
|
|
122
|
+
/**
|
|
123
|
+
* Creates AuthData from the input auth and user record.
|
|
124
|
+
*
|
|
125
|
+
* @param auth
|
|
126
|
+
* @param userRecord
|
|
127
|
+
* @returns
|
|
128
|
+
*/
|
|
129
|
+
export declare function createTestFunctionContextAuthData(auth: Auth, userRecord: UserRecord): Promise<AuthData>;
|
|
117
130
|
/**
|
|
118
131
|
* Creates and decodes a firestore token used for testing.
|
|
119
132
|
*
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.testFirestoreClaimsFromUserRecord = exports.decodeEncodedCreateCustomTokenResult = exports.createEncodedTestFirestoreTokenForUserRecord = exports.createTestFirestoreTokenForUserRecord = exports.createTestFunctionContextOptions = exports.testUidFactory = exports.authorizedUserContextFactory = exports.authorizedUserContext = exports.AuthorizedUserTestContextInstance = exports.AuthorizedUserTestContextFixture = void 0;
|
|
3
|
+
exports.testFirestoreClaimsFromUserRecord = exports.decodeEncodedCreateCustomTokenResult = exports.createEncodedTestFirestoreTokenForUserRecord = exports.createTestFirestoreTokenForUserRecord = exports.createTestFunctionContextAuthData = exports.createTestFunctionContextOptions = exports.testUidFactory = exports.authorizedUserContextFactory = exports.authorizedUserContext = exports.AuthorizedUserTestContextInstance = exports.AuthorizedUserTestContextFixture = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const util_1 = require("@dereekb/util");
|
|
6
6
|
const test_1 = require("@dereekb/util/test");
|
|
@@ -72,7 +72,7 @@ function authorizedUserContextFactory(config) {
|
|
|
72
72
|
buildTests,
|
|
73
73
|
initInstance: () => tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
74
74
|
const uid = (inputUser === null || inputUser === void 0 ? void 0 : inputUser.uid) || makeUid();
|
|
75
|
-
const { details, claims } = makeUserDetails(uid, params);
|
|
75
|
+
const { details, claims } = Object.assign(Object.assign({}, makeUserDetails(uid, params)), params.template);
|
|
76
76
|
const auth = f.instance.auth;
|
|
77
77
|
const userRecord = yield auth.createUser(Object.assign(Object.assign({ uid, displayName: 'Test Person' }, details), inputUser));
|
|
78
78
|
if (claims) {
|
|
@@ -108,14 +108,32 @@ exports.testUidFactory = (0, util_1.mapGetter)((0, util_1.incrementingNumberFact
|
|
|
108
108
|
*/
|
|
109
109
|
function createTestFunctionContextOptions(auth, userRecord) {
|
|
110
110
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
111
|
-
const
|
|
111
|
+
const authData = yield createTestFunctionContextAuthData(auth, userRecord);
|
|
112
112
|
const contextOptions = {
|
|
113
|
-
auth:
|
|
113
|
+
auth: authData
|
|
114
114
|
};
|
|
115
115
|
return contextOptions;
|
|
116
116
|
});
|
|
117
117
|
}
|
|
118
118
|
exports.createTestFunctionContextOptions = createTestFunctionContextOptions;
|
|
119
|
+
/**
|
|
120
|
+
* Creates AuthData from the input auth and user record.
|
|
121
|
+
*
|
|
122
|
+
* @param auth
|
|
123
|
+
* @param userRecord
|
|
124
|
+
* @returns
|
|
125
|
+
*/
|
|
126
|
+
function createTestFunctionContextAuthData(auth, userRecord) {
|
|
127
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
128
|
+
const token = yield createTestFirestoreTokenForUserRecord(auth, userRecord);
|
|
129
|
+
const authData = {
|
|
130
|
+
uid: token.uid,
|
|
131
|
+
token
|
|
132
|
+
};
|
|
133
|
+
return authData;
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
exports.createTestFunctionContextAuthData = createTestFunctionContextAuthData;
|
|
119
137
|
/**
|
|
120
138
|
* Creates and decodes a firestore token used for testing.
|
|
121
139
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"firebase.admin.auth.js","sourceRoot":"","sources":["../../../../../../../packages/firebase-server/test/src/lib/firebase/firebase.admin.auth.ts"],"names":[],"mappings":";;;;AACA,wCAAoI;AACpI,6CAAwH;AAMxH,+CAAmD;
|
|
1
|
+
{"version":3,"file":"firebase.admin.auth.js","sourceRoot":"","sources":["../../../../../../../packages/firebase-server/test/src/lib/firebase/firebase.admin.auth.ts"],"names":[],"mappings":"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"}
|
|
@@ -30,11 +30,11 @@ export declare class ModelTestContextInstance<T, D extends FirestoreDocument<T>
|
|
|
30
30
|
/**
|
|
31
31
|
* authorizedUserContext/authorizedUserContextFactory parameters.
|
|
32
32
|
*/
|
|
33
|
-
export interface ModelTestContextFactoryParams<T, D extends FirestoreDocument<T> = FirestoreDocument<T>, C = any, PI extends FirebaseAdminTestContext = FirebaseAdminTestContext, PF extends JestTestContextFixture<PI> = JestTestContextFixture<PI>, I extends ModelTestContextInstance<T, D, PI> = ModelTestContextInstance<T, D, PI>, F extends ModelTestContextFixture<T, D, PI, PF, I> = ModelTestContextFixture<T, D, PI, PF, I>> {
|
|
33
|
+
export interface ModelTestContextFactoryParams<T, D extends FirestoreDocument<T> = FirestoreDocument<T>, C = any, PI extends FirebaseAdminTestContext = FirebaseAdminTestContext, PF extends JestTestContextFixture<PI> = JestTestContextFixture<PI>, I extends ModelTestContextInstance<T, D, PI> = ModelTestContextInstance<T, D, PI>, F extends ModelTestContextFixture<T, D, PI, PF, I> = ModelTestContextFixture<T, D, PI, PF, I>, CL extends FirestoreCollection<T, D> = FirestoreCollection<T, D>> {
|
|
34
34
|
/**
|
|
35
35
|
* Creates a ModelTestContextInstanceDelegate from the parent instance.
|
|
36
36
|
*/
|
|
37
|
-
getCollection: (parentInstance: PI, config: C) =>
|
|
37
|
+
getCollection: (parentInstance: PI, config: C) => CL;
|
|
38
38
|
/**
|
|
39
39
|
* Creates the custom fixture. If not defined, a ModelTestContextFixture is created.
|
|
40
40
|
*/
|
|
@@ -42,11 +42,11 @@ export interface ModelTestContextFactoryParams<T, D extends FirestoreDocument<T>
|
|
|
42
42
|
/**
|
|
43
43
|
* Optional function to create a DocumentReference.
|
|
44
44
|
*/
|
|
45
|
-
makeRef?: (collection:
|
|
45
|
+
makeRef?: (collection: CL, config: C, parentInstance: PI) => Promise<DocumentReference<T>>;
|
|
46
46
|
/**
|
|
47
47
|
* Custom make instance function. If not defined, a ModelTestContextInstance will be generated.
|
|
48
48
|
*/
|
|
49
|
-
makeInstance?: (collection:
|
|
49
|
+
makeInstance?: (collection: CL, ref: DocumentReference<T>, testInstance: PI) => PromiseOrValue<I>;
|
|
50
50
|
/**
|
|
51
51
|
* Optional function to initialize the document for this instance.
|
|
52
52
|
*/
|
|
@@ -58,4 +58,4 @@ export declare type ModelTestContextParams<C = any, PI extends FirebaseAdminTest
|
|
|
58
58
|
/**
|
|
59
59
|
* Creates a new Jest Context that has a random user for authorization for use in firebase server tests.
|
|
60
60
|
*/
|
|
61
|
-
export declare function modelTestContextFactory<T, D extends FirestoreDocument<T> = FirestoreDocument<T>, C = any, PI extends FirebaseAdminTestContext = FirebaseAdminTestContext, PF extends JestTestContextFixture<PI> = JestTestContextFixture<PI>, I extends ModelTestContextInstance<T, D, PI> = ModelTestContextInstance<T, D, PI>, F extends ModelTestContextFixture<T, D, PI, PF, I> = ModelTestContextFixture<T, D, PI, PF, I>>(config: ModelTestContextFactoryParams<T, D, C, PI, PF, I, F>): (params: ModelTestContextParams<C, PI, PF>, buildTests: (u: F) => void) => void;
|
|
61
|
+
export declare function modelTestContextFactory<T, D extends FirestoreDocument<T> = FirestoreDocument<T>, C = any, PI extends FirebaseAdminTestContext = FirebaseAdminTestContext, PF extends JestTestContextFixture<PI> = JestTestContextFixture<PI>, I extends ModelTestContextInstance<T, D, PI> = ModelTestContextInstance<T, D, PI>, F extends ModelTestContextFixture<T, D, PI, PF, I> = ModelTestContextFixture<T, D, PI, PF, I>, CL extends FirestoreCollection<T, D> = FirestoreCollection<T, D>>(config: ModelTestContextFactoryParams<T, D, C, PI, PF, I, F, CL>): (params: ModelTestContextParams<C, PI, PF>, buildTests: (u: F) => void) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"firebase.admin.collection.js","sourceRoot":"","sources":["../../../../../../../packages/firebase-server/test/src/lib/firebase/firebase.admin.collection.ts"],"names":[],"mappings":";;;;AAEA,6CAAwH;AAaxH,MAAa,uBAAyS,SAAQ,0CAA0C;IACtW,qCAAqC;IACrC,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC;IAClC,CAAC;IAED,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;IACnC,CAAC;IAED,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;IACnC,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;IAChC,CAAC;CACF;AAjBD,0DAiBC;AAED,MAAa,wBAAwB;IACnC,YAAqB,UAAqC,EAAW,GAAyB,EAAW,WAAe;QAAnG,eAAU,GAAV,UAAU,CAA2B;QAAW,QAAG,GAAH,GAAG,CAAsB;QAAW,gBAAW,GAAX,WAAW,CAAI;IAAG,CAAC;IAE5H,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;IACrB,CAAC;IAED,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;IACvB,CAAC;IAED,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,GAAG,CAAC;IAClB,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,UAAU,CAAC,gBAAgB,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACnE,CAAC;CACF;AAlBD,4DAkBC;AAkCD;;GAEG;AACH,SAAgB,uBAAuB,CACrC,
|
|
1
|
+
{"version":3,"file":"firebase.admin.collection.js","sourceRoot":"","sources":["../../../../../../../packages/firebase-server/test/src/lib/firebase/firebase.admin.collection.ts"],"names":[],"mappings":";;;;AAEA,6CAAwH;AAaxH,MAAa,uBAAyS,SAAQ,0CAA0C;IACtW,qCAAqC;IACrC,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC;IAClC,CAAC;IAED,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;IACnC,CAAC;IAED,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;IACnC,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;IAChC,CAAC;CACF;AAjBD,0DAiBC;AAED,MAAa,wBAAwB;IACnC,YAAqB,UAAqC,EAAW,GAAyB,EAAW,WAAe;QAAnG,eAAU,GAAV,UAAU,CAA2B;QAAW,QAAG,GAAH,GAAG,CAAsB;QAAW,gBAAW,GAAX,WAAW,CAAI;IAAG,CAAC;IAE5H,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;IACrB,CAAC;IAED,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;IACvB,CAAC;IAED,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,GAAG,CAAC;IAClB,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,UAAU,CAAC,gBAAgB,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACnE,CAAC;CACF;AAlBD,4DAkBC;AAkCD;;GAEG;AACH,SAAgB,uBAAuB,CACrC,MAAgE;IAEhE,MAAM,EAAE,aAAa,EAAE,OAAO,GAAG,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,gBAAgB,EAAE,CAAC,WAAW,EAAE,CAAC,WAAW,EAAE,YAAY,GAAG,CAAC,UAAU,EAAE,GAAG,EAAE,YAAY,EAAE,EAAE,CAAC,IAAI,wBAAwB,CAAC,UAAU,EAAE,GAAG,EAAE,YAAY,CAAM,EAAE,WAAW,GAAG,CAAC,CAAK,EAAE,EAAE,CAAC,IAAI,uBAAuB,CAAkB,CAAC,CAAC,EAAE,YAAY,EAAE,GAAG,MAAM,CAAC;IAEhU,OAAO,CAAC,MAAyC,EAAE,UAA0B,EAAE,EAAE;QAC/E,MAAM,EAAE,CAAC,EAAE,GAAG,MAAM,CAAC;QACrB,OAAO,IAAA,4BAAqB,EAAO;YACjC,OAAO,EAAE,WAAW,CAAC,CAAC,CAAM;YAC5B,UAAU;YACV,YAAY,EAAE,GAAS,EAAE;gBACvB,MAAM,cAAc,GAAG,CAAC,CAAC,QAAQ,CAAC;gBAClC,MAAM,UAAU,GAAG,aAAa,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;gBACzD,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC;gBAC9D,MAAM,QAAQ,GAAM,MAAM,YAAY,CAAC,UAAU,EAAE,GAAG,EAAE,cAAc,CAAC,CAAC;gBAExE,IAAI,YAAY,EAAE;oBAChB,MAAM,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;iBACtC;gBAED,OAAO,QAAQ,CAAC;YAClB,CAAC,CAAA;SACF,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC;AAxBD,0DAwBC"}
|
|
@@ -1,17 +1,33 @@
|
|
|
1
1
|
import { NestApplicationRunnableHttpFunctionFactory } from '@dereekb/firebase-server';
|
|
2
2
|
import { FirebaseAdminFunctionNestTestContext } from './firebase.admin.nest.function';
|
|
3
3
|
import { WrappedCloudFunctionV1 } from './firebase.function';
|
|
4
|
-
export interface
|
|
4
|
+
export interface CloudFunctionTestBaseConfig {
|
|
5
5
|
f: FirebaseAdminFunctionNestTestContext;
|
|
6
|
+
}
|
|
7
|
+
export interface CloudFunctionTestSingleConfig<I> extends CloudFunctionTestBaseConfig {
|
|
6
8
|
fn: NestApplicationRunnableHttpFunctionFactory<I>;
|
|
7
9
|
}
|
|
10
|
+
export declare type CloudFunctionTestSingleFunction<I> = (fn: WrappedCloudFunctionV1<I>) => void;
|
|
11
|
+
export declare type CloudFunctionTestConfigMapObject = {
|
|
12
|
+
[key: string]: NestApplicationRunnableHttpFunctionFactory<any>;
|
|
13
|
+
};
|
|
14
|
+
export interface CloudFunctionTestMultipleConfig<I, T extends CloudFunctionTestConfigMapObject> extends CloudFunctionTestBaseConfig {
|
|
15
|
+
fns: T;
|
|
16
|
+
}
|
|
17
|
+
export declare type CloudFunctionTestMultipleFixture<T extends CloudFunctionTestConfigMapObject> = {
|
|
18
|
+
[K in keyof T as K extends string ? `${K}CloudFn` : never]: T[K] extends NestApplicationRunnableHttpFunctionFactory<infer I> ? WrappedCloudFunctionV1<I> : never;
|
|
19
|
+
};
|
|
20
|
+
export declare type CloudFunctionTestMultipleFunction<T extends CloudFunctionTestConfigMapObject> = (fn: CloudFunctionTestMultipleFixture<T>) => void;
|
|
21
|
+
export declare function isCloudFunctionTestSingleConfig<I, T extends CloudFunctionTestConfigMapObject>(config: CloudFunctionTestSingleConfig<I> | CloudFunctionTestMultipleConfig<I, T>): config is CloudFunctionTestSingleConfig<I>;
|
|
8
22
|
/**
|
|
9
23
|
* Used to provide a test builder that exposes a WrappedCloudFunction using the input configuration.
|
|
10
24
|
*
|
|
11
25
|
* @param config
|
|
12
26
|
* @param buildTests
|
|
13
27
|
*/
|
|
14
|
-
export declare function cloudFunctionTest<I>(config:
|
|
28
|
+
export declare function cloudFunctionTest<I, T extends CloudFunctionTestConfigMapObject>(config: CloudFunctionTestMultipleConfig<I, T>, buildTests: CloudFunctionTestMultipleFunction<T>): void;
|
|
29
|
+
export declare function cloudFunctionTest<I>(config: CloudFunctionTestSingleConfig<I>, buildTests: CloudFunctionTestSingleFunction<I>): void;
|
|
30
|
+
export declare function cloudFunctionTest<I, T extends CloudFunctionTestConfigMapObject>(config: CloudFunctionTestSingleConfig<I> | CloudFunctionTestMultipleConfig<I, T>, buildTests: CloudFunctionTestSingleFunction<I> | CloudFunctionTestMultipleFunction<T>): void;
|
|
15
31
|
/**
|
|
16
32
|
* Convenience function that calls describe and cloudFunctionContext together.
|
|
17
33
|
*
|
|
@@ -19,4 +35,6 @@ export declare function cloudFunctionTest<I>(config: CloudFunctionTestConfig<I>,
|
|
|
19
35
|
* @param config
|
|
20
36
|
* @param buildTests
|
|
21
37
|
*/
|
|
22
|
-
export declare function describeCloudFunctionTest<I>(label: string, config:
|
|
38
|
+
export declare function describeCloudFunctionTest<I, T extends CloudFunctionTestConfigMapObject>(label: string, config: CloudFunctionTestMultipleConfig<I, T>, buildTests: CloudFunctionTestMultipleFunction<T>): void;
|
|
39
|
+
export declare function describeCloudFunctionTest<I>(clabel: string, onfig: CloudFunctionTestSingleConfig<I>, buildTests: CloudFunctionTestSingleFunction<I>): void;
|
|
40
|
+
export declare function describeCloudFunctionTest<I, T extends CloudFunctionTestConfigMapObject>(label: string, config: CloudFunctionTestSingleConfig<I> | CloudFunctionTestMultipleConfig<I, T>, buildTests: CloudFunctionTestSingleFunction<I> | CloudFunctionTestMultipleFunction<T>): void;
|
|
@@ -1,31 +1,37 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.describeCloudFunctionTest = exports.cloudFunctionTest = void 0;
|
|
3
|
+
exports.describeCloudFunctionTest = exports.cloudFunctionTest = exports.isCloudFunctionTestSingleConfig = void 0;
|
|
4
4
|
const test_1 = require("@dereekb/util/test");
|
|
5
5
|
const firebase_admin_nest_function_1 = require("./firebase.admin.nest.function");
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
6
|
+
const util_1 = require("@dereekb/util");
|
|
7
|
+
function isCloudFunctionTestSingleConfig(config) {
|
|
8
|
+
const isSingle = Boolean(config.fn);
|
|
9
|
+
return isSingle;
|
|
10
|
+
}
|
|
11
|
+
exports.isCloudFunctionTestSingleConfig = isCloudFunctionTestSingleConfig;
|
|
12
12
|
function cloudFunctionTest(config, buildTests) {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
13
|
+
if (isCloudFunctionTestSingleConfig(config)) {
|
|
14
|
+
const { f, fn } = config;
|
|
15
|
+
(0, test_1.useJestFunctionFixture)({
|
|
16
|
+
fn: () => {
|
|
17
|
+
const x = (0, firebase_admin_nest_function_1.wrapCloudFunctionForNestTestsGetter)(f, fn)();
|
|
18
|
+
return x;
|
|
19
|
+
}
|
|
20
|
+
}, buildTests);
|
|
21
|
+
}
|
|
22
|
+
else {
|
|
23
|
+
const { f, fns: inputFns } = config;
|
|
24
|
+
const mappedFns = (0, util_1.mapObjectMap)(inputFns, (fn) => () => (0, firebase_admin_nest_function_1.wrapCloudFunctionForNestTestsGetter)(f, fn)());
|
|
25
|
+
const fns = {};
|
|
26
|
+
Object.keys(mappedFns).forEach((key) => {
|
|
27
|
+
fns[`${key}CloudFn`] = mappedFns[key];
|
|
28
|
+
});
|
|
29
|
+
(0, test_1.useJestFunctionMapFixture)({
|
|
30
|
+
fns
|
|
31
|
+
}, buildTests);
|
|
32
|
+
}
|
|
20
33
|
}
|
|
21
34
|
exports.cloudFunctionTest = cloudFunctionTest;
|
|
22
|
-
/**
|
|
23
|
-
* Convenience function that calls describe and cloudFunctionContext together.
|
|
24
|
-
*
|
|
25
|
-
* @param label
|
|
26
|
-
* @param config
|
|
27
|
-
* @param buildTests
|
|
28
|
-
*/
|
|
29
35
|
function describeCloudFunctionTest(label, config, buildTests) {
|
|
30
36
|
describe(label, () => {
|
|
31
37
|
cloudFunctionTest(config, buildTests);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"firebase.admin.nest.function.context.js","sourceRoot":"","sources":["../../../../../../../packages/firebase-server/test/src/lib/firebase/firebase.admin.nest.function.context.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"firebase.admin.nest.function.context.js","sourceRoot":"","sources":["../../../../../../../packages/firebase-server/test/src/lib/firebase/firebase.admin.nest.function.context.ts"],"names":[],"mappings":";;;AAAA,6CAAuF;AAEvF,iFAA2H;AAE3H,wCAA6C;AA2B7C,SAAgB,+BAA+B,CAAgD,MAAgF;IAC7K,MAAM,QAAQ,GAAG,OAAO,CAAE,MAA2C,CAAC,EAAE,CAAC,CAAC;IAC1E,OAAO,QAAQ,CAAC;AAClB,CAAC;AAHD,0EAGC;AAWD,SAAgB,iBAAiB,CAAgD,MAAgF,EAAE,UAAqF;IACtP,IAAI,+BAA+B,CAAC,MAAM,CAAC,EAAE;QAC3C,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,MAAM,CAAC;QACzB,IAAA,6BAAsB,EACpB;YACE,EAAE,EAAE,GAAG,EAAE;gBACP,MAAM,CAAC,GAAG,IAAA,kEAAmC,EAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;gBACvD,OAAO,CAAC,CAAC;YACX,CAAC;SACF,EACD,UAAgD,CACjD,CAAC;KACH;SAAM;QACL,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC;QACpC,MAAM,SAAS,GAAG,IAAA,mBAAY,EAAC,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,IAAA,kEAAmC,EAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;QACrG,MAAM,GAAG,GAAQ,EAAE,CAAC;QAEpB,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YACrC,GAAG,CAAC,GAAG,GAAG,SAAS,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;QAEH,IAAA,gCAAyB,EACvB;YACE,GAAG;SACJ,EACD,UAAiB,CAClB,CAAC;KACH;AACH,CAAC;AA5BD,8CA4BC;AAYD,SAAgB,yBAAyB,CAAgD,KAAa,EAAE,MAAgF,EAAE,UAAqF;IAC7Q,QAAQ,CAAC,KAAK,EAAE,GAAG,EAAE;QACnB,iBAAiB,CAAO,MAAM,EAAE,UAAU,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;AACL,CAAC;AAJD,8DAIC;AAED,WAAW;AACX,OAAO"}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.TargetModelParams = void 0;
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
|
-
const class_transformer_1 = require("class-transformer");
|
|
6
|
-
const class_validator_1 = require("class-validator");
|
|
7
|
-
/**
|
|
8
|
-
* Simple annotated params that
|
|
9
|
-
*/
|
|
10
|
-
class TargetModelParams {
|
|
11
|
-
}
|
|
12
|
-
tslib_1.__decorate([
|
|
13
|
-
(0, class_transformer_1.Expose)(),
|
|
14
|
-
(0, class_validator_1.IsString)(),
|
|
15
|
-
tslib_1.__metadata("design:type", String)
|
|
16
|
-
], TargetModelParams.prototype, "key", void 0);
|
|
17
|
-
exports.TargetModelParams = TargetModelParams;
|
|
18
|
-
//# sourceMappingURL=model.param.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"model.param.js","sourceRoot":"","sources":["../../../../../../../packages/firebase-server/src/lib/nest/model/model.param.ts"],"names":[],"mappings":";;;;AACA,yDAA2C;AAC3C,qDAA2C;AAE3C;;GAEG;AACH,MAAa,iBAAiB;CAI7B;AADC;IAFC,IAAA,0BAAM,GAAE;IACR,IAAA,0BAAQ,GAAE;;8CACa;AAH1B,8CAIC"}
|