নিয়ম পরীক্ষা পরিবেশ ইন্টারফেস

নিয়ম ইউনিট পরীক্ষার পরিবেশ নিয়ন্ত্রণ করতে ব্যবহৃত একটি বস্তু। বিভিন্ন প্রমাণীকরণ পরিস্থিতির জন্য RulesTestContext তৈরি করতে ব্যবহার করা যেতে পারে।

স্বাক্ষর:

export interface RulesTestEnvironment 

বৈশিষ্ট্য

সম্পত্তি টাইপ বর্ণনা
অনুকরণকারী {ডাটাবেস?: HostAndPort ; firestore?: HostAndPort ; স্টোরেজ?: HostAndPort ; } পরীক্ষার পরিবেশ তৈরিতে নির্দিষ্ট করা বা আবিষ্কৃত এমুলেটর কনফিগারেশনের একটি পঠনযোগ্য অনুলিপি।
প্রজেক্ট আইডি স্ট্রিং প্রজেক্ট আইডি নির্দিষ্ট করা হয়েছে বা পরীক্ষা পরিবেশ তৈরিতে আবিষ্কৃত হয়েছে।

পদ্ধতি

পদ্ধতি বর্ণনা
প্রমাণীকৃত প্রসঙ্গ(user_id, tokenOptions) একটি RulesTestContext তৈরি করুন যা একটি প্রমাণীকৃত Firebase Auth ব্যবহারকারীর মতো আচরণ করে। প্রত্যাবর্তিত প্রসঙ্গের মাধ্যমে তৈরি করা অনুরোধগুলিতে একটি মক ফায়ারবেস প্রমাণীকরণ টোকেন সংযুক্ত থাকবে।
পরিষ্কার কর() আপনার পরীক্ষার কোডের একেবারে শেষে, ক্লিনআপ ফাংশনটি কল করুন। পরীক্ষার পরিবেশে তৈরি করা সমস্ত RulesTestContexts ধ্বংস করুন এবং একটি পরিষ্কার প্রস্থান করার অনুমতি দিয়ে অন্তর্নিহিত সংস্থানগুলি পরিষ্কার করুন। এই পদ্ধতিটি কোনোভাবেই এমুলেটরগুলির অবস্থা পরিবর্তন করে না। পরীক্ষার মধ্যে ডেটা রিসেট করতে, clearDatabase() , clearFirestore() এবং clearStorage() দেখুন।
সাফ ডাটাবেস() রিয়েলটাইম ডাটাবেস এমুলেটর নামস্থানে সমস্ত ডেটা সাফ করুন।
clearFirestore() Firestore এমুলেটরে projectId অন্তর্গত Firestore-এ ডেটা সাফ করুন।
ক্লিয়ার স্টোরেজ() স্টোরেজ এমুলেটরে সমস্ত বালতিতে স্টোরেজ ফাইল এবং মেটাডেটা সাফ করুন।
অপ্রমাণিত প্রসঙ্গ() একটি RulesTestContext তৈরি করুন যা ক্লায়েন্টের মতো আচরণ করে যা Firebase Auth-এর মাধ্যমে লগ ইন করা হয়নি। প্রত্যাবর্তিত প্রসঙ্গের মাধ্যমে তৈরি করা অনুরোধগুলিতে Firebase Auth টোকেন সংযুক্ত থাকবে না।
সঙ্গে নিরাপত্তা নিয়ম অক্ষম (কলব্যাক)

RulesTestEnvironment.emulators

পরীক্ষার পরিবেশ তৈরিতে নির্দিষ্ট করা বা আবিষ্কৃত এমুলেটর কনফিগারেশনের একটি পঠনযোগ্য অনুলিপি।

স্বাক্ষর:

readonly emulators: {
        database?: HostAndPort;
        firestore?: HostAndPort;
        storage?: HostAndPort;
    };

RulesTestEnvironment.projectId

প্রজেক্ট আইডি নির্দিষ্ট করা হয়েছে বা পরীক্ষা পরিবেশ তৈরিতে আবিষ্কৃত হয়েছে।

