İ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:
Ö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:
Ö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>