Tanda Tangan:
export interface RulesTestEnvironment
Properti
Properti | Jenis | Deskripsi |
---|---|---|
emulator | { database?: HostAndPort; firestore?: HostAndPort; penyimpanan?: HostAndPort; } | Salinan hanya baca dari konfigurasi emulator yang ditentukan atau ditemukan saat pembuatan lingkungan pengujian. |
projectId | string | Project ID yang ditentukan atau ditemukan saat pembuatan lingkungan pengujian. |
Metode
Metode | Deskripsi |
---|---|
authenticatedContext(user_id, tokenOptions) | Buat RulesTestContext yang berperilaku seperti pengguna Firebase Auth terautentikasi.Permintaan yang dibuat melalui konteks yang ditampilkan akan menyertakan token Firebase Auth tiruan. |
cleanup() | Di bagian paling akhir dari kode pengujian Anda, panggil fungsi pembersihan. Hancurkan semua RulesTestContexts yang dibuat di lingkungan pengujian dan membersihkan resource yang mendasarinya, sehingga menghasilkan exit yang bersih.Metode ini tidak mengubah status di emulator dengan cara apa pun. Untuk mereset data antarpengujian, lihat clearDatabase() , clearFirestore() , dan clearStorage() . |
clearDatabase() | Hapus semua data di namespace emulator Realtime Database. |
clearFirestore() | Menghapus data di Firestore yang termasuk dalam projectId di emulator Firestore. |
clearStorage() | Menghapus metadata dan file Storage di semua bucket di emulator Storage. |
unauthenticatedContext() | Buat RulesTestContext yang berperilaku seperti klien yang TIDAK login melalui Firebase Auth.Permintaan yang dibuat melalui konteks yang ditampilkan tidak akan menyertakan token Firebase Auth. |
withSecurityRulesDisabled(callback) |
RulesTestEnvironment.emulators
Salinan hanya baca dari konfigurasi emulator yang ditentukan atau ditemukan saat pembuatan lingkungan pengujian.
Tanda Tangan:
readonly emulators: {
database?: HostAndPort;
firestore?: HostAndPort;
storage?: HostAndPort;
};
RulesTestEnvironment.projectId
Project ID yang ditentukan atau ditemukan saat pembuatan lingkungan pengujian.
Tanda Tangan:
readonly projectId: string;
RulesTestEnvironment.authenticatedContext()
Buat RulesTestContext
yang berperilaku seperti pengguna Firebase Auth yang diautentikasi.
Permintaan yang dibuat melalui konteks yang ditampilkan akan memiliki token Firebase Auth tiruan yang dilampirkan.
Tanda Tangan:
authenticatedContext(user_id: string, tokenOptions?: TokenOptions): RulesTestContext;
Parameter
Parameter | Jenis | Deskripsi |
---|---|---|
user_id | string | ID Pengguna pengguna. Menentukan nilai "user_id" dan "sub" di token |
tokenOptions | TokenOptions | klaim atau penggantian kustom untuk payload token Firebase Auth |
Hasil:
Contoh
const alice = testEnv.authenticatedContext('alice');
await assertSucceeds(getDoc(alice.firestore(), '/doc/readable/by/alice'), { ... });
RulesTestEnvironment.cleanup()
Di bagian paling akhir dari kode pengujian Anda, panggil fungsi pembersihan. Hancurkan semua RulesTestContexts yang dibuat di lingkungan pengujian dan membersihkan resource yang mendasarinya, sehingga memungkinkan keluar secara bersih.
Metode ini tidak mengubah status di emulator dengan cara apa pun. Untuk mereset data di antara pengujian, lihat clearDatabase()
, clearFirestore()
, dan clearStorage()
.
Tanda Tangan:
cleanup(): Promise<void>;
Hasil:
Janji<void>
RulesTestEnvironment.clearDatabase()
Hapus semua data di namespace emulator Realtime Database.
Tanda Tangan:
clearDatabase(): Promise<void>;
Hasil:
Janji<void>
RulesTestEnvironment.clearFirestore()
Hapus data di database Firestore default untuk projectId
di emulator Firestore.
Tanda Tangan:
clearFirestore(): Promise<void>;
Hasil:
Janji<void>
RulesTestEnvironment.clearStorage()
Menghapus metadata dan file Storage di bucket active di emulator Storage.
Tanda Tangan:
clearStorage(): Promise<void>;
Hasil:
Janji<void>
RulesTestEnvironment.unauthenticatedContext()
Buat RulesTestContext
yang berperilaku seperti klien yang TIDAK login melalui Firebase Auth.
Permintaan yang dibuat melalui konteks yang ditampilkan tidak akan menyertakan token Firebase Auth.
Tanda Tangan:
unauthenticatedContext(): RulesTestContext;
Hasil:
Contoh
const unauthed = testEnv.unauthenticatedContext();
await assertFails(getDoc(unauthed.firestore(), '/private/doc'), { ... });
RulesTestEnvironment.withSecurityRulesDisabled()
Tanda Tangan:
withSecurityRulesDisabled(callback: (context: RulesTestContext) => Promise<void>): Promise<void>;
Parameter
Parameter | Jenis | Deskripsi |
---|---|---|
callback | (context: RulesTestContext) => Janji<void> |
Hasil:
Janji<void>