नियम-इकाई-परीक्षण पैकेज

कार्य

समारोह विवरण
ज़ोर विफल(पीआर) "अनुमति अस्वीकृत" त्रुटि के साथ अस्वीकार किए जाने का वादा करें। सुरक्षा नियमों द्वारा अस्वीकृत किए जाने वाले एक निश्चित अनुरोध पर जोर देने के लिए उपयोगी। नीचे उदाहरण देखें. यह फ़ंक्शन डेटाबेस, फायरस्टोर और स्टोरेज जेएस एसडीके से अनुमति-अस्वीकृत त्रुटियों को पहचानता है।
जोर देकर सफलता(पीआर) "अनुमति अस्वीकृत" त्रुटि के साथ अस्वीकार किए जाने का वादा करें। यह एक नो-ऑप फ़ंक्शन है जो पारित वादे को यथावत लौटाता है, लेकिन इसका उपयोग परीक्षण कोड में दस्तावेज़ीकरण उद्देश्यों के लिए किया जा सकता है ताकि इस बात पर जोर दिया जा सके कि एक निश्चित अनुरोध सफल होना चाहिए (उदाहरण के लिए नियमों द्वारा अनुमति)।
इनिशियलाइज़टेस्टएन्वायरमेंट(कॉन्फ़िगरेशन) नियम इकाई परीक्षण के लिए एक परीक्षण वातावरण प्रारंभ करता है। परीक्षण सेटअप के लिए पहले इस फ़ंक्शन को कॉल करें। एमुलेटर को चालू रखना आवश्यक है। यदि होस्ट और पोर्ट अनिर्दिष्ट हैं तो यह फ़ंक्शन पर्यावरण चर के माध्यम से या फायरबेस एमुलेटर हब के माध्यम से उन एमुलेटरों को खोजने का प्रयास करता है। परीक्षण के लिए उपयोग किए जाने वाले एमुलेटर के लिए सुरक्षा नियम निर्दिष्ट करने की पुरजोर अनुशंसा की जाती है। नीचे न्यूनतम उदाहरण देखें.
withFunctionTriggersDisabled(fn) बैकग्राउंड क्लाउड फ़ंक्शंस ट्रिगर्स को अक्षम करके एक सेटअप फ़ंक्शन चलाएँ। इसका उपयोग स्थानीय रूप से अनुकरण किए गए क्लाउड फ़ंक्शंस को ट्रिगर किए बिना रीयलटाइम डेटाबेस या क्लाउड फायरस्टोर एमुलेटर में डेटा आयात करने के लिए किया जा सकता है। यह विधि केवल फायरबेस सीएलआई संस्करण 8.13.0 या उच्चतर के साथ काम करती है। यह ओवरलोड केवल तभी काम करता है जब एमुलेटर हब होस्ट:पोर्ट पर्यावरण चर FIREBASE_EMULATOR_HUB द्वारा निर्दिष्ट किया गया हो।
withFunctionTriggersDisabled(हब, एफएन) बैकग्राउंड क्लाउड फ़ंक्शंस ट्रिगर्स को अक्षम करके एक सेटअप फ़ंक्शन चलाएँ। इसका उपयोग स्थानीय रूप से अनुकरण किए गए क्लाउड फ़ंक्शंस को ट्रिगर किए बिना रीयलटाइम डेटाबेस या क्लाउड फायरस्टोर एमुलेटर में डेटा आयात करने के लिए किया जा सकता है। यह विधि केवल फायरबेस सीएलआई संस्करण 8.13.0 या उच्चतर के साथ काम करती है। एम्यूलेटर हब चालू होना चाहिए, इस ओवरलोड में कौन सा होस्ट और पोर्ट निर्दिष्ट है।

इंटरफेस

