Kural Test Ortamı arayüzü

Kural birimi test ortamını kontrol etmek için kullanılan bir 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ı mı?: HostAndPort; } Test ortamı oluşturulurken belirtilen veya keşfedilen emülatör yapılandırmasının salt okunur bir kopyası.
proje kimliği dize Test ortamı oluşturulurken belirtilen veya keşfedilen proje kimliği.

Yöntemler

Yöntem Açıklama
authenticatedContext(user_id, tokenOptions) Kimliği doğrulanmış bir Firebase Auth kullanıcısı gibi davranan bir RulesTestContext oluşturun.Döndürülen içerik aracılığıyla oluşturulan isteklere sahte bir Firebase Auth jetonu eklenir.
cleanup() Test kodunuzun en sonunda temizleme işlevini çağırın. Test ortamında oluşturulan tüm RulesTestContext'leri yok edip 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 clearDatabase(), clearFirestore() ve clearStorage() sayfalarına göz atın.
clearDatabase() Realtime Database emülatörü ad alanındaki tüm verileri temizleyin.
clearFirestore() Firestore emülatöründe projectId öğesine ait verileri Firestore'da temizleyin.
clearStorage() Storage emülatöründe tüm paketlerdeki Storage dosyalarını ve meta verilerini 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)

Kural Test Ortamı.emülatörleri

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

İmza:

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

KurallarTestEnvironment.projekimliği

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

İmza:

readonly projectId: string;

RulesTestEnvironment.authenticatedContext()

Kimliği doğrulanmış bir Firebase Auth kullanıcısı gibi davranan 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. "user_id" değerini belirtir ve "sub" jeton üzerinde
belirteç Seçenekleri TokenOptions Firebase Auth jetonu yükleri için özel hak talepleri veya geçersiz kılma işlemleri

Şunu döndürür:

KurallarTestBağlamı

Örnek

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

KurallarTestEnvironment.cleanup()

Test kodunuzun en sonunda temizleme işlevini çağırın. Test ortamında oluşturulan tüm RulesTestContext'leri yok edin ve temel kaynakları temizleyerek temiz bir çıkış yapın.

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

İmza:

cleanup(): Promise<void>;

Şunu döndürür:

Taahhüt<void>

KurallarTestEnvironment.clearDatabase()

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

İmza:

clearDatabase(): Promise<void>;

Şunu döndürür:

Taahhüt<void>

KurallarTestEnvironment.clearFirestore()

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

İmza:

clearFirestore(): Promise<void>;

Şunu döndürür:

Taahhüt<void>

KurallarTestEnvironment.clearStorage()

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

İmza:

clearStorage(): Promise<void>;

Şunu döndürür:

Taahhüt<void>

RulesTestEnvironment.unauthenticatedContext()

Firebase Auth aracılığıyla giriş YAPILMAMIŞ 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;

Şunu döndürür:

KurallarTestBağlamı

Örnek

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

KurallarıTestEnvironment.withSecurityRulesDisabled()

İmza:

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

Parametreler

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

Şunu döndürür:

Taahhüt<void>