typescript - Pengujian aturan firestore terhadap emulator gagal dengan alasan: Token tak terduga < dalam JSON pada posisi 0


Saya sedang mencoba mengatur pengujian unit untuk aturan Firestore saya.

Karena saya menggunakan TypeScript dan Jest untuk pengujian, saya mencoba mengedit contoh ini tetapi tampaknya saya melewatkan sesuatu.

Ini adalah file saya:

import { readFileSync } from 'fs-extra'

import * as firebase from '@firebase/rules-unit-testing'
import { getDoc, setDoc, setLogLevel } from 'firebase/firestore'

describe('Firestore Rules', () => {
    let testEnv: firebase.RulesTestEnvironment;
    beforeAll(async () => {
        testEnv = await firebase.initializeTestEnvironment({
            firestore: { rules: readFileSync('../firestore.rules', 'utf8') },
            projectId: 'myproject',
            hub: { host: 'localhost', port: 4000 },
        });
    });

    afterAll(async () => {
        await testEnv.cleanup();
    });

    beforeEach(async () => {
        await testEnv.clearFirestore();
    });


    test('noone should have access to user document', async function () {
        // Setup: Create documents in DB for testing (bypassing Security Rules).
        await testEnv.withSecurityRulesDisabled(async (context) => {
            const testdoc = context.firestore().collection('users').doc('user1234');
            await setDoc(testdoc, { test: 'test1' });
        });

        const unauthedDb = testEnv.unauthenticatedContext().firestore();

        // Then test security rules by trying to read it using the client SDK.
        const testdoc = unauthedDb.collection('users').doc('user1234');

        await firebase.assertFails(getDoc(testdoc));

    });
});

Ini adalah file aturan saya:

rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {
    match /users/{userId} {
       allow read, write: if false;
    }
  }
}

Ketika saya mencoba menjalankan tes, saya mendapatkan kesalahan ini :

 FAIL  src/tests/rules.test.ts
  ●  Firestore Rules › noone should have access to user document

    FetchError: invalid json response body at http://localhost:4000/emulators reason: Unexpected token < in JSON at position 0

      at node_modules/@firebase/rules-unit-testing/node_modules/node-fetch/lib/index.js:272:32

Jadi apa yang saya lakukan salah?