স্বাক্ষর:

readonly projectId: string;

RulesTestEnvironment.authenticatedContext()

একটি RulesTestContext তৈরি করুন যা একটি প্রমাণীকৃত Firebase Auth ব্যবহারকারীর মতো আচরণ করে।

প্রত্যাবর্তিত প্রসঙ্গের মাধ্যমে তৈরি করা অনুরোধগুলিতে একটি মক ফায়ারবেস প্রমাণীকরণ টোকেন সংযুক্ত থাকবে।

স্বাক্ষর:

authenticatedContext(user_id: string, tokenOptions?: TokenOptions): RulesTestContext;

পরামিতি

প্যারামিটার টাইপ বর্ণনা
ব্যবহারকারী আইডি স্ট্রিং ব্যবহারকারীর ইউজার আইডি। টোকেনে "user_id" এবং "sub" এর মান উল্লেখ করে
টোকেন অপশন টোকেন অপশন Firebase Auth টোকেন পেলোডের জন্য কাস্টম দাবি বা ওভাররাইড

রিটার্ন:

নিয়ম পরীক্ষা প্রসঙ্গ

উদাহরণ

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

RulesTestEnvironment.cleanup()

আপনার পরীক্ষার কোডের একেবারে শেষে, ক্লিনআপ ফাংশনটি কল করুন। পরীক্ষার পরিবেশে তৈরি করা সমস্ত RulesTestContexts ধ্বংস করুন এবং একটি পরিষ্কার প্রস্থান করার অনুমতি দিয়ে অন্তর্নিহিত সংস্থানগুলি পরিষ্কার করুন।

এই পদ্ধতিটি কোনোভাবেই এমুলেটরগুলির অবস্থা পরিবর্তন করে না। পরীক্ষার মধ্যে ডেটা রিসেট করতে, clearDatabase() দেখুন , clearFirestore() এবং clearStorage() .

স্বাক্ষর:

cleanup(): Promise<void>;

রিটার্ন:

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

RulesTestEnvironment.clearDatabase()

রিয়েলটাইম ডাটাবেস এমুলেটর নামস্থানে সমস্ত ডেটা সাফ করুন।

স্বাক্ষর:

clearDatabase(): Promise<void>;

রিটার্ন:

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

RulesTestEnvironment.clearFirestore()

Firestore এমুলেটরে projectId জন্য ডিফল্ট ফায়ারস্টোর ডাটাবেসে ডেটা সাফ করুন।

স্বাক্ষর:

clearFirestore(): Promise<void>;

রিটার্ন:

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

RulesTestEnvironment.clearStorage()

স্টোরেজ এমুলেটরে সক্রিয় বালতিতে স্টোরেজ ফাইল এবং মেটাডেটা সাফ করুন।

স্বাক্ষর:

clearStorage(): Promise<void>;

রিটার্ন:

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

RulesTestEnvironment.unauthenticatedContext()

একটি RulesTestContext তৈরি করুন যা ক্লায়েন্টের মতো আচরণ করে যা Firebase Auth-এর মাধ্যমে লগ ইন করা হয়নি।

প্রত্যাবর্তিত প্রসঙ্গের মাধ্যমে তৈরি করা অনুরোধগুলিতে Firebase Auth টোকেন সংযুক্ত থাকবে না।

স্বাক্ষর:

unauthenticatedContext(): RulesTestContext;

রিটার্ন:

নিয়ম পরীক্ষা প্রসঙ্গ

উদাহরণ

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

RulesTestEnvironment.withSecurityRulesDisabled()

স্বাক্ষর:

withSecurityRulesDisabled(callback: (context: RulesTestContext) => Promise<void>): Promise<void>;

পরামিতি

প্যারামিটার টাইপ বর্ণনা
কলব্যাক (প্রসঙ্গ: RulesTestContext ) => প্রতিশ্রুতি <void>

রিটার্ন:

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