Fonksiyonlar
İşlev | Tanım |
---|---|
iddiaFails(pr) | Taahhüdün "izin reddedildi" hatasıyla reddedileceğini iddia edin. Belirli bir isteğin Güvenlik Kuralları tarafından reddedileceğini ileri sürmek faydalıdır. Aşağıdaki örneğe bakın. Bu işlev Database, Firestore ve Storage JS SDK'larından gelen izin reddedilen hataları tanır. |
iddiaSucceeds(pr) | Taahhüdün "izin reddedildi" hatasıyla reddedileceğini iddia edin. Bu, iletilen vaadi olduğu gibi döndüren işlem dışı bir işlevdir, ancak belirli bir isteğin başarılı olması gerektiğini (örneğin, kurallar tarafından izin verilmesi) vurgulamak için test kodunda belgeleme amacıyla kullanılabilir. |
BaşlatmaTestEnvironment(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ını gerektirir. Bu işlev, bu emülatörleri ortam değişkenleri aracılığıyla veya ana bilgisayarlar ve bağlantı noktaları belirtilmemişse Firebase Emulator hub'ı aracılığıyla keşfetmeye çalışır. Test için kullanılan emülatörler için güvenlik kurallarının belirtilmesi önemle tavsiye edilir. Aşağıdaki minimal örneğe bakın. |
withFunctionTriggersDisabled(fn) | Arka plan Bulut İşlevleri tetikleyicileri devre dışıyken bir kurulum işlevi çalıştırın. Bu, yerel olarak öykünülmüş Bulut İşlevlerini tetiklemeden verileri Gerçek Zamanlı Veritabanına veya Cloud Firestore öykünücüsüne aktarmak için kullanılabilir. Bu yöntem yalnızca Firebase CLI sürüm 8.13.0 veya üzeri ile çalışır. Bu aşırı yükleme yalnızca Emulator hub ana bilgisayarı:bağlantı noktası FIREBASE_EMULATOR_HUB ortam değişkeni tarafından belirtildiğinde çalışır. |
withFunctionTriggersDisabled(hub, fn) | Arka plan Bulut İşlevleri tetikleyicileri devre dışıyken bir kurulum işlevi çalıştırın. Bu, yerel olarak öykünülmüş Bulut İşlevlerini tetiklemeden verileri Gerçek Zamanlı Veritabanına veya Cloud Firestore öykünücüsüne aktarmak için kullanılabilir. Bu yöntem yalnızca Firebase CLI sürüm 8.13.0 veya üzeri ile çalışır. Bu aşırı yüklemede hangi ana bilgisayar ve bağlantı noktasının belirtildiği Emulator hub'ının çalışıyor olması gerekir. |
Arayüzler
Arayüz | Tanım |
---|---|
Ana Bilgisayar ve Bağlantı Noktası | Bir öykünücünün ana bilgisayar adını ve bağlantı noktası numarasını içeren bir nesne. |
KurallarTestBağlamı | Bir istemciyi temsil eden bir test bağlamı. Kural birimi testi için emülatörlere erişmek için 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 için kullanılabilir. |
TestEnvironmentConfig | Emülatörler de dahil olmak üzere birim test ortamının yapılandırılması. |
Takma Adları Yazın
Takma Ad yazın | Tanım |
---|---|
EmulatorYapılandırması | Belirli bir emülatör için yapılandırma. |
TokenSeçenekleri | Geliştirici tarafından belirlenen özel talepler veya Firebase Auth jetonu yükleri için isteğe bağlı geçersiz kılmalar da dahil olmak üzere, test için kullanılacak sahte kullanıcı jetonuna yönelik daha fazla seçenek. |
iddiaFails()
Taahhüdün "izin reddedildi" hatasıyla reddedileceğini iddia edin.
Belirli bir isteğin Güvenlik Kuralları tarafından reddedileceğini ileri sürmek faydalıdır. Aşağıdaki örneğe bakın. Bu işlev Database, Firestore ve Storage JS SDK'larından gelen izin reddedilen hataları tanır.
İmza:
export declare function assertFails(pr: Promise<any>): Promise<any>;
Parametreler
Parametre | Tip | Tanım |
---|---|---|
halkla ilişkiler | <herhangi birine> söz ver | ileri sürülecek söz |
İadeler:
<herhangi birine> söz ver
pr'nin "izin reddedildi" ile reddedilmesi durumunda yerine getirilen bir Söz. PR başka bir hatayla reddedilirse veya çözümlenirse, döndürülen söz reddedilir.
Örnek
const unauthed = testEnv.unauthenticatedContext();
await assertFails(getDoc(unauthed.firestore(), '/private/doc'), { ... });
iddiaBaşarılı()
Başarılı olma sözünü verin.
Bu, iletilen vaadi olduğu gibi döndüren işlem dışı bir işlevdir, ancak belirli bir isteğin başarılı olması gerektiğini (örneğin, kurallar tarafından izin verilmesi) vurgulamak için test kodunda belgeleme amacıyla kullanılabilir.
İmza:
export declare function assertSucceeds<T>(pr: Promise<T>): Promise<T>;
Parametreler
Parametre | Tip | Tanım |
---|---|---|
halkla ilişkiler | Söz<T> |
İadeler:
Söz<T>
Örnek
const alice = testEnv.authenticatedContext('alice');
await assertSucceeds(getDoc(alice.firestore(), '/doc/readable/by/alice'), { ... });
BaşlatmaTestEnvironment()
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, bu emülatörleri ortam değişkenleri aracılığıyla veya ana bilgisayarlar ve bağlantı noktaları belirtilmemişse Firebase Emulator hub'ı aracılığıyla keşfetmeye çalışır. Test için kullanılan emülatörler için güvenlik kurallarının belirtilmesi önemle tavsiye edilir. Aşağıdaki minimal örneğe bakın.
İmza:
export declare function initializeTestEnvironment(config: TestEnvironmentConfig): Promise<RulesTestEnvironment>;
Parametreler
Parametre | Tip | Tanım |
---|---|---|
yapılandırma | TestEnvironmentConfig | emülatörler için yapılandırma. Çoğu alan keşfedilebilirse isteğe bağlıdır |
İadeler:
Söz< KurallarTestEnvironment >
teste hazır bir ortamla çözülen veya hata durumunda reddedilen bir söz.
Ö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 plan Bulut İşlevleri tetikleyicileri devre dışıyken bir kurulum işlevi çalıştırın. Bu, yerel olarak öykünülmüş Bulut İşlevlerini tetiklemeden verileri Gerçek Zamanlı Veritabanına veya Cloud Firestore öykünücüsüne aktarmak için kullanılabilir.
Bu yöntem yalnızca Firebase CLI sürüm 8.13.0 veya üzeri ile çalışır. Bu aşırı yükleme yalnızca Emulator hub ana bilgisayarı:bağlantı noktası FIREBASE_EMULATOR_HUB ortam değişkeni tarafından belirtildiğinde çalışır.
İmza:
export declare function withFunctionTriggersDisabled<TResult>(fn: () => TResult | Promise<TResult>): Promise<TResult>;
Parametreler
Parametre | Tip | Tanım |
---|---|---|
fn | () => TRsonuç | Söz<TResult> | senkronize veya eşzamansız olabilecek bir işlev (bir söz verir) |
İadeler:
Söz<TResult>
withFunctionTriggersDisabled()
Arka plan Bulut İşlevleri tetikleyicileri devre dışıyken bir kurulum işlevi çalıştırın. Bu, yerel olarak öykünülmüş Bulut İşlevlerini tetiklemeden verileri Gerçek Zamanlı Veritabanına veya Cloud Firestore öykünücüsüne aktarmak için kullanılabilir.
Bu yöntem yalnızca Firebase CLI sürüm 8.13.0 veya üzeri ile çalışır. Bu aşırı yüklemede hangi ana bilgisayar ve bağlantı noktasının belirtildiği Emulator hub'ının çalışıyor olması gerekir.
İmza:
export declare function withFunctionTriggersDisabled<TResult>(hub: {
host: string;
port: number;
}, fn: () => TResult | Promise<TResult>): Promise<TResult>;
Parametreler
Parametre | Tip | Tanım |
---|---|---|
merkez | { ana bilgisayar: dize; Port numarası; } | Emulator Hub'ın ana bilgisayarı ve bağlantı noktası (ör. {host: 'localhost', port: 4400} ) |
fn | () => TRsonuç | Söz<TResult> | senkronize veya eşzamansız olabilecek bir işlev (bir söz verir) |
İadeler:
Söz<TResult>
EmulatorYapılandırması
Belirli bir emülatör için yapılandırma.
İmza:
export declare type EmulatorConfig = {
rules?: string;
} & (HostAndPort | {});
TokenSeçenekleri
Geliştirici tarafından belirlenen özel talepler veya Firebase Auth jetonu yükleri için isteğe bağlı geçersiz kılmalar da dahil olmak üzere, test için kullanılacak sahte kullanıcı jetonuna yönelik daha fazla seçenek.
İ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;
};