İşlevler
İşlev | Açıklama |
---|---|
assertFails(ilk) | "İzin reddedildi" ile reddedilme sözünü iddia etmek hatası.Belirli bir isteğin Güvenlik Kuralları tarafından reddedileceğini iddia etmek için kullanışlıdır. Aşağıdaki örneğe bakın. Bu işlev; Database, Firestore ve Storage JS SDK'larından gelen izin reddedildi hatalarını tanır. |
assertSucceeds(pr) | "İzin reddedildi" hatasıyla vaatte bulunulacağını beyan etmek hatası.Bu, aktarılan vaadi olduğu gibi döndüren, işlemsiz bir işlevdir ancak belirli bir isteğin başarılı olması gerektiğini (ör. kurallar tarafından izin verilir) vurgulamak için test kodunda belgeleme amacıyla kullanılabilir. |
initializeTestEnvironment(config) | Kural birimi testi için bir test ortamı başlatır. Test kurulumu için önce bu işlevi çağırın.Emülatörlerin çalışması gerekir. Bu işlev, ortam değişkenleri veya ana makineler ve bağlantı noktaları belirtilmemişse Firebase Emulator merkezi aracılığıyla bu emülatörleri keşfetmeye çalışır. Test için kullanılan emülatörlere yönelik güvenlik kurallarının belirtilmesi önemle tavsiye edilir. Aşağıdaki minimum örneği inceleyin. |
withFunctionTriggersDisabled(fn) | Arka plandaki Cloud Functions tetikleyicileri devre dışıyken bir kurulum işlevi çalıştırın. Bu özellik, yerel olarak emüle edilen Cloud Functions'ı tetiklemeden Realtime Database'e veya Cloud Firestore emülatörüne veri aktarmak için kullanılabilir.Bu yöntem yalnızca Firebase CLI'ın 8.13.0 veya sonraki sürümleriyle çalışır. Bu aşırı yükleme yalnızca Emulator hub:host:port, FIREBASE_EMULATOR_HUB ortam değişkeni tarafından belirtilirse çalışır. |
withFunctionTriggersDisabled(hub, fn) | Arka plandaki Cloud Functions tetikleyicileri devre dışıyken bir kurulum işlevi çalıştırın. Bu özellik, yerel olarak emüle edilen Cloud Functions'ı tetiklemeden Realtime Database'e veya Cloud Firestore emülatörüne veri aktarmak için kullanılabilir.Bu yöntem yalnızca Firebase CLI'ın 8.13.0 veya sonraki sürümleriyle çalışır. Bu aşırı yüklemede hangi ana makinenin ve bağlantı noktasının belirtildiği Emulator Hub'ın çalışması gerekir. |
Arayüzler
Arayüz | Açıklama |
---|---|
Ana Makine ve Bağlantı Noktası | Emülatörün ana makine adını ve bağlantı noktası numarasını içeren bir nesne. |
KurallarTestBağlamı | Bir müşteriyi temsil eden test bağlamı. Kural birimi testi için emülatörlere erişmek amacıyla kullanılabilir. |
KurallarTestOrtamı | 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. |
TestEnvironmentConfig | Emülatörler de dahil olmak üzere birim test ortamının yapılandırması. |
Tür Takma Adları
Takma Ad yazın | Açıklama |
---|---|
EmulatorConfig | Belirli bir emülatörün yapılandırması. |
TokenOptions | Test için kullanılacak sahte kullanıcı jetonuna yönelik diğer seçenekler (geliştirici tarafından belirtilen özel hak talepleri veya Firebase Auth jetonu yükleri için isteğe bağlı geçersiz kılmalar gibi). |
VerifyFails(),
"İzin reddedildi" hatasıyla vaatte bulunulacağını beyan etmek hatası.
Belirli bir isteğin Güvenlik Kuralları tarafından reddedilmesini iddia etmek için kullanışlıdır. Aşağıdaki örneğe bakın. Bu işlev; Database, Firestore ve Storage JS SDK'larından gelen izin reddedildi hatalarını tanır.
İmza:
export declare function assertFails(pr: Promise<any>): Promise<any>;
Parametreler
Parametre | Tür | Açıklama |
---|---|---|
pr | Söz veriyorum<herhangi biri> | söz konusu vaat |
Şunu döndürür:
Söz veriyorum<herhangi biri>
pr "izin reddedildi" olarak reddedildiğinde yerine getirilecek bir Taahhüt. pr başka bir hata ile reddedilirse veya çözümlenirse döndürülen vaat reddedilir.
Örnek
const unauthed = testEnv.unauthenticatedContext();
await assertFails(getDoc(unauthed.firestore(), '/private/doc'), { ... });
assertSucceeds()
Başarılı olma sözü verin.
Bu, iletilen taahhüdü olduğu gibi döndüren, işlemsiz bir işlevdir ancak belirli bir isteğin başarılı olması gerektiğini (ör. kurallar tarafından izin verilir) vurgulamak için test kodunda belgeleme amacıyla kullanılabilir.
İmza:
export declare function assertSucceeds<T>(pr: Promise<T>): Promise<T>;
Parametreler
Parametre | Tür | Açıklama |
---|---|---|
pr | Söz<T> |
Şunu döndürür:
Söz<T>
Örnek
const alice = testEnv.authenticatedContext('alice');
await assertSucceeds(getDoc(alice.firestore(), '/doc/readable/by/alice'), { ... });
startizeTestEnvironment()
Kural birimi testi için bir test ortamı başlatır. Test kurulumu için önce bu işlevi çağırın.
Emülatörlerin çalışmasını gerektirir. Bu işlev, ortam değişkenleri veya ana makineler ve bağlantı noktaları belirtilmemişse Firebase Emulator merkezi aracılığıyla bu emülatörleri keşfetmeye çalışır. Test için kullanılan emülatörlere yönelik güvenlik kurallarının belirtilmesi önemle tavsiye edilir. Aşağıdaki minimum örneği inceleyin.
İmza:
export declare function initializeTestEnvironment(config: TestEnvironmentConfig): Promise<RulesTestEnvironment>;
Parametreler
Parametre | Tür | Açıklama |
---|---|---|
yapılandırma | TestEnvironmentConfig | yapılandırmanın en iyi yoludur. Keşfedilebiliyorsa çoğu alan isteğe bağlıdır |
Şunu döndürür:
Promise<RulesTestEnvironment> (Kurallar - Test Ortamı)
bir ortam test etmeye hazır olduğunda çözümlenen veya hata olduğunda reddeden bir vaattir.
Örnek
const testEnv = await initializeTestEnvironment({
firestore: {
rules: fs.readFileSync("/path/to/firestore.rules", "utf8"), // Load rules from file
// host and port can be omitted if they can be discovered from the hub.
},
// ...
});
withFunctionTriggersDisabled()
Arka plandaki Cloud Functions tetikleyicileri devre dışıyken bir kurulum işlevi çalıştırın. Bu özellik, yerel olarak emüle edilen Cloud Functions işlevlerini tetiklemeden Realtime Database veya Cloud Firestore emülatörüne veri aktarmak için kullanılabilir.
Bu yöntem yalnızca Firebase CLI'ın 8.13.0 veya sonraki sürümleriyle kullanılabilir. Bu aşırı yükleme yalnızca Emulator hub:host:port, FIREBASE_EMULATOR_HUB ortam değişkeni tarafından belirtilirse çalışır.
İmza:
export declare function withFunctionTriggersDisabled<TResult>(fn: () => TResult | Promise<TResult>): Promise<TResult>;
Parametreler
Parametre | Tür | Açıklama |
---|---|---|
fn | () => Sonuç | Promise<TResult> | senkronize veya eşzamansız olabilen bir işlev (bir söz döndürür) |
Şunu döndürür:
Promise<TResult>
withFunctionTriggersDisabled()
Arka plandaki Cloud Functions tetikleyicileri devre dışıyken bir kurulum işlevi çalıştırın. Bu özellik, yerel olarak emüle edilen Cloud Functions işlevlerini tetiklemeden Realtime Database veya Cloud Firestore emülatörüne veri aktarmak için kullanılabilir.
Bu yöntem yalnızca Firebase CLI'ın 8.13.0 veya sonraki sürümleriyle kullanılabilir. Bu aşırı yüklemede hangi ana makinenin ve bağlantı noktasının belirtildiği Emulator Hub'ın çalışması gerekir.
İmza:
export declare function withFunctionTriggersDisabled<TResult>(hub: {
host: string;
port: number;
}, fn: () => TResult | Promise<TResult>): Promise<TResult>;
Parametreler
Parametre | Tür | Açıklama |
---|---|---|
hub | { host: string; bağlantı noktası: numara; } | Emulator Hub'ın ana makinesi ve bağlantı noktası (ör. {host: 'localhost', port: 4400} ) |
fn | () => Sonuç | Promise<TResult> | senkronize veya eşzamansız olabilen bir işlev (bir söz döndürür) |
Şunu döndürür:
Promise<TResult>
EmulatorConfig
Belirli bir emülatör için yapılandırma.
İmza:
export declare type EmulatorConfig = {
rules?: string;
} & (HostAndPort | {});
Jeton Seçenekleri
Test için kullanılacak sahte kullanıcı jetonuna yönelik diğer seçenekler (geliştirici tarafından belirtilen özel hak talepleri veya Firebase Auth jetonu yükleri için isteğe bağlı geçersiz kılmalar gibi).
İmza:
export declare type TokenOptions = {
iat?: number;
exp?: number;
auth_time?: number;
provider_id?: 'anonymous';
email?: string;
email_verified?: boolean;
phone_number?: string;
name?: string;
picture?: string;
firebase?: {
sign_in_provider: FirebaseSignInProvider;
identities?: {
[provider in FirebaseSignInProvider]?: string[];
};
};
aud?: string;
iss?: string;
[claim: string]: unknown;
uid?: never;
sub?: never;
user_id?: never;
};