इंटरफेस विवरण
होस्टएंडपोर्ट एक ऑब्जेक्ट जिसमें एमुलेटर का होस्टनाम और पोर्ट नंबर होता है।
नियम परीक्षण संदर्भ एक परीक्षण संदर्भ जो एक ग्राहक का प्रतिनिधित्व करता है। नियम इकाई परीक्षण के लिए एमुलेटर तक पहुंचने के लिए इसका उपयोग किया जा सकता है।
नियम परीक्षणपर्यावरण नियम इकाई परीक्षण वातावरण को नियंत्रित करने के लिए उपयोग की जाने वाली एक वस्तु। विभिन्न प्रमाणीकरण स्थितियों के लिए रूल्सटेस्टकॉन्टेक्स्ट बनाने के लिए उपयोग किया जा सकता है।
TestEnvironmentConfig एमुलेटर सहित यूनिट परीक्षण वातावरण का कॉन्फ़िगरेशन।

उपनाम टाइप करें

उपनाम टाइप करें विवरण
एमुलेटर कॉन्फिग किसी दिए गए एमुलेटर के लिए कॉन्फ़िगरेशन।
टोकन विकल्प परीक्षण के लिए उपयोग किए जाने वाले नकली उपयोगकर्ता टोकन के लिए अधिक विकल्प, जिसमें डेवलपर-निर्दिष्ट कस्टम दावे या फायरबेस ऑथ टोकन पेलोड के लिए वैकल्पिक ओवरराइड शामिल हैं।

ज़ोर विफल()

"अनुमति अस्वीकृत" त्रुटि के साथ अस्वीकार किए जाने का वादा करें।

सुरक्षा नियमों द्वारा अस्वीकृत किए जाने वाले एक निश्चित अनुरोध पर जोर देने के लिए उपयोगी। नीचे उदाहरण देखें. यह फ़ंक्शन डेटाबेस, फायरस्टोर और स्टोरेज जेएस एसडीके से अनुमति-अस्वीकृत त्रुटियों को पहचानता है।

हस्ताक्षर:

export declare function assertFails(pr: Promise<any>): Promise<any>;

पैरामीटर

पैरामीटर प्रकार विवरण
जनसंपर्क वादा<कोई> वादा किया जाना चाहिए

रिटर्न:

वादा<कोई>

एक वादा जो तब पूरा होता है जब पीआर को "अनुमति अस्वीकृत" के साथ अस्वीकार कर दिया जाता है। यदि पीआर को किसी अन्य त्रुटि के साथ अस्वीकार कर दिया जाता है या हल कर दिया जाता है, तो लौटाया गया वादा अस्वीकार कर दिया जाता है।

उदाहरण

const unauthed = testEnv.unauthenticatedContext();
await assertFails(getDoc(unauthed.firestore(), '/private/doc'), { ... });

जोर देकर सफल हुआ()

सफल होने का वादा करें.

यह एक नो-ऑप फ़ंक्शन है जो पारित वादे को यथावत लौटाता है, लेकिन इसका उपयोग परीक्षण कोड में दस्तावेज़ीकरण उद्देश्यों के लिए किया जा सकता है ताकि इस बात पर जोर दिया जा सके कि एक निश्चित अनुरोध सफल होना चाहिए (उदाहरण के लिए नियमों द्वारा अनुमति)।

हस्ताक्षर:

export declare function assertSucceeds<T>(pr: Promise<T>): Promise<T>;

पैरामीटर

पैरामीटर प्रकार विवरण
जनसंपर्क वादा<T>

रिटर्न:

वादा<T>

उदाहरण

const alice = testEnv.authenticatedContext('alice');
await assertSucceeds(getDoc(alice.firestore(), '/doc/readable/by/alice'), { ... });

इनिशियलाइज़टेस्टएन्वायरमेंट()

नियम इकाई परीक्षण के लिए एक परीक्षण वातावरण प्रारंभ करता है। परीक्षण सेटअप के लिए पहले इस फ़ंक्शन को कॉल करें।

एमुलेटर को चालू रखना आवश्यक है। यदि होस्ट और पोर्ट अनिर्दिष्ट हैं तो यह फ़ंक्शन पर्यावरण चर के माध्यम से या फायरबेस एमुलेटर हब के माध्यम से उन एमुलेटरों को खोजने का प्रयास करता है। परीक्षण के लिए उपयोग किए जाने वाले एमुलेटर के लिए सुरक्षा नियम निर्दिष्ट करने की पुरजोर अनुशंसा की जाती है। नीचे न्यूनतम उदाहरण देखें.

