Kural Test Ortamı arayüzü

Kural birimi test ortamını kontrol etmek için kullanılan nesne. Farklı kimlik doğrulama durumları için RulesTestContext oluşturmak amacıyla kullanılabilir.

İmza:

export interface RulesTestEnvironment 

Özellikler

Özellik Tür Açıklama
emülatörler { veritabanı: HostAndPort; firestore: HostAndPort; depolama alanı: HostAndPort; } Test ortamı oluşturulurken belirtilen veya keşfedilen emülatör yapılandırmasının salt okunur kopyasıdır.
projectId dize Test ortamı oluşturulurken belirtilen veya bulunan proje kimliği.

Yöntemler

Yöntem Açıklama
authenticatedContext(user_id, tokenOptions) Kimliği doğrulanmış bir Firebase Auth kullanıcısı gibi çalışan bir RulesTestContext oluşturun.Döndürülen bağlam aracılığıyla oluşturulan isteklere örnek bir Firebase Auth jetonu eklenir.
temizleme() Test kodunuzun en sonundaki temizleme işlevini çağırın. Test ortamında oluşturulan tüm RulesTestContexts öğelerini yok edin ve temel kaynakları temizleyerek temiz bir çıkış elde edin.Bu yöntem, emülatörlerdeki durumu hiçbir şekilde değiştirmez. Testler arasında verileri sıfırlamak için bkz. clearDatabase(), clearFirestore() ve clearStorage().
clearDatabase() Realtime Database emülatörü ad alanındaki tüm verileri temizleyin.
clearFirestore() projectId öğesine ait Firestore verilerini Firestore emülatöründe temizleyin.
clearStorage() Storage emülatöründe tüm paketlerdeki Storage dosyalarını ve meta verileri temizleyin.
unauthenticatedContext() Firebase Auth aracılığıyla giriş yapılmamış istemci gibi davranan bir RulesTestContext oluşturun.Döndürülen bağlam aracılığıyla oluşturulan isteklere Firebase Auth jetonları eklenmez.
withSecurityRulesDisabled(callback)

RulesTestEnvironment.emulators

Test ortamı oluşturulurken belirtilen veya keşfedilen emülatör yapılandırmasının salt okunur kopyasıdır.

İmza:

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

RulesTestEnvironment.projectId

Test ortamı oluşturulurken belirtilen veya bulunan proje kimliği.

İmza:

readonly projectId: string;

RulesTestEnvironment.authenticatedContext()

Kimliği doğrulanmış bir Firebase Auth kullanıcısı gibi çalışan bir RulesTestContext oluşturun.

Döndürülen bağlam aracılığıyla oluşturulan isteklere örnek bir Firebase Auth jetonu eklenir.

İmza:

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

Parametreler

Parametre Tür Açıklama
user_id dize kullanıcının Kullanıcı Kimliği. Jetondaki "user_id" ve "sub" değerlerini belirtir
tokenOptions TokenOptions Firebase Kimlik Doğrulama jetonu yükleri için özel hak talepleri veya geçersiz kılmalar

İadeler:

RulesTestContext

Örnek

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

RulesTestEnvironment.cleanup()

Test kodunuzun en sonundaki temizleme işlevini çağırın. Test ortamında oluşturulan tüm RulesTestContexts öğelerini yok edin ve temel kaynakları temizleyerek temiz bir çıkış elde edin.

Bu yöntem, emülatörlerdeki durumu hiçbir şekilde değiştirmez. Testler arasında verileri sıfırlamak için bkz. clearDatabase(), clearFirestore() ve clearStorage().

İmza:

cleanup(): Promise<void>;

İadeler:

Promise<void>

RulesTestEnvironment.clearDatabase()

Realtime Database emülatörü ad alanındaki tüm verileri temizleyin.

İmza:

clearDatabase(): Promise<void>;

İadeler:

Promise<void>

RulesTestEnvironment.clearFirestore()

projectId için varsayılan Firestore veritabanındaki verileri Firestore emülatöründe temizleyin.

İmza:

clearFirestore(): Promise<void>;

İadeler:

Promise<void>

RulesTestEnvironment.clearStorage()

Storage emülatöründe etkin pakette bulunan Storage dosyalarını ve meta verileri temizleyin.

İmza:

clearStorage(): Promise<void>;

İadeler:

Promise<void>

RulesTestEnvironment.unauthenticatedContext()

Firebase Auth aracılığıyla giriş YAPMAMIŞ bir istemci gibi çalışan bir RulesTestContext oluşturun.

Döndürülen bağlam aracılığıyla oluşturulan isteklere Firebase Auth jetonları eklenmez.

İmza:

unauthenticatedContext(): RulesTestContext;

İadeler:

RulesTestContext

Örnek

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

RulesTestEnvironment.withSecurityRulesDisabled()

İmza:

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

Parametreler

Parametre Tür Açıklama
geri çağırma (bağlam: RulesTestContext) => Söz<void>

İadeler:

Promise<void>