kural birimi test paketi

İş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;
};