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