RulesTestEnvironment インターフェース

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

署名:

export interface RulesTestEnvironment 

プロパティ

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

Methods

メソッド 説明
authenticatedContext(user_id, tokenOptions) 認証済みの Firebase Auth ユーザーと同様に動作する RulesTestContext を作成します。返されたコンテキストを介して作成されたリクエストには、モックの Firebase Auth トークンが添付されます。
cleanup() テストコードの最後にクリーンアップ関数を呼び出します。テスト環境で作成されたすべての RulesTestContext を破棄し、基盤となるリソースをクリーンアップして、クリーンな終了を可能にします。このメソッドは、エミュレータの状態を変更することはありません。テスト間でデータをリセットするには、clearDatabase()clearFirestore()clearStorage() をご覧ください。
clearDatabase() Realtime Database エミュレータの名前空間内のすべてのデータを消去します。
clearFirestore() Firestore エミュレータの projectId に属する Firestore のデータを削除します。
clearStorage() 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 認証トークンが添付されます。

署名:

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

パラメータ

パラメータ タイプ 説明
user_id string ユーザーのユーザー 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()

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

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

署名:

cleanup(): Promise<void>;

戻り値:

Promise<void>

RulesTestEnvironment.clearDatabase()

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

署名:

clearDatabase(): Promise<void>;

戻り値:

Promise<void>

RulesTestEnvironment.clearFirestore()

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

署名:

clearFirestore(): Promise<void>;

戻り値:

Promise<void>

RulesTestEnvironment.clearStorage()

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

署名:

clearStorage(): Promise<void>;

戻り値:

Promise<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) => Promise<void>

戻り値:

Promise<void>