@dereekb/firebase-server 3.0.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/CHANGELOG.md +15 -0
- package/README.md +7 -0
- package/package.json +34 -0
- package/src/index.d.ts +2 -0
- package/src/index.js +6 -0
- package/src/index.js.map +1 -0
- package/src/lib/auth/auth.nest.d.ts +28 -0
- package/src/lib/auth/auth.nest.js +56 -0
- package/src/lib/auth/auth.nest.js.map +1 -0
- package/src/lib/auth/auth.service.d.ts +161 -0
- package/src/lib/auth/auth.service.js +125 -0
- package/src/lib/auth/auth.service.js.map +1 -0
- package/src/lib/auth/auth.user.d.ts +0 -0
- package/src/lib/auth/auth.user.js +2 -0
- package/src/lib/auth/auth.user.js.map +1 -0
- package/src/lib/auth/index.d.ts +2 -0
- package/src/lib/auth/index.js +7 -0
- package/src/lib/auth/index.js.map +1 -0
- package/src/lib/firebase/firebase.nest.d.ts +7 -0
- package/src/lib/firebase/firebase.nest.js +17 -0
- package/src/lib/firebase/firebase.nest.js.map +1 -0
- package/src/lib/firebase/index.d.ts +1 -0
- package/src/lib/firebase/index.js +5 -0
- package/src/lib/firebase/index.js.map +1 -0
- package/src/lib/firestore/driver.accessor.batch.d.ts +31 -0
- package/src/lib/firestore/driver.accessor.batch.js +65 -0
- package/src/lib/firestore/driver.accessor.batch.js.map +1 -0
- package/src/lib/firestore/driver.accessor.d.ts +11 -0
- package/src/lib/firestore/driver.accessor.default.d.ts +15 -0
- package/src/lib/firestore/driver.accessor.default.js +45 -0
- package/src/lib/firestore/driver.accessor.default.js.map +1 -0
- package/src/lib/firestore/driver.accessor.js +53 -0
- package/src/lib/firestore/driver.accessor.js.map +1 -0
- package/src/lib/firestore/driver.accessor.transaction.d.ts +31 -0
- package/src/lib/firestore/driver.accessor.transaction.js +64 -0
- package/src/lib/firestore/driver.accessor.transaction.js.map +1 -0
- package/src/lib/firestore/driver.d.ts +4 -0
- package/src/lib/firestore/driver.js +15 -0
- package/src/lib/firestore/driver.js.map +1 -0
- package/src/lib/firestore/driver.query.d.ts +6 -0
- package/src/lib/firestore/driver.query.js +40 -0
- package/src/lib/firestore/driver.query.js.map +1 -0
- package/src/lib/firestore/firestore.d.ts +5 -0
- package/src/lib/firestore/firestore.js +10 -0
- package/src/lib/firestore/firestore.js.map +1 -0
- package/src/lib/firestore/firestore.nest.d.ts +44 -0
- package/src/lib/firestore/firestore.nest.js +81 -0
- package/src/lib/firestore/firestore.nest.js.map +1 -0
- package/src/lib/firestore/index.d.ts +5 -0
- package/src/lib/firestore/index.js +9 -0
- package/src/lib/firestore/index.js.map +1 -0
- package/src/lib/function/assert.d.ts +2 -0
- package/src/lib/function/assert.js +12 -0
- package/src/lib/function/assert.js.map +1 -0
- package/src/lib/function/context.d.ts +4 -0
- package/src/lib/function/context.js +16 -0
- package/src/lib/function/context.js.map +1 -0
- package/src/lib/function/error.d.ts +4 -0
- package/src/lib/function/error.js +17 -0
- package/src/lib/function/error.js.map +1 -0
- package/src/lib/function/index.d.ts +4 -0
- package/src/lib/function/index.js +8 -0
- package/src/lib/function/index.js.map +1 -0
- package/src/lib/function/type.d.ts +5 -0
- package/src/lib/function/type.js +3 -0
- package/src/lib/function/type.js.map +1 -0
- package/src/lib/index.d.ts +5 -0
- package/src/lib/index.js +9 -0
- package/src/lib/index.js.map +1 -0
- package/src/lib/nest/app.d.ts +36 -0
- package/src/lib/nest/app.js +71 -0
- package/src/lib/nest/app.js.map +1 -0
- package/src/lib/nest/function/context.d.ts +12 -0
- package/src/lib/nest/function/context.js +12 -0
- package/src/lib/nest/function/context.js.map +1 -0
- package/src/lib/nest/function/index.d.ts +4 -0
- package/src/lib/nest/function/index.js +8 -0
- package/src/lib/nest/function/index.js.map +1 -0
- package/src/lib/nest/function/nest.d.ts +91 -0
- package/src/lib/nest/function/nest.js +74 -0
- package/src/lib/nest/function/nest.js.map +1 -0
- package/src/lib/nest/function/nest.utility.d.ts +10 -0
- package/src/lib/nest/function/nest.utility.js +23 -0
- package/src/lib/nest/function/nest.utility.js.map +1 -0
- package/src/lib/nest/function/transform.d.ts +10 -0
- package/src/lib/nest/function/transform.js +27 -0
- package/src/lib/nest/function/transform.js.map +1 -0
- package/src/lib/nest/index.d.ts +2 -0
- package/src/lib/nest/index.js +6 -0
- package/src/lib/nest/index.js.map +1 -0
- package/src/test/firebase/firebase.admin.auth.d.ts +132 -0
- package/src/test/firebase/firebase.admin.auth.js +168 -0
- package/src/test/firebase/firebase.admin.auth.js.map +1 -0
- package/src/test/firebase/firebase.admin.collection.d.ts +57 -0
- package/src/test/firebase/firebase.admin.collection.js +61 -0
- package/src/test/firebase/firebase.admin.collection.js.map +1 -0
- package/src/test/firebase/firebase.admin.d.ts +73 -0
- package/src/test/firebase/firebase.admin.function.d.ts +46 -0
- package/src/test/firebase/firebase.admin.function.js +116 -0
- package/src/test/firebase/firebase.admin.function.js.map +1 -0
- package/src/test/firebase/firebase.admin.js +142 -0
- package/src/test/firebase/firebase.admin.js.map +1 -0
- package/src/test/firebase/firebase.admin.nest.d.ts +62 -0
- package/src/test/firebase/firebase.admin.nest.function.context.d.ts +22 -0
- package/src/test/firebase/firebase.admin.nest.function.context.js +35 -0
- package/src/test/firebase/firebase.admin.nest.function.context.js.map +1 -0
- package/src/test/firebase/firebase.admin.nest.function.d.ts +25 -0
- package/src/test/firebase/firebase.admin.nest.function.js +50 -0
- package/src/test/firebase/firebase.admin.nest.function.js.map +1 -0
- package/src/test/firebase/firebase.admin.nest.js +86 -0
- package/src/test/firebase/firebase.admin.nest.js.map +1 -0
- package/src/test/firebase/firebase.admin.test.server.d.ts +3 -0
- package/src/test/firebase/firebase.admin.test.server.js +39 -0
- package/src/test/firebase/firebase.admin.test.server.js.map +1 -0
- package/src/test/firebase/firebase.d.ts +30 -0
- package/src/test/firebase/firebase.js +76 -0
- package/src/test/firebase/firebase.js.map +1 -0
- package/src/test/firebase/index.d.ts +8 -0
- package/src/test/firebase/index.js +12 -0
- package/src/test/firebase/index.js.map +1 -0
- package/src/test/firestore/firestore.admin.d.ts +9 -0
- package/src/test/firestore/firestore.admin.js +14 -0
- package/src/test/firestore/firestore.admin.js.map +1 -0
- package/src/test/firestore/firestore.d.ts +22 -0
- package/src/test/firestore/firestore.fixture.admin.d.ts +6 -0
- package/src/test/firestore/firestore.fixture.admin.js +12 -0
- package/src/test/firestore/firestore.fixture.admin.js.map +1 -0
- package/src/test/firestore/firestore.js +57 -0
- package/src/test/firestore/firestore.js.map +1 -0
- package/src/test/firestore/index.d.ts +2 -0
- package/src/test/firestore/index.js +7 -0
- package/src/test/firestore/index.js.map +1 -0
- package/src/test/index.d.ts +2 -0
- package/src/test/index.js +6 -0
- package/src/test/index.js.map +1 -0
- package/test-setup.d.ts +0 -0
- package/test-setup.js +6 -0
- package/test-setup.js.map +1 -0
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.firebaseAdminFirestoreContextWithFixture = exports.firebaseAdminFirestoreContextFixture = exports.firebaseAdminTestContextFactory = exports.firebaseAdminTestBuilder = exports.AbstractFirebaseAdminTestContextInstanceChild = exports.FirebaseAdminTestContextInstance = exports.FirebaseAdminTestContextFixture = exports.wrapCloudFunctionForTests = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const admin = require("firebase-admin");
|
|
6
|
+
const firebase_1 = require("@dereekb/firebase");
|
|
7
|
+
const util_1 = require("@dereekb/util");
|
|
8
|
+
const driver_1 = require("../../lib/firestore/driver");
|
|
9
|
+
const firestore_1 = require("../firestore/firestore");
|
|
10
|
+
const firebase_2 = require("./firebase");
|
|
11
|
+
function wrapCloudFunctionForTests(wrapper, getter) {
|
|
12
|
+
return () => wrapper.wrapCloudFunction(getter());
|
|
13
|
+
}
|
|
14
|
+
exports.wrapCloudFunctionForTests = wrapCloudFunctionForTests;
|
|
15
|
+
class FirebaseAdminTestContextFixture extends util_1.AbstractJestTestContextFixture {
|
|
16
|
+
// MARK: FirebaseAdminTestContext (Forwarded)
|
|
17
|
+
get app() {
|
|
18
|
+
return this.instance.app;
|
|
19
|
+
}
|
|
20
|
+
get auth() {
|
|
21
|
+
return this.instance.auth;
|
|
22
|
+
}
|
|
23
|
+
get firestore() {
|
|
24
|
+
return this.instance.firestore;
|
|
25
|
+
}
|
|
26
|
+
get firestoreInstance() {
|
|
27
|
+
return this.instance.firestoreInstance;
|
|
28
|
+
}
|
|
29
|
+
get firestoreContext() {
|
|
30
|
+
return this.instance.firestoreContext;
|
|
31
|
+
}
|
|
32
|
+
get wrapCloudFunction() {
|
|
33
|
+
return this.instance.wrapCloudFunction;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
exports.FirebaseAdminTestContextFixture = FirebaseAdminTestContextFixture;
|
|
37
|
+
// MARK: FirebaseAdminTestBuilder
|
|
38
|
+
class FirebaseAdminTestContextInstance {
|
|
39
|
+
constructor(app) {
|
|
40
|
+
this.app = app;
|
|
41
|
+
this.getTestFirestoreInstance = (0, util_1.cachedGetter)(() => {
|
|
42
|
+
const drivers = (0, firebase_1.makeTestingFirestoreDrivers)((0, driver_1.googleCloudFirestoreDrivers)());
|
|
43
|
+
return new firestore_1.GoogleCloudTestFirestoreInstance(drivers, this.firestore);
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
get auth() {
|
|
47
|
+
return this.app.auth();
|
|
48
|
+
}
|
|
49
|
+
get firestore() {
|
|
50
|
+
return this.app.firestore();
|
|
51
|
+
}
|
|
52
|
+
get firestoreInstance() {
|
|
53
|
+
return this.getTestFirestoreInstance();
|
|
54
|
+
}
|
|
55
|
+
get firestoreContext() {
|
|
56
|
+
return this.firestoreInstance.context;
|
|
57
|
+
}
|
|
58
|
+
get wrapCloudFunction() {
|
|
59
|
+
return () => {
|
|
60
|
+
throw new Error('wrapCloudFunction is unsupported by this type.');
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
exports.FirebaseAdminTestContextInstance = FirebaseAdminTestContextInstance;
|
|
65
|
+
class AbstractFirebaseAdminTestContextInstanceChild {
|
|
66
|
+
constructor(parent) {
|
|
67
|
+
this.parent = parent;
|
|
68
|
+
}
|
|
69
|
+
// MARK: FirebaseAdminTestContext (Forwarded)
|
|
70
|
+
get app() {
|
|
71
|
+
return this.parent.app;
|
|
72
|
+
}
|
|
73
|
+
get auth() {
|
|
74
|
+
return this.parent.auth;
|
|
75
|
+
}
|
|
76
|
+
get firestore() {
|
|
77
|
+
return this.parent.firestore;
|
|
78
|
+
}
|
|
79
|
+
get firestoreInstance() {
|
|
80
|
+
return this.parent.firestoreInstance;
|
|
81
|
+
}
|
|
82
|
+
get firestoreContext() {
|
|
83
|
+
return this.parent.firestoreContext;
|
|
84
|
+
}
|
|
85
|
+
get wrapCloudFunction() {
|
|
86
|
+
return this.parent.wrapCloudFunction;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
exports.AbstractFirebaseAdminTestContextInstanceChild = AbstractFirebaseAdminTestContextInstanceChild;
|
|
90
|
+
/**
|
|
91
|
+
* A JestTestContextBuilderFunction for building firebase test context factories using firebase-admin.
|
|
92
|
+
*
|
|
93
|
+
* This can be used to easily build a testing context that sets up RulesTestEnvironment for tests that sets itself up and tears itself down.
|
|
94
|
+
*/
|
|
95
|
+
exports.firebaseAdminTestBuilder = (0, util_1.jestTestContextBuilder)({
|
|
96
|
+
buildConfig: (input) => {
|
|
97
|
+
const config = Object.assign({}, input);
|
|
98
|
+
return config;
|
|
99
|
+
},
|
|
100
|
+
buildFixture: () => new FirebaseAdminTestContextFixture(),
|
|
101
|
+
setupInstance: (config) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
102
|
+
if (!(0, firebase_2.isAdminEnvironmentInitialized)()) {
|
|
103
|
+
throw new Error('Call initFirebaseAdminTestEnvironment() from @dereekb/firebase-server was not called before using adminFirebaseTestBuilder().');
|
|
104
|
+
}
|
|
105
|
+
const projectId = (0, firebase_2.generateNewProjectId)();
|
|
106
|
+
const app = admin.initializeApp({ projectId });
|
|
107
|
+
return new FirebaseAdminTestContextInstance(app);
|
|
108
|
+
}),
|
|
109
|
+
teardownInstance: (instance, config) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
110
|
+
yield instance.app.delete(); // clean up the instance
|
|
111
|
+
})
|
|
112
|
+
});
|
|
113
|
+
exports.firebaseAdminTestContextFactory = (0, exports.firebaseAdminTestBuilder)({});
|
|
114
|
+
// MARK: Firestore Context
|
|
115
|
+
/**
|
|
116
|
+
* Convenience function to build a JestTestFirestoreContextFactory from a FirebaseAdminTestContextFactory.
|
|
117
|
+
*
|
|
118
|
+
* This is useful for composing child tests that will benefit from the firestore testing context, but want the full app available.
|
|
119
|
+
*
|
|
120
|
+
* @param factory
|
|
121
|
+
* @returns
|
|
122
|
+
*/
|
|
123
|
+
function firebaseAdminFirestoreContextFixture(factory) {
|
|
124
|
+
return (buildTests) => {
|
|
125
|
+
factory((f) => firebaseAdminFirestoreContextWithFixture(f, buildTests));
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
exports.firebaseAdminFirestoreContextFixture = firebaseAdminFirestoreContextFixture;
|
|
129
|
+
function firebaseAdminFirestoreContextWithFixture(f, buildTests) {
|
|
130
|
+
(0, util_1.useJestContextFixture)({
|
|
131
|
+
fixture: new firebase_1.TestFirestoreContextFixture(),
|
|
132
|
+
/**
|
|
133
|
+
* Build tests by passing the fixture to the testing functions.
|
|
134
|
+
*
|
|
135
|
+
* This will inject all tests and sub Jest lifecycle items.
|
|
136
|
+
*/
|
|
137
|
+
buildTests,
|
|
138
|
+
initInstance: () => f.instance.getTestFirestoreInstance()
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
exports.firebaseAdminFirestoreContextWithFixture = firebaseAdminFirestoreContextWithFixture;
|
|
142
|
+
//# sourceMappingURL=firebase.admin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"firebase.admin.js","sourceRoot":"","sources":["../../../../../../packages/firebase-server/src/test/firebase/firebase.admin.ts"],"names":[],"mappings":";;;;AAAA,wCAAwC;AAGxC,gDAA2K;AAC3K,wCAAuN;AACvN,uDAAyE;AACzE,sDAA0E;AAE1E,yCAAiF;AAkBjF,SAAgB,yBAAyB,CAAqE,OAA0C,EAAE,MAAiB;IACzK,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC,iBAAiB,CAAC,MAAM,EAAE,CAAC,CAAC;AACnD,CAAC;AAFD,8DAEC;AAUD,MAAa,+BAAgC,SAAQ,qCAAgE;IAEnH,6CAA6C;IAC7C,IAAI,GAAG;QACL,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;IAC3B,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;IAC5B,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;IACjC,CAAC;IAED,IAAI,iBAAiB;QACnB,OAAO,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC;IACzC,CAAC;IAED,IAAI,gBAAgB;QAClB,OAAO,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC;IACxC,CAAC;IAED,IAAI,iBAAiB;QACnB,OAAO,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC;IACzC,CAAC;CAEF;AA3BD,0EA2BC;AAED,iCAAiC;AACjC,MAAa,gCAAgC;IAO3C,YAAqB,GAAkB;QAAlB,QAAG,GAAH,GAAG,CAAe;QAL9B,6BAAwB,GAAG,IAAA,mBAAY,EAAC,GAAG,EAAE;YACpD,MAAM,OAAO,GAAG,IAAA,sCAA2B,EAAC,IAAA,oCAA2B,GAAE,CAAC,CAAC;YAC3E,OAAO,IAAI,4CAAgC,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QACvE,CAAC,CAAC,CAAC;IAEwC,CAAC;IAE5C,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;IACzB,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;IAC9B,CAAC;IAED,IAAI,iBAAiB;QACnB,OAAO,IAAI,CAAC,wBAAwB,EAAE,CAAC;IACzC,CAAC;IAED,IAAI,gBAAgB;QAClB,OAAO,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC;IACxC,CAAC;IAED,IAAI,iBAAiB;QACnB,OAAO,GAAG,EAAE;YACV,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;QACpE,CAAC,CAAC;IACJ,CAAC;CAEF;AA/BD,4EA+BC;AAED,MAAsB,6CAA6C;IAEjE,YAAqB,MAAS;QAAT,WAAM,GAAN,MAAM,CAAG;IAAI,CAAC;IAEnC,6CAA6C;IAC7C,IAAI,GAAG;QACL,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;IACzB,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;IAC1B,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;IAC/B,CAAC;IAED,IAAI,iBAAiB;QACnB,OAAO,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC;IACvC,CAAC;IAED,IAAI,gBAAgB;QAClB,OAAO,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC;IACtC,CAAC;IAED,IAAI,iBAAiB;QACnB,OAAO,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC;IACvC,CAAC;CAEF;AA7BD,sGA6BC;AAED;;;;GAIG;AACU,QAAA,wBAAwB,GAAG,IAAA,6BAAsB,EAA6F;IACzJ,WAAW,EAAE,CAAC,KAAwC,EAAE,EAAE;QACxD,MAAM,MAAM,qBACP,KAAK,CACT,CAAC;QAEF,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,YAAY,EAAE,GAAG,EAAE,CAAC,IAAI,+BAA+B,EAAE;IACzD,aAAa,EAAE,CAAO,MAAM,EAAE,EAAE;QAE9B,IAAI,CAAC,IAAA,wCAA6B,GAAE,EAAE;YACpC,MAAM,IAAI,KAAK,CAAC,+HAA+H,CAAC,CAAC;SAClJ;QAED,MAAM,SAAS,GAAG,IAAA,+BAAoB,GAAE,CAAC;QACzC,MAAM,GAAG,GAAG,KAAK,CAAC,aAAa,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;QAC/C,OAAO,IAAI,gCAAgC,CAAC,GAAG,CAAC,CAAC;IACnD,CAAC,CAAA;IACD,gBAAgB,EAAE,CAAO,QAAQ,EAAE,MAAM,EAAE,EAAE;QAC3C,MAAO,QAA6C,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAE,wBAAwB;IAC9F,CAAC,CAAA;CACF,CAAC,CAAC;AAGU,QAAA,+BAA+B,GAAoC,IAAA,gCAAwB,EAAC,EAAE,CAAC,CAAC;AAE7G,0BAA0B;AAC1B;;;;;;;GAOG;AACH,SAAgB,oCAAoC,CAAC,OAAyF;IAC5I,OAAO,CAAC,UAA0E,EAAE,EAAE;QACpF,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,wCAAwC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC;IAC1E,CAAC,CAAC;AACJ,CAAC;AAJD,oFAIC;AAED,SAAgB,wCAAwC,CAAC,CAA2D,EAAE,UAA0E;IAC9L,IAAA,4BAAqB,EAAC;QACpB,OAAO,EAAE,IAAI,sCAA2B,EAAE;QAC1C;;;;WAIG;QACH,UAAU;QACV,YAAY,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,wBAAwB,EAAE;KAC1D,CAAC,CAAC;AACL,CAAC;AAXD,4FAWC"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { AbstractChildJestTestContextFixture, ArrayOrValue, ClassType, Getter, JestBuildTestsWithContextFunction, JestTestContextFactory, JestTestContextFixture } from "@dereekb/util";
|
|
2
|
+
import { AbstractFirebaseAdminTestContextInstanceChild, FirebaseAdminTestContextInstance } from './firebase.admin';
|
|
3
|
+
import { Abstract, INestApplicationContext, Provider, Type } from '@nestjs/common/interfaces';
|
|
4
|
+
import { NestAppPromiseGetter } from "../../lib/nest/app";
|
|
5
|
+
import { TestingModule } from '@nestjs/testing';
|
|
6
|
+
export interface FirebaseAdminNestTestContext {
|
|
7
|
+
readonly nest: TestingModule;
|
|
8
|
+
readonly nestAppPromiseGetter: NestAppPromiseGetter;
|
|
9
|
+
get<TInput = any, TResult = TInput>(typeOrToken: Type<TInput> | Abstract<TInput> | string | symbol, options?: {
|
|
10
|
+
strict: boolean;
|
|
11
|
+
}): TResult;
|
|
12
|
+
}
|
|
13
|
+
export declare type FirebaseAdminNestTestContextFixtureType<PI extends FirebaseAdminTestContextInstance> = FirebaseAdminNestTestContext & JestTestContextFixture<PI>;
|
|
14
|
+
export declare class FirebaseAdminNestTestContextFixture<PI extends FirebaseAdminTestContextInstance = FirebaseAdminTestContextInstance, PF extends JestTestContextFixture<PI> = JestTestContextFixture<PI>, I extends FirebaseAdminNestTestContextInstance<PI> = FirebaseAdminNestTestContextInstance<PI>> extends AbstractChildJestTestContextFixture<I, PF> implements FirebaseAdminNestTestContext {
|
|
15
|
+
get nest(): TestingModule;
|
|
16
|
+
get nestAppPromiseGetter(): Getter<Promise<INestApplicationContext>>;
|
|
17
|
+
get<TInput = any, TResult = TInput>(typeOrToken: Type<TInput> | Abstract<TInput> | string | symbol, options?: {
|
|
18
|
+
strict: boolean;
|
|
19
|
+
}): TResult;
|
|
20
|
+
}
|
|
21
|
+
export declare class FirebaseAdminNestTestContextInstance<PI extends FirebaseAdminTestContextInstance = FirebaseAdminTestContextInstance> extends AbstractFirebaseAdminTestContextInstanceChild<PI> implements FirebaseAdminNestTestContext {
|
|
22
|
+
readonly nest: TestingModule;
|
|
23
|
+
readonly nestAppPromiseGetter: Getter<Promise<INestApplicationContext>>;
|
|
24
|
+
constructor(parent: PI, nest: TestingModule);
|
|
25
|
+
get<TInput = any, TResult = TInput>(typeOrToken: Type<TInput> | Abstract<TInput> | string | symbol, options?: {
|
|
26
|
+
strict: boolean;
|
|
27
|
+
}): TResult;
|
|
28
|
+
}
|
|
29
|
+
export interface FirebaseAdminNestTestConfig<PI extends FirebaseAdminTestContextInstance = FirebaseAdminTestContextInstance, PF extends JestTestContextFixture<PI> = JestTestContextFixture<PI>, I extends FirebaseAdminNestTestContextInstance<PI> = FirebaseAdminNestTestContextInstance<PI>, C extends FirebaseAdminNestTestContextFixture<PI, PF, I> = FirebaseAdminNestTestContextFixture<PI, PF, I>> {
|
|
30
|
+
/**
|
|
31
|
+
* Creates a new fixture.
|
|
32
|
+
*/
|
|
33
|
+
makeFixture?: (f: PF) => C;
|
|
34
|
+
/**
|
|
35
|
+
* Root module to import.
|
|
36
|
+
*/
|
|
37
|
+
nestModules: ArrayOrValue<ClassType>;
|
|
38
|
+
/**
|
|
39
|
+
* Whether or not to inject the firebase server provider (firebaseServerAppTokenProvider()).
|
|
40
|
+
*
|
|
41
|
+
* This makes FIREBASE_APP_TOKEN available globally and provides the app configured for this test.
|
|
42
|
+
*/
|
|
43
|
+
injectFirebaseServerAppTokenProvider?: boolean;
|
|
44
|
+
/**
|
|
45
|
+
* Optional providers to pass to the TestingModule initialization.
|
|
46
|
+
*/
|
|
47
|
+
makeProviders?: (instance: PI) => Provider<any>[];
|
|
48
|
+
/**
|
|
49
|
+
* Creates a new instance.
|
|
50
|
+
*/
|
|
51
|
+
makeInstance?: (instance: PI, nest: TestingModule) => I;
|
|
52
|
+
/**
|
|
53
|
+
* Optional function to initialize the instance.
|
|
54
|
+
*/
|
|
55
|
+
initInstance?: (instance: I) => Promise<void>;
|
|
56
|
+
}
|
|
57
|
+
export declare type FirebaseAdminNestTestContextFactory<PI extends FirebaseAdminTestContextInstance = FirebaseAdminTestContextInstance, PF extends JestTestContextFixture<PI> = JestTestContextFixture<PI>, I extends FirebaseAdminNestTestContextInstance<PI> = FirebaseAdminNestTestContextInstance<PI>, C extends FirebaseAdminNestTestContextFixture<PI, PF, I> = FirebaseAdminNestTestContextFixture<PI, PF, I>> = JestTestContextFactory<C>;
|
|
58
|
+
export declare function firebaseAdminNestContextFixture<PI extends FirebaseAdminTestContextInstance = FirebaseAdminTestContextInstance, PF extends JestTestContextFixture<PI> = JestTestContextFixture<PI>, I extends FirebaseAdminNestTestContextInstance<PI> = FirebaseAdminNestTestContextInstance<PI>, C extends FirebaseAdminNestTestContextFixture<PI, PF, I> = FirebaseAdminNestTestContextFixture<PI, PF, I>>(config: FirebaseAdminNestTestConfig<PI, PF, I, C>, factory: JestTestContextFactory<PF>): FirebaseAdminNestTestContextFactory<PI, PF, I, C>;
|
|
59
|
+
export declare class FirebaseAdminNestRootModule {
|
|
60
|
+
}
|
|
61
|
+
export declare function firebaseAdminNestContextWithFixture<PI extends FirebaseAdminTestContextInstance = FirebaseAdminTestContextInstance, PF extends JestTestContextFixture<PI> = JestTestContextFixture<PI>, I extends FirebaseAdminNestTestContextInstance<PI> = FirebaseAdminNestTestContextInstance<PI>, C extends FirebaseAdminNestTestContextFixture<PI, PF, I> = FirebaseAdminNestTestContextFixture<PI, PF, I>>(config: FirebaseAdminNestTestConfig<PI, PF, I, C>, f: PF, buildTests: JestBuildTestsWithContextFunction<C>): void;
|
|
62
|
+
export declare function firebaseAdminNestContextFactory<I extends FirebaseAdminNestTestContextInstance<FirebaseAdminTestContextInstance> = FirebaseAdminNestTestContextInstance<FirebaseAdminTestContextInstance>>(config: FirebaseAdminNestTestConfig<FirebaseAdminTestContextInstance, JestTestContextFixture<FirebaseAdminTestContextInstance>, I>): FirebaseAdminNestTestContextFactory<FirebaseAdminTestContextInstance, JestTestContextFixture<FirebaseAdminTestContextInstance>, I>;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { NestApplicationRunnableHttpFunctionFactory } from "../../lib/nest/function/nest";
|
|
2
|
+
import { WrappedCloudFunction } from "./firebase.admin";
|
|
3
|
+
import { FirebaseAdminFunctionNestTestContext } from "./firebase.admin.nest.function";
|
|
4
|
+
export interface CloudFunctionTestConfig<I> {
|
|
5
|
+
f: FirebaseAdminFunctionNestTestContext;
|
|
6
|
+
fn: NestApplicationRunnableHttpFunctionFactory<I>;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Used to provide a test builder that exposes a WrappedCloudFunction using the input configuration.
|
|
10
|
+
*
|
|
11
|
+
* @param config
|
|
12
|
+
* @param buildTests
|
|
13
|
+
*/
|
|
14
|
+
export declare function cloudFunctionTest<I>(config: CloudFunctionTestConfig<I>, buildTests: (fn: WrappedCloudFunction<I>) => void): void;
|
|
15
|
+
/**
|
|
16
|
+
* Convenience function that calls describe and cloudFunctionContext together.
|
|
17
|
+
*
|
|
18
|
+
* @param label
|
|
19
|
+
* @param config
|
|
20
|
+
* @param buildTests
|
|
21
|
+
*/
|
|
22
|
+
export declare function describeCloudFunctionTest<I>(label: string, config: CloudFunctionTestConfig<I>, buildTests: (fn: WrappedCloudFunction<I>) => void): void;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.describeCloudFunctionTest = exports.cloudFunctionTest = void 0;
|
|
4
|
+
const util_1 = require("@dereekb/util");
|
|
5
|
+
const firebase_admin_nest_function_1 = require("./firebase.admin.nest.function");
|
|
6
|
+
/**
|
|
7
|
+
* Used to provide a test builder that exposes a WrappedCloudFunction using the input configuration.
|
|
8
|
+
*
|
|
9
|
+
* @param config
|
|
10
|
+
* @param buildTests
|
|
11
|
+
*/
|
|
12
|
+
function cloudFunctionTest(config, buildTests) {
|
|
13
|
+
const { f, fn } = config;
|
|
14
|
+
(0, util_1.useJestFunctionFixture)({
|
|
15
|
+
fn: () => {
|
|
16
|
+
const x = (0, firebase_admin_nest_function_1.wrapCloudFunctionForNestTestsGetter)(f, fn)();
|
|
17
|
+
return x;
|
|
18
|
+
}
|
|
19
|
+
}, buildTests);
|
|
20
|
+
}
|
|
21
|
+
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
|
+
function describeCloudFunctionTest(label, config, buildTests) {
|
|
30
|
+
describe(label, () => {
|
|
31
|
+
cloudFunctionTest(config, buildTests);
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
exports.describeCloudFunctionTest = describeCloudFunctionTest;
|
|
35
|
+
//# sourceMappingURL=firebase.admin.nest.function.context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"firebase.admin.nest.function.context.js","sourceRoot":"","sources":["../../../../../../packages/firebase-server/src/test/firebase/firebase.admin.nest.function.context.ts"],"names":[],"mappings":";;;AAAA,wCAAuD;AAGvD,iFAA2H;AAO3H;;;;;GAKG;AACH,SAAgB,iBAAiB,CAAI,MAAkC,EAAE,UAAiD;IACxH,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,MAAM,CAAC;IAEzB,IAAA,6BAAsB,EAA0B;QAC9C,EAAE,EAAE,GAAG,EAAE;YACP,MAAM,CAAC,GAAG,IAAA,kEAAmC,EAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;YACvD,OAAO,CAAC,CAAC;QACX,CAAC;KACF,EAAE,UAAU,CAAC,CAAC;AACjB,CAAC;AATD,8CASC;AAED;;;;;;GAMG;AACH,SAAgB,yBAAyB,CAAI,KAAa,EAAE,MAAkC,EAAE,UAAiD;IAC/I,QAAQ,CAAC,KAAK,EAAE,GAAG,EAAE;QACnB,iBAAiB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;AACL,CAAC;AAJD,8DAIC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { Getter, JestBuildTestsWithContextFunction, JestTestContextFactory, JestTestContextFixture } from "@dereekb/util";
|
|
2
|
+
import { FirebaseAdminNestTestConfig, FirebaseAdminNestTestContext, FirebaseAdminNestTestContextFixture, FirebaseAdminNestTestContextInstance } from "./firebase.admin.nest";
|
|
3
|
+
import { FirebaseAdminFunctionTestContextInstance } from "./firebase.admin.function";
|
|
4
|
+
import { FirebaseAdminCloudFunctionWrapper, WrapCloudFunction, WrappedCloudFunction } from './firebase.admin';
|
|
5
|
+
import { NestApplicationRunnableHttpFunctionFactory } from "../../lib/nest/function/nest";
|
|
6
|
+
export declare function wrapCloudFunctionForNestTestsGetter<I>(wrapper: FirebaseAdminFunctionNestTestContext, fn: NestApplicationRunnableHttpFunctionFactory<I>): Getter<WrappedCloudFunction<I>>;
|
|
7
|
+
export interface FirebaseAdminFunctionNestTestContext extends FirebaseAdminNestTestContext, FirebaseAdminCloudFunctionWrapper {
|
|
8
|
+
get wrapCloudFunction(): WrapCloudFunction;
|
|
9
|
+
}
|
|
10
|
+
export declare class FirebaseAdminFunctionNestTestContextFixture<PI extends FirebaseAdminFunctionTestContextInstance = FirebaseAdminFunctionTestContextInstance, PF extends JestTestContextFixture<PI> = JestTestContextFixture<PI>, I extends FirebaseAdminFunctionNestTestContextInstance<PI> = FirebaseAdminFunctionNestTestContextInstance<PI>> extends FirebaseAdminNestTestContextFixture<PI, PF, I> implements FirebaseAdminFunctionNestTestContext {
|
|
11
|
+
get wrapCloudFunction(): WrapCloudFunction;
|
|
12
|
+
wrapCloudFunctionForNestTests<I>(fn: NestApplicationRunnableHttpFunctionFactory<I>): WrappedCloudFunction<I>;
|
|
13
|
+
wrapCloudFunctionForNestTestsGetter<I>(fn: NestApplicationRunnableHttpFunctionFactory<I>): Getter<WrappedCloudFunction<I>>;
|
|
14
|
+
}
|
|
15
|
+
export declare class FirebaseAdminFunctionNestTestContextInstance<PI extends FirebaseAdminFunctionTestContextInstance = FirebaseAdminFunctionTestContextInstance> extends FirebaseAdminNestTestContextInstance<PI> implements FirebaseAdminFunctionNestTestContext {
|
|
16
|
+
get wrapCloudFunction(): WrapCloudFunction;
|
|
17
|
+
}
|
|
18
|
+
export interface FirebaseAdminFunctionNestTestConfig<PI extends FirebaseAdminFunctionTestContextInstance = FirebaseAdminFunctionTestContextInstance, PF extends JestTestContextFixture<PI> = JestTestContextFixture<PI>, I extends FirebaseAdminFunctionNestTestContextInstance<PI> = FirebaseAdminFunctionNestTestContextInstance<PI>, C extends FirebaseAdminFunctionNestTestContextFixture<PI, PF, I> = FirebaseAdminFunctionNestTestContextFixture<PI, PF, I>> extends FirebaseAdminNestTestConfig<PI, PF, I, C> {
|
|
19
|
+
}
|
|
20
|
+
export declare type FirebaseAdminFunctionNestTestContextFactory<PI extends FirebaseAdminFunctionTestContextInstance = FirebaseAdminFunctionTestContextInstance, PF extends JestTestContextFixture<PI> = JestTestContextFixture<PI>, I extends FirebaseAdminFunctionNestTestContextInstance<PI> = FirebaseAdminFunctionNestTestContextInstance<PI>, C extends FirebaseAdminFunctionNestTestContextFixture<PI, PF, I> = FirebaseAdminFunctionNestTestContextFixture<PI, PF, I>> = JestTestContextFactory<C>;
|
|
21
|
+
export declare function firebaseAdminFunctionNestContextFixture<PI extends FirebaseAdminFunctionTestContextInstance = FirebaseAdminFunctionTestContextInstance, PF extends JestTestContextFixture<PI> = JestTestContextFixture<PI>, I extends FirebaseAdminFunctionNestTestContextInstance<PI> = FirebaseAdminFunctionNestTestContextInstance<PI>, C extends FirebaseAdminFunctionNestTestContextFixture<PI, PF, I> = FirebaseAdminFunctionNestTestContextFixture<PI, PF, I>>(config: FirebaseAdminFunctionNestTestConfig<PI, PF, I, C>, factory: JestTestContextFactory<PF>): FirebaseAdminFunctionNestTestContextFactory<PI, PF, I, C>;
|
|
22
|
+
export declare class FirebaseAdminFunctionNestRootModule {
|
|
23
|
+
}
|
|
24
|
+
export declare function firebaseAdminFunctionNestContextWithFixture<PI extends FirebaseAdminFunctionTestContextInstance = FirebaseAdminFunctionTestContextInstance, PF extends JestTestContextFixture<PI> = JestTestContextFixture<PI>, I extends FirebaseAdminFunctionNestTestContextInstance<PI> = FirebaseAdminFunctionNestTestContextInstance<PI>, C extends FirebaseAdminFunctionNestTestContextFixture<PI, PF, I> = FirebaseAdminFunctionNestTestContextFixture<PI, PF, I>>(config: FirebaseAdminFunctionNestTestConfig<PI, PF, I, C>, f: PF, buildTests: JestBuildTestsWithContextFunction<C>): void;
|
|
25
|
+
export declare function firebaseAdminFunctionNestContextFactory<I extends FirebaseAdminFunctionNestTestContextInstance<FirebaseAdminFunctionTestContextInstance> = FirebaseAdminFunctionNestTestContextInstance<FirebaseAdminFunctionTestContextInstance>>(config: FirebaseAdminFunctionNestTestConfig<FirebaseAdminFunctionTestContextInstance, JestTestContextFixture<FirebaseAdminFunctionTestContextInstance>, I>): FirebaseAdminFunctionNestTestContextFactory<FirebaseAdminFunctionTestContextInstance, JestTestContextFixture<FirebaseAdminFunctionTestContextInstance>, I>;
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.firebaseAdminFunctionNestContextFactory = exports.firebaseAdminFunctionNestContextWithFixture = exports.FirebaseAdminFunctionNestRootModule = exports.firebaseAdminFunctionNestContextFixture = exports.FirebaseAdminFunctionNestTestContextInstance = exports.FirebaseAdminFunctionNestTestContextFixture = exports.wrapCloudFunctionForNestTestsGetter = void 0;
|
|
4
|
+
const firebase_admin_nest_1 = require("./firebase.admin.nest");
|
|
5
|
+
const firebase_admin_function_1 = require("./firebase.admin.function");
|
|
6
|
+
const firebase_admin_1 = require("./firebase.admin");
|
|
7
|
+
// MARK: Utility
|
|
8
|
+
function wrapCloudFunctionForNestTestsGetter(wrapper, fn) {
|
|
9
|
+
return (0, firebase_admin_1.wrapCloudFunctionForTests)(wrapper, () => fn(wrapper.nestAppPromiseGetter));
|
|
10
|
+
}
|
|
11
|
+
exports.wrapCloudFunctionForNestTestsGetter = wrapCloudFunctionForNestTestsGetter;
|
|
12
|
+
class FirebaseAdminFunctionNestTestContextFixture extends firebase_admin_nest_1.FirebaseAdminNestTestContextFixture {
|
|
13
|
+
// MARK: FirebaseAdminTestContext (Forwarded)
|
|
14
|
+
get wrapCloudFunction() {
|
|
15
|
+
return this.parent.instance.wrapCloudFunction;
|
|
16
|
+
}
|
|
17
|
+
wrapCloudFunctionForNestTests(fn) {
|
|
18
|
+
return this.wrapCloudFunctionForNestTestsGetter(fn)();
|
|
19
|
+
}
|
|
20
|
+
wrapCloudFunctionForNestTestsGetter(fn) {
|
|
21
|
+
return wrapCloudFunctionForNestTestsGetter(this, fn);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
exports.FirebaseAdminFunctionNestTestContextFixture = FirebaseAdminFunctionNestTestContextFixture;
|
|
25
|
+
class FirebaseAdminFunctionNestTestContextInstance extends firebase_admin_nest_1.FirebaseAdminNestTestContextInstance {
|
|
26
|
+
// MARK: FirebaseAdminTestContext (Forwarded)
|
|
27
|
+
get wrapCloudFunction() {
|
|
28
|
+
return this.parent.wrapCloudFunction;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
exports.FirebaseAdminFunctionNestTestContextInstance = FirebaseAdminFunctionNestTestContextInstance;
|
|
32
|
+
function firebaseAdminFunctionNestContextFixture(config, factory) {
|
|
33
|
+
return (buildTests) => {
|
|
34
|
+
factory((f) => firebaseAdminFunctionNestContextWithFixture(config, f, buildTests));
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
exports.firebaseAdminFunctionNestContextFixture = firebaseAdminFunctionNestContextFixture;
|
|
38
|
+
class FirebaseAdminFunctionNestRootModule {
|
|
39
|
+
}
|
|
40
|
+
exports.FirebaseAdminFunctionNestRootModule = FirebaseAdminFunctionNestRootModule;
|
|
41
|
+
function firebaseAdminFunctionNestContextWithFixture(config, f, buildTests) {
|
|
42
|
+
const mergedConfig = Object.assign({ makeFixture: (parent) => new FirebaseAdminFunctionNestTestContextFixture(parent), makeInstance: (instance, nest) => new FirebaseAdminFunctionNestTestContextInstance(instance, nest) }, config);
|
|
43
|
+
return (0, firebase_admin_nest_1.firebaseAdminNestContextWithFixture)(mergedConfig, f, buildTests);
|
|
44
|
+
}
|
|
45
|
+
exports.firebaseAdminFunctionNestContextWithFixture = firebaseAdminFunctionNestContextWithFixture;
|
|
46
|
+
function firebaseAdminFunctionNestContextFactory(config) {
|
|
47
|
+
return firebaseAdminFunctionNestContextFixture(config, firebase_admin_function_1.firebaseAdminFunctionTestContextFactory);
|
|
48
|
+
}
|
|
49
|
+
exports.firebaseAdminFunctionNestContextFactory = firebaseAdminFunctionNestContextFactory;
|
|
50
|
+
//# sourceMappingURL=firebase.admin.nest.function.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"firebase.admin.nest.function.js","sourceRoot":"","sources":["../../../../../../packages/firebase-server/src/test/firebase/firebase.admin.nest.function.ts"],"names":[],"mappings":";;;AACA,+DAAkN;AAClN,uEAA8H;AAC9H,qDAAyI;AAGzI,gBAAgB;AAChB,SAAgB,mCAAmC,CAAI,OAA6C,EAAE,EAAiD;IACrJ,OAAO,IAAA,0CAAyB,EAAI,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC,CAAC;AACvF,CAAC;AAFD,kFAEC;AAOD,MAAa,2CAIT,SAAQ,yDAA8C;IAExD,6CAA6C;IAC7C,IAAI,iBAAiB;QACnB,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAC;IAChD,CAAC;IAED,6BAA6B,CAAI,EAAiD;QAChF,OAAO,IAAI,CAAC,mCAAmC,CAAC,EAAE,CAAC,EAAE,CAAC;IACxD,CAAC;IAED,mCAAmC,CAAI,EAAiD;QACtF,OAAO,mCAAmC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACvD,CAAC;CAEF;AAnBD,kGAmBC;AAED,MAAa,4CAET,SAAQ,0DAAwC;IAElD,6CAA6C;IAC7C,IAAI,iBAAiB;QACnB,OAAO,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC;IACvC,CAAC;CAEF;AATD,oGASC;AAgBD,SAAgB,uCAAuC,CAKrD,MAAyD,EAAE,OAAmC;IAC9F,OAAO,CAAC,UAAgD,EAAE,EAAE;QAC1D,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,2CAA2C,CAAe,MAAM,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC;IACnG,CAAC,CAAC;AACJ,CAAC;AATD,0FASC;AAED,MAAa,mCAAmC;CAAI;AAApD,kFAAoD;AAEpD,SAAgB,2CAA2C,CAKzD,MAAyD,EAAE,CAAK,EAAE,UAAgD;IAClH,MAAM,YAAY,mBAChB,WAAW,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,2CAA2C,CAAC,MAAM,CAAM,EACrF,YAAY,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,4CAA4C,CAAK,QAAQ,EAAE,IAAI,CAAM,IACxG,MAAM,CACV,CAAC;IAEF,OAAO,IAAA,yDAAmC,EAAe,YAAY,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC;AACxF,CAAC;AAbD,kGAaC;AAED,SAAgB,uCAAuC,CAErD,MAA0J;IAC1J,OAAO,uCAAuC,CAAgH,MAAM,EAAE,iEAAuC,CAAC,CAAC;AACjN,CAAC;AAJD,0FAIC"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.firebaseAdminNestContextFactory = exports.firebaseAdminNestContextWithFixture = exports.FirebaseAdminNestRootModule = exports.firebaseAdminNestContextFixture = exports.FirebaseAdminNestTestContextInstance = exports.FirebaseAdminNestTestContextFixture = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const util_1 = require("@dereekb/util");
|
|
6
|
+
const firebase_admin_1 = require("./firebase.admin");
|
|
7
|
+
const testing_1 = require("@nestjs/testing");
|
|
8
|
+
const firebase_nest_1 = require("../../lib/firebase/firebase.nest");
|
|
9
|
+
class FirebaseAdminNestTestContextFixture extends util_1.AbstractChildJestTestContextFixture {
|
|
10
|
+
// MARK: Forwarded
|
|
11
|
+
get nest() {
|
|
12
|
+
return this.instance.nest;
|
|
13
|
+
}
|
|
14
|
+
get nestAppPromiseGetter() {
|
|
15
|
+
return this.instance.nestAppPromiseGetter;
|
|
16
|
+
}
|
|
17
|
+
get(typeOrToken, options) {
|
|
18
|
+
return this.instance.get(typeOrToken, options);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
exports.FirebaseAdminNestTestContextFixture = FirebaseAdminNestTestContextFixture;
|
|
22
|
+
class FirebaseAdminNestTestContextInstance extends firebase_admin_1.AbstractFirebaseAdminTestContextInstanceChild {
|
|
23
|
+
constructor(parent, nest) {
|
|
24
|
+
super(parent);
|
|
25
|
+
this.nest = nest;
|
|
26
|
+
this.nestAppPromiseGetter = () => Promise.resolve(this.nest);
|
|
27
|
+
}
|
|
28
|
+
get(typeOrToken, options) {
|
|
29
|
+
return this.nest.get(typeOrToken, options);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
exports.FirebaseAdminNestTestContextInstance = FirebaseAdminNestTestContextInstance;
|
|
33
|
+
function firebaseAdminNestContextFixture(config, factory) {
|
|
34
|
+
return (buildTests) => {
|
|
35
|
+
factory((f) => firebaseAdminNestContextWithFixture(config, f, buildTests));
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
exports.firebaseAdminNestContextFixture = firebaseAdminNestContextFixture;
|
|
39
|
+
class FirebaseAdminNestRootModule {
|
|
40
|
+
}
|
|
41
|
+
exports.FirebaseAdminNestRootModule = FirebaseAdminNestRootModule;
|
|
42
|
+
function firebaseAdminNestContextWithFixture(config, f, buildTests) {
|
|
43
|
+
const { nestModules, makeProviders = () => [], injectFirebaseServerAppTokenProvider, makeFixture = (parent) => new FirebaseAdminNestTestContextFixture(parent), makeInstance = (instance, nest) => new FirebaseAdminNestTestContextInstance(instance, nest), initInstance } = config;
|
|
44
|
+
(0, util_1.useJestContextFixture)({
|
|
45
|
+
fixture: makeFixture(f),
|
|
46
|
+
/**
|
|
47
|
+
* Build tests by passing the fixture to the testing functions.
|
|
48
|
+
*
|
|
49
|
+
* This will inject all tests and sub Jest lifecycle items.
|
|
50
|
+
*/
|
|
51
|
+
buildTests,
|
|
52
|
+
initInstance: () => tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
53
|
+
var _a;
|
|
54
|
+
const imports = (0, util_1.asArray)(nestModules);
|
|
55
|
+
const providers = (_a = makeProviders(f.instance)) !== null && _a !== void 0 ? _a : [];
|
|
56
|
+
// Inject the firebaseServerAppTokenProvider
|
|
57
|
+
if (injectFirebaseServerAppTokenProvider) {
|
|
58
|
+
providers.push((0, firebase_nest_1.firebaseServerAppTokenProvider)((0, util_1.asGetter)(f.instance.app)));
|
|
59
|
+
}
|
|
60
|
+
const rootModule = {
|
|
61
|
+
module: FirebaseAdminNestRootModule,
|
|
62
|
+
providers,
|
|
63
|
+
exports: providers,
|
|
64
|
+
global: true
|
|
65
|
+
};
|
|
66
|
+
const builder = (testing_1.Test.createTestingModule({
|
|
67
|
+
imports: [rootModule, ...imports]
|
|
68
|
+
}));
|
|
69
|
+
const nest = yield builder.compile();
|
|
70
|
+
const instance = makeInstance(f.instance, nest);
|
|
71
|
+
if (initInstance) {
|
|
72
|
+
yield initInstance(instance);
|
|
73
|
+
}
|
|
74
|
+
return instance;
|
|
75
|
+
}),
|
|
76
|
+
destroyInstance: (instance) => tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
77
|
+
yield instance.nest.close();
|
|
78
|
+
})
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
exports.firebaseAdminNestContextWithFixture = firebaseAdminNestContextWithFixture;
|
|
82
|
+
function firebaseAdminNestContextFactory(config) {
|
|
83
|
+
return firebaseAdminNestContextFixture(config, firebase_admin_1.firebaseAdminTestContextFactory);
|
|
84
|
+
}
|
|
85
|
+
exports.firebaseAdminNestContextFactory = firebaseAdminNestContextFactory;
|
|
86
|
+
//# sourceMappingURL=firebase.admin.nest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"firebase.admin.nest.js","sourceRoot":"","sources":["../../../../../../packages/firebase-server/src/test/firebase/firebase.admin.nest.ts"],"names":[],"mappings":";;;;AAAA,wCAAkO;AAClO,qDAAgQ;AAGhQ,6CAAsD;AACtD,oEAAkF;AAWlF,MAAa,mCAIT,SAAQ,0CAA0C;IAEpD,kBAAkB;IAClB,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;IAC5B,CAAC;IAED,IAAI,oBAAoB;QACtB,OAAO,IAAI,CAAC,QAAQ,CAAC,oBAAoB,CAAC;IAC5C,CAAC;IAED,GAAG,CAAiC,WAA8D,EAAE,OAEnG;QACC,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IACjD,CAAC;CAEF;AArBD,kFAqBC;AAED,MAAa,oCAET,SAAQ,8DAAiD;IAI3D,YAAY,MAAU,EAAW,IAAmB;QAClD,KAAK,CAAC,MAAM,CAAC,CAAC;QADiB,SAAI,GAAJ,IAAI,CAAe;QAF3C,yBAAoB,GAA6C,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAI3G,CAAC;IAED,GAAG,CAAiC,WAA8D,EAAE,OAEnG;QACC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAC7C,CAAC;CAEF;AAhBD,oFAgBC;AA2CD,SAAgB,+BAA+B,CAK7C,MAAiD,EAAE,OAAmC;IACtF,OAAO,CAAC,UAAgD,EAAE,EAAE;QAC1D,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,mCAAmC,CAAe,MAAM,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC;IAC3F,CAAC,CAAC;AACJ,CAAC;AATD,0EASC;AAED,MAAa,2BAA2B;CAAI;AAA5C,kEAA4C;AAE5C,SAAgB,mCAAmC,CAKjD,MAAiD,EAAE,CAAK,EAAE,UAAgD;IAC1G,MAAM,EACJ,WAAW,EACX,aAAa,GAAG,GAAG,EAAE,CAAC,EAAE,EACxB,oCAAoC,EACpC,WAAW,GAAG,CAAC,MAAU,EAAE,EAAE,CAAC,IAAI,mCAAmC,CAAY,MAAM,CAAM,EAC7F,YAAY,GAAG,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,oCAAoC,CAAK,QAAQ,EAAE,IAAI,CAAM,EACpG,YAAY,EACb,GAAG,MAAM,CAAC;IAEX,IAAA,4BAAqB,EAAC;QACpB,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC;QACvB;;;;WAIG;QACH,UAAU;QACV,YAAY,EAAE,GAAS,EAAE;;YACvB,MAAM,OAAO,GAAG,IAAA,cAAO,EAAC,WAAW,CAAC,CAAC;YACrC,MAAM,SAAS,GAAG,MAAA,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,mCAAI,EAAE,CAAC;YAElD,4CAA4C;YAC5C,IAAI,oCAAoC,EAAE;gBACxC,SAAS,CAAC,IAAI,CAAC,IAAA,8CAA8B,EAAC,IAAA,eAAQ,EAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;aAC1E;YAED,MAAM,UAAU,GAAkB;gBAChC,MAAM,EAAE,2BAA2B;gBACnC,SAAS;gBACT,OAAO,EAAE,SAAS;gBAClB,MAAM,EAAE,IAAI;aACb,CAAC;YAEF,MAAM,OAAO,GAAG,CAAC,cAAI,CAAC,mBAAmB,CAAC;gBACxC,OAAO,EAAE,CAAC,UAAU,EAAE,GAAG,OAAO,CAAC;aAClC,CAAC,CAAC,CAAC;YAEJ,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;YACrC,MAAM,QAAQ,GAAM,YAAY,CAAC,CAAC,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;YAEnD,IAAI,YAAY,EAAE;gBAChB,MAAM,YAAY,CAAC,QAAQ,CAAC,CAAC;aAC9B;YAED,OAAO,QAAQ,CAAC;QAClB,CAAC,CAAA;QACD,eAAe,EAAE,CAAO,QAAQ,EAAE,EAAE;YAClC,MAAM,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QAC9B,CAAC,CAAA;KACF,CAAC,CAAC;AACL,CAAC;AAxDD,kFAwDC;AAED,SAAgB,+BAA+B,CAE7C,MAAkI;IAClI,OAAO,+BAA+B,CAAgG,MAAM,EAAE,gDAA+B,CAAC,CAAC;AACjL,CAAC;AAJD,0EAIC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.describeFirestoreTest = exports.initFirebaseServerAdminTestEnvironment = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const firebase_1 = require("@dereekb/firebase");
|
|
6
|
+
const firebase_2 = require("./firebase");
|
|
7
|
+
function initFirebaseServerAdminTestEnvironment() {
|
|
8
|
+
(0, firebase_2.initFirebaseAdminTestEnvironment)({
|
|
9
|
+
emulators: {
|
|
10
|
+
auth: '0.0.0.0:9903',
|
|
11
|
+
firestore: '0.0.0.0:9904',
|
|
12
|
+
storage: '0.0.0.0:9906'
|
|
13
|
+
}
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
exports.initFirebaseServerAdminTestEnvironment = initFirebaseServerAdminTestEnvironment;
|
|
17
|
+
function describeFirestoreTest(s) {
|
|
18
|
+
let collection;
|
|
19
|
+
beforeEach(() => {
|
|
20
|
+
collection = (0, firebase_1.mockItemFirestoreCollection)(s.context);
|
|
21
|
+
});
|
|
22
|
+
describe('firestore', () => {
|
|
23
|
+
it('should interact with the firestore.', () => tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
24
|
+
const document = collection.documentAccessor().newDocument();
|
|
25
|
+
const setData = {
|
|
26
|
+
value: 'a',
|
|
27
|
+
test: true
|
|
28
|
+
};
|
|
29
|
+
yield document.accessor.set(setData);
|
|
30
|
+
const exists = yield document.accessor.exists();
|
|
31
|
+
expect(exists).toBe(true);
|
|
32
|
+
const snapshot = yield document.accessor.get();
|
|
33
|
+
const data = snapshot.data();
|
|
34
|
+
expect(data).toBeDefined();
|
|
35
|
+
}));
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
exports.describeFirestoreTest = describeFirestoreTest;
|
|
39
|
+
//# sourceMappingURL=firebase.admin.test.server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"firebase.admin.test.server.js","sourceRoot":"","sources":["../../../../../../packages/firebase-server/src/test/firebase/firebase.admin.test.server.ts"],"names":[],"mappings":";;;;AAAA,gDAAiJ;AACjJ,yCAA8D;AAE9D,SAAgB,sCAAsC;IACpD,IAAA,2CAAgC,EAAC;QAC/B,SAAS,EAAE;YACT,IAAI,EAAE,cAAc;YACpB,SAAS,EAAE,cAAc;YACzB,OAAO,EAAE,cAAc;SACxB;KACF,CAAC,CAAA;AACJ,CAAC;AARD,wFAQC;AAED,SAAgB,qBAAqB,CAAC,CAAqD;IAEzF,IAAI,UAAuC,CAAC;IAE5C,UAAU,CAAC,GAAG,EAAE;QACd,UAAU,GAAG,IAAA,sCAA2B,EAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;QAEzB,EAAE,CAAC,qCAAqC,EAAE,GAAS,EAAE;YACnD,MAAM,QAAQ,GAAG,UAAU,CAAC,gBAAgB,EAAE,CAAC,WAAW,EAAE,CAAC;YAE7D,MAAM,OAAO,GAAG;gBACd,KAAK,EAAE,GAAG;gBACV,IAAI,EAAE,IAAI;aACX,CAAC;YAEF,MAAM,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAErC,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;YAChD,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAE1B,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;YAC/C,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;YAE7B,MAAM,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;QAC7B,CAAC,CAAA,CAAC,CAAC;IAEL,CAAC,CAAC,CAAC;AAEL,CAAC;AA/BD,sDA+BC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Host url:port combo.
|
|
3
|
+
*
|
|
4
|
+
* I.E. localhost:8080
|
|
5
|
+
*/
|
|
6
|
+
export declare type FirebaseAdminTestEnvironmentHost = string;
|
|
7
|
+
export interface FirebaseAdminTestEnvironmentEmulatorsConfig {
|
|
8
|
+
auth: FirebaseAdminTestEnvironmentHost | null;
|
|
9
|
+
storage: FirebaseAdminTestEnvironmentHost | null;
|
|
10
|
+
firestore: FirebaseAdminTestEnvironmentHost | null;
|
|
11
|
+
}
|
|
12
|
+
export interface FirebaseAdminTestEnvironmentConfig {
|
|
13
|
+
emulators: FirebaseAdminTestEnvironmentEmulatorsConfig;
|
|
14
|
+
}
|
|
15
|
+
export declare function isAdminEnvironmentInitialized(): boolean;
|
|
16
|
+
export declare function generateNewProjectId(): string;
|
|
17
|
+
export declare function rollNewGCloudProjectEnvironmentVariable(): string;
|
|
18
|
+
export declare function getGCloudProjectId(): string | undefined;
|
|
19
|
+
export declare function getGCloudTestProjectId(): string | undefined;
|
|
20
|
+
/**
|
|
21
|
+
* Applies the current GCLOUD_PROJECT to FIREBASE_CONFIG.
|
|
22
|
+
*
|
|
23
|
+
* This is done as some external testing libraries (firebase-functions-test) will overwrite but we want to enforce using our project id
|
|
24
|
+
* so that each component can also
|
|
25
|
+
*/
|
|
26
|
+
export declare function applyFirebaseGCloudTestProjectIdToFirebaseConfigEnv(): string;
|
|
27
|
+
/**
|
|
28
|
+
* Should be called before calling/using adminFirebaseTestBuilder(). This should only be called once.
|
|
29
|
+
*/
|
|
30
|
+
export declare function initFirebaseAdminTestEnvironment(config: FirebaseAdminTestEnvironmentConfig): void;
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.initFirebaseAdminTestEnvironment = exports.applyFirebaseGCloudTestProjectIdToFirebaseConfigEnv = exports.getGCloudTestProjectId = exports.getGCloudProjectId = exports.rollNewGCloudProjectEnvironmentVariable = exports.generateNewProjectId = exports.isAdminEnvironmentInitialized = void 0;
|
|
4
|
+
let adminEnvironmentInitialized = false;
|
|
5
|
+
function isAdminEnvironmentInitialized() {
|
|
6
|
+
return adminEnvironmentInitialized;
|
|
7
|
+
}
|
|
8
|
+
exports.isAdminEnvironmentInitialized = isAdminEnvironmentInitialized;
|
|
9
|
+
function generateNewProjectId() {
|
|
10
|
+
const projectId = 'firebase-test-' + new Date().getTime();
|
|
11
|
+
return projectId;
|
|
12
|
+
}
|
|
13
|
+
exports.generateNewProjectId = generateNewProjectId;
|
|
14
|
+
function rollNewGCloudProjectEnvironmentVariable() {
|
|
15
|
+
const projectId = generateNewProjectId();
|
|
16
|
+
process.env.GCLOUD_TEST_PROJECT = projectId;
|
|
17
|
+
process.env.GCLOUD_PROJECT = projectId;
|
|
18
|
+
applyFirebaseGCloudTestProjectIdToFirebaseConfigEnv();
|
|
19
|
+
return projectId;
|
|
20
|
+
}
|
|
21
|
+
exports.rollNewGCloudProjectEnvironmentVariable = rollNewGCloudProjectEnvironmentVariable;
|
|
22
|
+
function getGCloudProjectId() {
|
|
23
|
+
return process.env.GCLOUD_PROJECT;
|
|
24
|
+
}
|
|
25
|
+
exports.getGCloudProjectId = getGCloudProjectId;
|
|
26
|
+
function getGCloudTestProjectId() {
|
|
27
|
+
return process.env.GCLOUD_TEST_PROJECT;
|
|
28
|
+
}
|
|
29
|
+
exports.getGCloudTestProjectId = getGCloudTestProjectId;
|
|
30
|
+
/**
|
|
31
|
+
* Applies the current GCLOUD_PROJECT to FIREBASE_CONFIG.
|
|
32
|
+
*
|
|
33
|
+
* This is done as some external testing libraries (firebase-functions-test) will overwrite but we want to enforce using our project id
|
|
34
|
+
* so that each component can also
|
|
35
|
+
*/
|
|
36
|
+
function applyFirebaseGCloudTestProjectIdToFirebaseConfigEnv() {
|
|
37
|
+
var _a;
|
|
38
|
+
// firebase-functions-test overwrites this each time.
|
|
39
|
+
// https://github.com/firebase/firebase-functions-test/blob/acb068f4c086f3355b2960b9e9e5895716c7f8cc/src/lifecycle.ts#L37
|
|
40
|
+
const testProjectId = getGCloudTestProjectId();
|
|
41
|
+
// console.log('Test project: ', testProjectId);
|
|
42
|
+
if (!testProjectId) {
|
|
43
|
+
throw new Error('No test project id was available in the environment. Did you call initFirebaseAdminTestEnvironment() first?');
|
|
44
|
+
}
|
|
45
|
+
let config = JSON.parse((_a = process.env.FIREBASE_CONFIG) !== null && _a !== void 0 ? _a : '{}');
|
|
46
|
+
config.projectId = testProjectId;
|
|
47
|
+
process.env.FIREBASE_CONFIG = JSON.stringify(config);
|
|
48
|
+
process.env.GCLOUD_PROJECT = testProjectId; // re-apply to GCLOUD_PROJECT too
|
|
49
|
+
return testProjectId;
|
|
50
|
+
}
|
|
51
|
+
exports.applyFirebaseGCloudTestProjectIdToFirebaseConfigEnv = applyFirebaseGCloudTestProjectIdToFirebaseConfigEnv;
|
|
52
|
+
/**
|
|
53
|
+
* Should be called before calling/using adminFirebaseTestBuilder(). This should only be called once.
|
|
54
|
+
*/
|
|
55
|
+
function initFirebaseAdminTestEnvironment(config) {
|
|
56
|
+
function crashForEmulator(emulator) {
|
|
57
|
+
throw new Error(`Emulator for ${emulator} was not set null or to a host. Crashing to prevent contamination.`);
|
|
58
|
+
}
|
|
59
|
+
function configureEmulator(emulator, envKey) {
|
|
60
|
+
const emulatorConfig = config.emulators[emulator];
|
|
61
|
+
if (emulatorConfig) {
|
|
62
|
+
process.env[envKey] = emulatorConfig;
|
|
63
|
+
}
|
|
64
|
+
else if (config.emulators.firestore !== null) {
|
|
65
|
+
crashForEmulator(emulator);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
rollNewGCloudProjectEnvironmentVariable();
|
|
69
|
+
configureEmulator('auth', 'FIREBASE_AUTH_EMULATOR_HOST');
|
|
70
|
+
configureEmulator('firestore', 'FIRESTORE_EMULATOR_HOST');
|
|
71
|
+
configureEmulator('storage', 'FIREBASE_STORAGE_EMULATOR_HOST');
|
|
72
|
+
applyFirebaseGCloudTestProjectIdToFirebaseConfigEnv();
|
|
73
|
+
adminEnvironmentInitialized = true;
|
|
74
|
+
}
|
|
75
|
+
exports.initFirebaseAdminTestEnvironment = initFirebaseAdminTestEnvironment;
|
|
76
|
+
//# sourceMappingURL=firebase.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"firebase.js","sourceRoot":"","sources":["../../../../../../packages/firebase-server/src/test/firebase/firebase.ts"],"names":[],"mappings":";;;AAAA,IAAI,2BAA2B,GAAG,KAAK,CAAC;AAmBxC,SAAgB,6BAA6B;IAC3C,OAAO,2BAA2B,CAAC;AACrC,CAAC;AAFD,sEAEC;AAED,SAAgB,oBAAoB;IAClC,MAAM,SAAS,GAAG,gBAAgB,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;IAC1D,OAAO,SAAS,CAAC;AACnB,CAAC;AAHD,oDAGC;AAED,SAAgB,uCAAuC;IACrD,MAAM,SAAS,GAAG,oBAAoB,EAAE,CAAC;IACzC,OAAO,CAAC,GAAG,CAAC,mBAAmB,GAAG,SAAS,CAAC;IAC5C,OAAO,CAAC,GAAG,CAAC,cAAc,GAAG,SAAS,CAAC;IACvC,mDAAmD,EAAE,CAAC;IACtD,OAAO,SAAS,CAAC;AACnB,CAAC;AAND,0FAMC;AAED,SAAgB,kBAAkB;IAChC,OAAO,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;AACpC,CAAC;AAFD,gDAEC;AAED,SAAgB,sBAAsB;IACpC,OAAO,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC;AACzC,CAAC;AAFD,wDAEC;AAED;;;;;GAKG;AACH,SAAgB,mDAAmD;;IACjE,qDAAqD;IACrD,yHAAyH;IACzH,MAAM,aAAa,GAAG,sBAAsB,EAAE,CAAC;IAE/C,gDAAgD;IAEhD,IAAI,CAAC,aAAa,EAAE;QAClB,MAAM,IAAI,KAAK,CAAC,6GAA6G,CAAC,CAAC;KAChI;IAED,IAAI,MAAM,GAAQ,IAAI,CAAC,KAAK,CAAC,MAAA,OAAO,CAAC,GAAG,CAAC,eAAe,mCAAI,IAAI,CAAC,CAAC;IAClE,MAAM,CAAC,SAAS,GAAG,aAAa,CAAC;IAEjC,OAAO,CAAC,GAAG,CAAC,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IACrD,OAAO,CAAC,GAAG,CAAC,cAAc,GAAG,aAAa,CAAC,CAAE,iCAAiC;IAE9E,OAAO,aAAa,CAAC;AACvB,CAAC;AAlBD,kHAkBC;AAED;;GAEG;AACH,SAAgB,gCAAgC,CAAC,MAA0C;IAEzF,SAAS,gBAAgB,CAAC,QAAgB;QACxC,MAAM,IAAI,KAAK,CAAC,gBAAgB,QAAQ,oEAAoE,CAAC,CAAC;IAChH,CAAC;IAED,SAAS,iBAAiB,CAAC,QAA2D,EAAE,MAAc;QACpG,MAAM,cAAc,GAAG,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAElD,IAAI,cAAc,EAAE;YAClB,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,cAAc,CAAC;SACtC;aAAM,IAAI,MAAM,CAAC,SAAS,CAAC,SAAS,KAAK,IAAI,EAAE;YAC9C,gBAAgB,CAAC,QAAQ,CAAC,CAAC;SAC5B;IACH,CAAC;IAED,uCAAuC,EAAE,CAAC;IAC1C,iBAAiB,CAAC,MAAM,EAAE,6BAA6B,CAAC,CAAC;IACzD,iBAAiB,CAAC,WAAW,EAAE,yBAAyB,CAAC,CAAC;IAC1D,iBAAiB,CAAC,SAAS,EAAE,gCAAgC,CAAC,CAAC;IAE/D,mDAAmD,EAAE,CAAC;IAEtD,2BAA2B,GAAG,IAAI,CAAC;AACrC,CAAC;AAxBD,4EAwBC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export * from './firebase';
|
|
2
|
+
export * from './firebase.admin';
|
|
3
|
+
export * from './firebase.admin.nest';
|
|
4
|
+
export * from './firebase.admin.function';
|
|
5
|
+
export * from './firebase.admin.nest.function';
|
|
6
|
+
export * from './firebase.admin.nest.function.context';
|
|
7
|
+
export * from './firebase.admin.auth';
|
|
8
|
+
export * from './firebase.admin.collection';
|