From 1361dadc354dbab4a912c5d07d262a5db23c505e Mon Sep 17 00:00:00 2001 From: Jits Date: Mon, 12 Feb 2024 12:45:58 +0000 Subject: [PATCH] fixup! fixup! fixup! fixup! fixup! Initial test suites and CI --- firebase/test/firestore/firestore-rules.spec.ts | 12 ++++-------- firebase/test/helpers/constants.ts | 4 ++++ firebase/test/rtdb/rtdb-rules.spec.ts | 8 ++------ firebase/test/storage/storage-rules.spec.ts | 8 ++------ 4 files changed, 12 insertions(+), 20 deletions(-) create mode 100644 firebase/test/helpers/constants.ts diff --git a/firebase/test/firestore/firestore-rules.spec.ts b/firebase/test/firestore/firestore-rules.spec.ts index d82e8ec..667a4e4 100644 --- a/firebase/test/firestore/firestore-rules.spec.ts +++ b/firebase/test/firestore/firestore-rules.spec.ts @@ -7,22 +7,18 @@ import { deleteDoc, doc, getDoc, setDoc, setLogLevel } from 'firebase/firestore' import { createWriteStream, readFileSync } from 'node:fs'; import { get as httpGet } from 'node:http'; import { afterAll, beforeAll, beforeEach, describe, test } from 'vitest'; +import { TEST_PROJECT_ID } from '../helpers/constants'; import { getFirestoreMeta } from '../helpers/firestore'; -if (!process.env.GCLOUD_PROJECT) { - throw new Error('Missing GCLOUD_PROJECT env var'); -} -const PROJECT_ID = process.env.GCLOUD_PROJECT; - let testEnv: RulesTestEnvironment; beforeAll(async () => { // Silence expected rules rejections from Firestore SDK. Unexpected rejections // will still bubble up and will be thrown as an error (failing the tests as needed). setLogLevel('error'); - const { host, port } = getFirestoreMeta(PROJECT_ID); + const { host, port } = getFirestoreMeta(TEST_PROJECT_ID); testEnv = await initializeTestEnvironment({ - projectId: PROJECT_ID, + projectId: TEST_PROJECT_ID, firestore: { host, port, @@ -35,7 +31,7 @@ afterAll(async () => { await testEnv.cleanup(); // Write the coverage report to a file - const { coverageUrl } = getFirestoreMeta(PROJECT_ID); + const { coverageUrl } = getFirestoreMeta(TEST_PROJECT_ID); const coverageFile = './firestore-coverage.html'; const fstream = createWriteStream(coverageFile); await new Promise((resolve, reject) => { diff --git a/firebase/test/helpers/constants.ts b/firebase/test/helpers/constants.ts new file mode 100644 index 0000000..e460db1 --- /dev/null +++ b/firebase/test/helpers/constants.ts @@ -0,0 +1,4 @@ +if (!process.env.GCLOUD_PROJECT) { + throw new Error('Missing GCLOUD_PROJECT env var'); +} +export const TEST_PROJECT_ID = process.env.GCLOUD_PROJECT; diff --git a/firebase/test/rtdb/rtdb-rules.spec.ts b/firebase/test/rtdb/rtdb-rules.spec.ts index c0fedd8..b5d50b4 100644 --- a/firebase/test/rtdb/rtdb-rules.spec.ts +++ b/firebase/test/rtdb/rtdb-rules.spec.ts @@ -7,13 +7,9 @@ import { get, ref, remove, set } from 'firebase/database'; import { createWriteStream, readFileSync } from 'node:fs'; import { get as httpGet } from 'node:http'; import { afterAll, beforeAll, beforeEach, describe, test } from 'vitest'; +import { TEST_PROJECT_ID } from '../helpers/constants'; import { getRtdbMeta } from '../helpers/rtdb'; -if (!process.env.GCLOUD_PROJECT) { - throw new Error('Missing GCLOUD_PROJECT env var'); -} -const PROJECT_ID = process.env.GCLOUD_PROJECT; - const DATABASE_NAME = 'demo-test-rtdb'; let testEnv: RulesTestEnvironment; @@ -21,7 +17,7 @@ let testEnv: RulesTestEnvironment; beforeAll(async () => { const { host, port } = getRtdbMeta(DATABASE_NAME); testEnv = await initializeTestEnvironment({ - projectId: PROJECT_ID, + projectId: TEST_PROJECT_ID, database: { port, host, diff --git a/firebase/test/storage/storage-rules.spec.ts b/firebase/test/storage/storage-rules.spec.ts index 65aa3a3..71c8e97 100644 --- a/firebase/test/storage/storage-rules.spec.ts +++ b/firebase/test/storage/storage-rules.spec.ts @@ -6,19 +6,15 @@ import { import { deleteObject, getDownloadURL, ref, updateMetadata } from 'firebase/storage'; import { readFileSync } from 'node:fs'; import { afterAll, beforeAll, beforeEach, describe, test } from 'vitest'; +import { TEST_PROJECT_ID } from '../helpers/constants'; import { getStorageMeta } from '../helpers/storage'; -if (!process.env.GCLOUD_PROJECT) { - throw new Error('Missing GCLOUD_PROJECT env var'); -} -const PROJECT_ID = process.env.GCLOUD_PROJECT; - let testEnv: RulesTestEnvironment; beforeAll(async () => { const { host, port } = getStorageMeta(); testEnv = await initializeTestEnvironment({ - projectId: PROJECT_ID, + projectId: TEST_PROJECT_ID, storage: { port, host,