हस्ताक्षर:

export declare function initializeTestEnvironment(config: TestEnvironmentConfig): Promise<RulesTestEnvironment>;

पैरामीटर

पैरामीटर प्रकार विवरण
कॉन्फ़िग TestEnvironmentConfig अनुकरणकर्ताओं के लिए कॉन्फ़िगरेशन। अधिकांश फ़ील्ड वैकल्पिक हैं यदि उन्हें खोजा जा सकता है

रिटर्न:

वादा < नियम परीक्षण वातावरण >

एक वादा जो परीक्षण के लिए तैयार वातावरण में हल हो जाता है, या त्रुटि होने पर अस्वीकार कर देता है।

उदाहरण

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()

बैकग्राउंड क्लाउड फ़ंक्शंस ट्रिगर्स को अक्षम करके एक सेटअप फ़ंक्शन चलाएँ। इसका उपयोग स्थानीय रूप से अनुकरण किए गए क्लाउड फ़ंक्शंस को ट्रिगर किए बिना रीयलटाइम डेटाबेस या क्लाउड फायरस्टोर एमुलेटर में डेटा आयात करने के लिए किया जा सकता है।

यह विधि केवल फायरबेस सीएलआई संस्करण 8.13.0 या उच्चतर के साथ काम करती है। यह ओवरलोड केवल तभी काम करता है जब एमुलेटर हब होस्ट:पोर्ट पर्यावरण चर FIREBASE_EMULATOR_HUB द्वारा निर्दिष्ट किया गया हो।

हस्ताक्षर:

export declare function withFunctionTriggersDisabled<TResult>(fn: () => TResult | Promise<TResult>): Promise<TResult>;

पैरामीटर

पैरामीटर प्रकार विवरण
एफ.एन () => परिणाम | वादा<TResult> एक फ़ंक्शन जो सिंक या एसिंक हो सकता है (एक वादा लौटाता है)

रिटर्न:

वादा<TResult>

withFunctionTriggersDisabled()

बैकग्राउंड क्लाउड फ़ंक्शंस ट्रिगर्स को अक्षम करके एक सेटअप फ़ंक्शन चलाएँ। इसका उपयोग स्थानीय रूप से अनुकरण किए गए क्लाउड फ़ंक्शंस को ट्रिगर किए बिना रीयलटाइम डेटाबेस या क्लाउड फायरस्टोर एमुलेटर में डेटा आयात करने के लिए किया जा सकता है।

यह विधि केवल फायरबेस सीएलआई संस्करण 8.13.0 या उच्चतर के साथ काम करती है। एम्यूलेटर हब चालू होना चाहिए, इस ओवरलोड में कौन सा होस्ट और पोर्ट निर्दिष्ट है।

हस्ताक्षर:

export declare function withFunctionTriggersDisabled<TResult>(hub: {
    host: string;
    port: number;
}, fn: () => TResult | Promise<TResult>): Promise<TResult>;

पैरामीटर

पैरामीटर प्रकार विवरण
केंद्र { होस्ट: स्ट्रिंग; पोर्ट नंबर; } एम्यूलेटर हब का होस्ट और पोर्ट (उदा: {host: 'localhost', port: 4400} )
एफ.एन () => परिणाम | वादा<TResult> एक फ़ंक्शन जो सिंक या एसिंक हो सकता है (एक वादा लौटाता है)

रिटर्न:

वादा<TResult>

एमुलेटर कॉन्फिग

किसी दिए गए एमुलेटर के लिए कॉन्फ़िगरेशन।

हस्ताक्षर:

export declare type EmulatorConfig = {
    rules?: string;
} & (HostAndPort | {});

टोकन विकल्प

परीक्षण के लिए उपयोग किए जाने वाले नकली उपयोगकर्ता टोकन के लिए अधिक विकल्प, जिसमें डेवलपर-निर्दिष्ट कस्टम दावे या फायरबेस ऑथ टोकन पेलोड के लिए वैकल्पिक ओवरराइड शामिल हैं।

हस्ताक्षर:

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