নিয়ম-ইউনিট-পরীক্ষা প্যাকেজ

ফাংশন

ফাংশন বর্ণনা
assertFails(pr) একটি "অনুমতি অস্বীকার" ত্রুটির সাথে প্রত্যাখ্যান করার প্রতিশ্রুতি জাহির করুন৷ নিরাপত্তা বিধি দ্বারা প্রত্যাখ্যান করার জন্য একটি নির্দিষ্ট অনুরোধ জাহির করার জন্য দরকারী। নীচের উদাহরণ দেখুন। এই ফাংশনটি ডেটাবেস, ফায়ারস্টোর এবং স্টোরেজ JS SDK থেকে অনুমতি-অস্বীকৃত ত্রুটিগুলিকে স্বীকৃতি দেয়৷
assertSucceeds(pr) একটি "অনুমতি অস্বীকার" ত্রুটির সাথে প্রত্যাখ্যান করার প্রতিশ্রুতি জাহির করুন৷ এটি একটি নো-অপ ফাংশন যা পাস করা প্রতিশ্রুতি ফিরিয়ে দেয়, তবে একটি নির্দিষ্ট অনুরোধ সফল হওয়া উচিত (যেমন নিয়ম দ্বারা অনুমোদিত) জোর দেওয়ার জন্য পরীক্ষার কোডে ডকুমেন্টেশনাল উদ্দেশ্যে ব্যবহার করা যেতে পারে।
ইনিশিয়ালাইজ টেস্ট এনভায়রনমেন্ট(কনফিগার) নিয়ম ইউনিট পরীক্ষার জন্য একটি পরীক্ষার পরিবেশ শুরু করে। পরীক্ষা সেটআপের জন্য প্রথমে এই ফাংশনটি কল করুন। চলমান এমুলেটর প্রয়োজন. হোস্ট এবং পোর্ট অনির্দিষ্ট থাকলে এই ফাংশনটি পরিবেশের ভেরিয়েবলের মাধ্যমে বা Firebase এমুলেটর হাবের মাধ্যমে সেই এমুলেটরগুলি আবিষ্কার করার চেষ্টা করে। পরীক্ষার জন্য ব্যবহৃত এমুলেটরগুলির জন্য নিরাপত্তা বিধি নির্দিষ্ট করার জন্য দৃঢ়ভাবে সুপারিশ করা হয়। নীচের ন্যূনতম উদাহরণ দেখুন।
সঙ্গে ফাংশন ট্রিগার অক্ষম (fn) ব্যাকগ্রাউন্ড ক্লাউড ফাংশন ট্রিগার অক্ষম করে একটি সেটআপ ফাংশন চালান। এটি স্থানীয়ভাবে অনুকরণ করা ক্লাউড ফাংশনগুলিকে ট্রিগার না করে রিয়েলটাইম ডেটাবেস বা ক্লাউড ফায়ারস্টোর এমুলেটরে ডেটা আমদানি করতে ব্যবহার করা যেতে পারে। এই পদ্ধতিটি শুধুমাত্র Firebase CLI সংস্করণ 8.13.0 বা উচ্চতরের সাথে কাজ করে। এই ওভারলোড শুধুমাত্র তখনই কাজ করে যখন এমুলেটর হাব হোস্ট:পোর্ট পরিবেশ পরিবর্তনশীল FIREBASE_EMULATOR_HUB দ্বারা নির্দিষ্ট করা হয়।
সঙ্গে ফাংশন ট্রিগার অক্ষম (হাব, এফএন) ব্যাকগ্রাউন্ড ক্লাউড ফাংশন ট্রিগার অক্ষম করে একটি সেটআপ ফাংশন চালান। এটি স্থানীয়ভাবে অনুকরণ করা ক্লাউড ফাংশনগুলিকে ট্রিগার না করে রিয়েলটাইম ডেটাবেস বা ক্লাউড ফায়ারস্টোর এমুলেটরে ডেটা আমদানি করতে ব্যবহার করা যেতে পারে। এই পদ্ধতিটি শুধুমাত্র Firebase CLI সংস্করণ 8.13.0 বা উচ্চতরের সাথে কাজ করে। এমুলেটর হাব অবশ্যই চলমান থাকবে, কোন হোস্ট এবং পোর্ট এই ওভারলোডে নির্দিষ্ট করা আছে।

