Skip to content

Commit 571f3fc

Browse files
committed
wip(integration_test): Multiple fixes for tests
1 parent 0532b2f commit 571f3fc

19 files changed

+81
-53
lines changed

integration_test/jest.config.js

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,12 @@
1-
export default {
1+
/** @type {import('jest').Config} */
2+
const config = {
23
preset: "ts-jest",
34
testEnvironment: "node",
45
testMatch: ["**/tests/**/*.test.ts"],
5-
testTimeout: 30000,
6+
testTimeout: 120_000,
67
transform: {
78
"^.+\\.(t|j)s$": ["ts-jest", { tsconfig: "tsconfig.test.json" }],
89
},
910
};
11+
12+
export default config;

integration_test/package-lock.json

Lines changed: 11 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

integration_test/package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,14 @@
1212
"node-fetch": "2"
1313
},
1414
"scripts": {
15-
"build": "tsc -p ./tsconfig.build.json",
15+
"build": "tsc -p tsconfig.test.json",
1616
"test": "jest --detectOpenHandles",
1717
"start": "npm run build && node dist/run.js"
1818
},
1919
"devDependencies": {
2020
"@types/jest": "^29.5.11",
2121
"@types/js-yaml": "^4.0.9",
22+
"@types/node-fetch": "^2.6.11",
2223
"jest": "^29.7.0",
2324
"ts-jest": "^29.1.1"
2425
}

integration_test/tests/utils.ts

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -156,18 +156,28 @@ export async function createTask(
156156
}
157157
}
158158

159-
export async function retry<T>(fn: () => Promise<T>, maxReties: number = 10): Promise<T> {
159+
type RetryOptions = { maxRetries?: number; checkForUndefined?: boolean };
160+
161+
/**
162+
* @template T
163+
* @param {() => Promise<T>} fn
164+
* @param {RetryOptions | undefined} [options={ maxRetries: 10, checkForUndefined: true }]
165+
*
166+
* @returns {Promise<T>}
167+
*/
168+
export async function retry<T>(fn: () => Promise<T>, options?: RetryOptions): Promise<T> {
160169
let count = 0;
161170
let lastError: Error | undefined;
171+
const { maxRetries = 20, checkForUndefined = true } = options ?? {};
162172

163-
while (count < maxReties) {
173+
while (count < maxRetries) {
164174
try {
165175
const result = await fn();
166-
if (result) {
176+
if (!checkForUndefined || result) {
167177
return result;
168178
}
169179
} catch (e) {
170-
lastError = e;
180+
lastError = e as Error;
171181
}
172182
await timeout(5000);
173183
count++;

integration_test/tests/v1/auth.test.ts

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import * as admin from "firebase-admin";
2-
import { UserRecord } from "firebase-admin/lib/auth/user-record";
32
import { initializeApp } from "firebase/app";
43
import { createUserWithEmailAndPassword, getAuth, UserCredential } from "firebase/auth";
54
import { initializeFirebase } from "../firebaseSetup";
@@ -39,7 +38,7 @@ describe("Firebase Auth (v1)", () => {
3938
});
4039

4140
describe("user onCreate trigger", () => {
42-
let userRecord: UserRecord;
41+
let userRecord: admin.auth.UserRecord;
4342
let loggedContext: admin.firestore.DocumentData | undefined;
4443

4544
beforeAll(async () => {
@@ -118,7 +117,7 @@ describe("Firebase Auth (v1)", () => {
118117
});
119118

120119
describe("user onDelete trigger", () => {
121-
let userRecord: UserRecord;
120+
let userRecord: admin.auth.UserRecord;
122121
let loggedContext: admin.firestore.DocumentData | undefined;
123122

124123
beforeAll(async () => {
@@ -130,13 +129,14 @@ describe("Firebase Auth (v1)", () => {
130129

131130
await admin.auth().deleteUser(userRecord.uid);
132131

133-
loggedContext = await retry(() =>
134-
admin
135-
.firestore()
136-
.collection("authUserOnDeleteTests")
137-
.doc(userRecord.uid)
138-
.get()
139-
.then((logSnapshot) => logSnapshot.data())
132+
loggedContext = await retry(
133+
() =>
134+
admin
135+
.firestore()
136+
.collection("authUserOnDeleteTests")
137+
.doc(userRecord.uid)
138+
.get()
139+
.then((logSnapshot) => logSnapshot.data()),
140140
);
141141

142142
userIds.push(userRecord.uid);

integration_test/tests/v1/firestore.test.ts

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -199,13 +199,14 @@ describe("Cloud Firestore (v1)", () => {
199199
await docRef.set({ test: testId });
200200
dataSnapshot = await docRef.get();
201201

202-
loggedContext = await retry(() =>
203-
admin
204-
.firestore()
205-
.collection("firestoreDocumentOnWriteTests")
206-
.doc(testId)
207-
.get()
208-
.then((logSnapshot) => logSnapshot.data())
202+
loggedContext = await retry(
203+
() =>
204+
admin
205+
.firestore()
206+
.collection("firestoreDocumentOnWriteTests")
207+
.doc(testId)
208+
.get()
209+
.then((logSnapshot) => logSnapshot.data()),
209210
);
210211
});
211212

integration_test/tests/v1/remoteConfig.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import admin from "firebase-admin";
1+
import * as admin from "firebase-admin";
22
import { retry } from "../utils";
33
import { initializeFirebase } from "../firebaseSetup";
44
import fetch from "node-fetch";

integration_test/tests/v1/testLab.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import admin from "firebase-admin";
1+
import * as admin from "firebase-admin";
22
import { retry, startTestRun } from "../utils";
33
import { initializeFirebase } from "../firebaseSetup";
44

integration_test/tests/v2/database.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import admin from "firebase-admin";
1+
import * as admin from "firebase-admin";
22
import { retry } from "../utils";
33
import { initializeFirebase } from "../firebaseSetup";
44
import { Reference } from "@firebase/database-types";

integration_test/tests/v2/eventarc.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import admin from "firebase-admin";
1+
import * as admin from "firebase-admin";
22
import { initializeFirebase } from "../firebaseSetup";
33
import { CloudEvent, getEventarc } from "firebase-admin/eventarc";
44
import { retry } from "../utils";

0 commit comments

Comments
 (0)