RulesTestEnvironment インターフェース

ルールの単体テスト環境の制御に使用されるオブジェクト。さまざまな認証状況の RulesTestContext の作成に使用できます。

署名:

export interface RulesTestEnvironment 

プロパティ

プロパティ 説明
エミュレータ { database?:HostAndPort;Firestore?:HostAndPort;storage?:HostAndPort;} テスト環境の作成時に指定または検出されたエミュレータ構成の読み取り専用コピー。
projectId 文字列 テスト環境の作成時に指定または検出されたプロジェクト ID。

メソッド

メソッド 説明
AuthenticatedContext(user_id, tokenOptions) 認証済みの Firebase Auth ユーザーのように動作する RulesTestContext を作成します。返されたコンテキストを介して作成されたリクエストには、疑似 Firebase Auth トークンが添付されます。
cleanup() テストコードの最後にクリーンアップ関数を呼び出します。テスト環境で作成されたすべての RulesTestContexts を破棄し、基盤となるリソースをクリーンアップして、完全に終了できるようにします。このメソッドは、エミュレータの状態を変更することはありません。テスト間でデータをリセットするには、clearDatabase()clearFirestore()clearStorage() をご覧ください。
clearDatabase() Realtime Database エミュレータの名前空間のデータをすべて消去します。
clearFirestore() Firestore エミュレータの projectId に属する Firestore のデータを削除します。
clearStorage() Storage エミュレータで、すべてのバケットの Storage ファイルとメタデータを消去します。
unauthenticatedContext() Firebase Auth でログインしていないクライアントのように動作する RulesTestContext を作成します。返されたコンテキストを介して作成されたリクエストには、Firebase Auth トークンが添付されません。
withSecurityRulesDisabled(callback)

RulesTestEnvironment.emulators

テスト環境の作成時に指定または検出されたエミュレータ構成の読み取り専用コピー。

署名:

readonly emulators: {
        database?: HostAndPort;
        firestore?: HostAndPort;
        storage?: HostAndPort;
    };

RulesTestEnvironment.projectId

テスト環境の作成時に指定または検出されたプロジェクト ID。

署名:

readonly projectId: string;

RulesTestEnvironment.authenticatedContext()

認証された Firebase Auth ユーザーのように動作する RulesTestContext を作成します。

返されたコンテキストを介して作成されたリクエストには、疑似 Firebase Auth トークンが添付されます。

署名:

authenticatedContext(user_id: string, tokenOptions?: TokenOptions): RulesTestContext;

パラメータ

パラメータ 説明
user_id 文字列 ユーザーの User-ID。user_id の値を指定します。および「sub」対して、
tokenOptions TokenOptions Firebase Auth トークン ペイロードのカスタム クレームまたはオーバーライド

戻り値:

RulesTestContext

const alice = testEnv.authenticatedContext('alice');
await assertSucceeds(getDoc(alice.firestore(), '/doc/readable/by/alice'), { ... });

RulesTestEnvironment.cleanup()

テストコードの最後にクリーンアップ関数を呼び出します。テスト環境で作成されたすべての RulesTestContexts を破棄し、基になるリソースをクリーンアップして、完全に終了できるようにします。

このメソッドではエミュレータの状態が変わることはありません。テストの合間にデータをリセットするには、clearDatabase()clearFirestore()clearStorage() をご覧ください。

署名:

cleanup(): Promise<void>;

戻り値:

約束 <void>

RulesTestEnvironment.clearDatabase()

Realtime Database エミュレータの名前空間のデータをすべて消去します。

署名:

clearDatabase(): Promise<void>;

戻り値:

約束 <void>

RulesTestEnvironment.clearFirestore()

Firestore エミュレータで、projectId のデフォルトの Firestore データベースのデータを消去します。

署名:

clearFirestore(): Promise<void>;

戻り値:

約束 <void>

RulesTestEnvironment.clearStorage()

Storage エミュレータで、アクティブ バケット内の Storage ファイルとメタデータを消去します。

署名:

clearStorage(): Promise<void>;

戻り値:

約束 <void>

RulesTestEnvironment.unauthenticatedContext()

Firebase Auth でログインしていないクライアントのように動作する RulesTestContext を作成します。

返されたコンテキストを介して作成されたリクエストには、Firebase Auth トークンが添付されません。

署名:

unauthenticatedContext(): RulesTestContext;

戻り値:

RulesTestContext

const unauthed = testEnv.unauthenticatedContext();
await assertFails(getDoc(unauthed.firestore(), '/private/doc'), { ... });

RulesTestEnvironment.withSecurityRulesDisabled()

署名:

withSecurityRulesDisabled(callback: (context: RulesTestContext) => Promise<void>): Promise<void>;

パラメータ

パラメータ 説明
callback (コンテキスト: RulesTestContext) =>約束 <void>

戻り値:

約束 <void>