ইন্টারফেস

ইন্টারফেস বর্ণনা
হোস্টএন্ডপোর্ট একটি এমুলেটরের হোস্টনেম এবং পোর্ট নম্বর ধারণকারী একটি বস্তু।
নিয়ম পরীক্ষা প্রসঙ্গ একটি পরীক্ষা প্রসঙ্গ যা একটি ক্লায়েন্ট প্রতিনিধিত্ব করে। নিয়ম ইউনিট পরীক্ষার জন্য এমুলেটর অ্যাক্সেস করতে ব্যবহার করা যেতে পারে।
নিয়ম পরীক্ষা পরিবেশ নিয়ম ইউনিট পরীক্ষার পরিবেশ নিয়ন্ত্রণ করতে ব্যবহৃত একটি বস্তু। বিভিন্ন প্রমাণীকরণ পরিস্থিতির জন্য RulesTestContext তৈরি করতে ব্যবহার করা যেতে পারে।
TestEnvironmentConfig এমুলেটর সহ ইউনিট পরীক্ষার পরিবেশের কনফিগারেশন।

উপনাম টাইপ করুন

উপনাম টাইপ করুন বর্ণনা
এমুলেটর কনফিগারেশন একটি প্রদত্ত এমুলেটরের জন্য কনফিগারেশন।
টোকেন অপশন ডেভেলপার-নির্দিষ্ট কাস্টম দাবি বা Firebase Auth টোকেন পেলোডের জন্য ঐচ্ছিক ওভাররাইড সহ পরীক্ষার জন্য ব্যবহার করা মক ব্যবহারকারী টোকেনের জন্য আরও বিকল্প।

assertFails()

একটি "অনুমতি অস্বীকার" ত্রুটির সাথে প্রত্যাখ্যান করার প্রতিশ্রুতি জাহির করুন৷

নিরাপত্তা বিধি দ্বারা প্রত্যাখ্যান করার জন্য একটি নির্দিষ্ট অনুরোধ জাহির করার জন্য দরকারী। নীচের উদাহরণ দেখুন। এই ফাংশনটি ডেটাবেস, ফায়ারস্টোর এবং স্টোরেজ JS SDK থেকে অনুমতি-অস্বীকৃত ত্রুটিগুলিকে স্বীকৃতি দেয়৷

স্বাক্ষর:

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

পরামিতি

প্যারামিটার টাইপ বর্ণনা
পিআর প্রতিশ্রুতি <কোনও> প্রতিশ্রুতি দৃঢ় করা হবে

রিটার্ন:

প্রতিশ্রুতি <কোনও>

একটি প্রতিশ্রুতি যা পূরণ হয় যদি pr "অনুমতি অস্বীকার" সহ প্রত্যাখ্যান করা হয়। যদি পিআর অন্য কোন ত্রুটির সাথে প্রত্যাখ্যান করা হয় বা সমাধান করা হয়, তবে প্রত্যাবর্তিত প্রতিশ্রুতি প্রত্যাখ্যান করে।

উদাহরণ

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

assertSucceeds()

সফল হওয়ার প্রতিশ্রুতি জাহির করুন।

এটি একটি নো-অপ ফাংশন যা পাস করা প্রতিশ্রুতি ফিরিয়ে দেয়, তবে একটি নির্দিষ্ট অনুরোধ সফল হওয়া উচিত (যেমন নিয়ম দ্বারা অনুমোদিত) জোর দেওয়ার জন্য পরীক্ষার কোডে ডকুমেন্টেশনাল উদ্দেশ্যে ব্যবহার করা যেতে পারে।

স্বাক্ষর:

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'), { ... });

ইনিশিয়ালাইজ টেস্ট এনভায়রনমেন্ট()

নিয়ম ইউনিট পরীক্ষার জন্য একটি পরীক্ষার পরিবেশ শুরু করে। পরীক্ষা সেটআপের জন্য প্রথমে এই ফাংশনটি কল করুন।

চলমান এমুলেটর প্রয়োজন. হোস্ট এবং পোর্ট অনির্দিষ্ট থাকলে এই ফাংশনটি পরিবেশের ভেরিয়েবলের মাধ্যমে বা Firebase এমুলেটর হাবের মাধ্যমে সেই এমুলেটরগুলি আবিষ্কার করার চেষ্টা করে। পরীক্ষার জন্য ব্যবহৃত এমুলেটরগুলির জন্য নিরাপত্তা বিধি নির্দিষ্ট করার জন্য দৃঢ়ভাবে সুপারিশ করা হয়। নীচের ন্যূনতম উদাহরণ দেখুন।

স্বাক্ষর:

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

ব্যাকগ্রাউন্ড ক্লাউড ফাংশন ট্রিগার অক্ষম করে একটি সেটআপ ফাংশন চালান। এটি স্থানীয়ভাবে অনুকরণ করা ক্লাউড ফাংশনগুলিকে ট্রিগার না করে রিয়েলটাইম ডেটাবেস বা ক্লাউড ফায়ারস্টোর এমুলেটরে ডেটা আমদানি করতে ব্যবহার করা যেতে পারে।

এই পদ্ধতিটি শুধুমাত্র Firebase CLI সংস্করণ 8.13.0 বা উচ্চতরের সাথে কাজ করে। এই ওভারলোড শুধুমাত্র তখনই কাজ করে যখন এমুলেটর হাব হোস্ট:পোর্ট পরিবেশ পরিবর্তনশীল FIREBASE_EMULATOR_HUB দ্বারা নির্দিষ্ট করা হয়।

স্বাক্ষর:

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

পরামিতি

প্যারামিটার টাইপ বর্ণনা
fn () => TR ফলাফল | প্রতিশ্রুতি<TRsult> একটি ফাংশন যা সিঙ্ক বা অ্যাসিঙ্ক হতে পারে (একটি প্রতিশ্রুতি প্রদান করে)

রিটার্ন:

প্রতিশ্রুতি<TRsult>

withFunctionTriggersDisabled()

ব্যাকগ্রাউন্ড ক্লাউড ফাংশন ট্রিগার অক্ষম করে একটি সেটআপ ফাংশন চালান। এটি স্থানীয়ভাবে অনুকরণ করা ক্লাউড ফাংশনগুলিকে ট্রিগার না করে রিয়েলটাইম ডেটাবেস বা ক্লাউড ফায়ারস্টোর এমুলেটরে ডেটা আমদানি করতে ব্যবহার করা যেতে পারে।

এই পদ্ধতিটি শুধুমাত্র Firebase CLI সংস্করণ 8.13.0 বা উচ্চতরের সাথে কাজ করে। এমুলেটর হাব অবশ্যই চলমান থাকবে, কোন হোস্ট এবং পোর্ট এই ওভারলোডে নির্দিষ্ট করা আছে।

স্বাক্ষর:

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

পরামিতি

প্যারামিটার টাইপ বর্ণনা
হাব { হোস্ট: স্ট্রিং; পোর্ট নাম্বার; } এমুলেটর হাবের হোস্ট এবং পোর্ট (যেমন: {host: 'localhost', port: 4400} )
fn () => TR ফলাফল | প্রতিশ্রুতি<TRsult> একটি ফাংশন যা সিঙ্ক বা অ্যাসিঙ্ক হতে পারে (একটি প্রতিশ্রুতি প্রদান করে)

রিটার্ন:

প্রতিশ্রুতি<TRsult>

এমুলেটর কনফিগারেশন

একটি প্রদত্ত এমুলেটরের জন্য কনফিগারেশন।

স্বাক্ষর:

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

টোকেন অপশন

ডেভেলপার-নির্দিষ্ট কাস্টম দাবি বা Firebase Auth টোকেন পেলোডের জন্য ঐচ্ছিক ওভাররাইড সহ পরীক্ষার জন্য ব্যবহার করা মক ব্যবহারকারী টোকেনের জন্য আরও বিকল্প।

স্বাক্ষর:

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