واجهة AttributionTestEnvironment

يشير ذلك المصطلح إلى عنصر يُستخدَم للتحكّم في بيئة اختبار وحدة القواعد. يمكن استخدامها لإنشاء RulesTestContext لحالات المصادقة المختلفة.

Signature:

export interface RulesTestEnvironment 

أماكن إقامة

الموقع النوع الوصف
المحاكيات {قاعدة البيانات؟: HostAndPort؛ Firestore?: HostAndPort؛ التخزين؟: HostAndPort، } نسخة للقراءة فقط من إعدادات المحاكي التي تم تحديدها أو اكتشافها عند إنشاء بيئة اختبار
projectId سلسلة رقم تعريف المشروع الذي تم تحديده أو اكتشافه عند إنشاء بيئة الاختبار.

الطُرق

الطريقة الوصف
authenticatedContext(user_id, tokenOptions) يمكنك إنشاء RulesTestContext يتصرف مثل مستخدم مصادقة Firebase تمت مصادقته.سيتم إرفاق رمز مصادقة Firebase بالطلبات التي يتم إنشاؤها عبر السياق المعروض.
cleanup() في نهاية الرمز الاختباري، استدعِ دالة التنظيف. احذف جميع القواعدTestContexts التي تم إنشاؤها في بيئة الاختبار وأزِل الموارد الأساسية، ما يسمح بالخروج من البيانات غير الضرورية.لا تغيّر هذه الطريقة الحالة في أدوات المحاكاة بأي شكل من الأشكال. لإعادة ضبط البيانات بين الاختبارات، يمكنك الاطّلاع على clearDatabase() وclearFirestore() وclearStorage().
clearDatabase() امسح جميع البيانات في مساحة الاسم في محاكي قاعدة البيانات في الوقت الفعلي.
clearFirestore() عليك محو البيانات في محاكي Firestore التي تنتمي إلى projectId في محاكي Firestore.
clearStorage() عليك محو ملفات مساحة التخزين والبيانات الوصفية في جميع الحِزم في محاكي مساحة التخزين.
unauthenticatedContext() يمكنك إنشاء RulesTestContext يعمل مثل العميل الذي لم يسجّل الدخول من خلال مصادقة Firebase.لن يتم إرفاق رموز مصادقة Firebase بالطلبات التي يتم إنشاؤها من خلال السياق المعروض.
withSecurityRulesDisabled(callback)

RulesTestEnvironment.emulators

نسخة للقراءة فقط من إعدادات المحاكي التي تم تحديدها أو اكتشافها عند إنشاء بيئة اختبار

Signature:

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

RulesTestEnvironment.projectId

رقم تعريف المشروع الذي تم تحديده أو اكتشافه عند إنشاء بيئة الاختبار.

Signature:

readonly projectId: string;

RulesTestEnvironment.authenticatedContext()

أنشئ RulesTestContext يتصرف مثل مستخدم مصادقة Firebase تمت مصادقته.

بالنسبة إلى الطلبات التي يتم إنشاؤها من خلال السياق المعروض، سيتم إرفاق رمز مصادقة مميّز وهمي من Firebase في الطلبات التي يتم إنشاؤها من خلال السياق المعروض.

Signature:

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

المَعلمات

المَعلمة النوع الوصف
user_id سلسلة معرّف المستخدم للمستخدم. تحدّد قيمة "user_id" و "sub" في الرمز المميّز
tokenOptions TokenOptions مطالبات مخصصة أو إلغاءات لحمولات الرموز المميزة لمصادقة Firebase

المرتجعات:

RulesTestContext

مثال

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

RulesTestEnvironment.cleanup()

في نهاية الرمز الاختباري، استدعِ دالة التنظيف. إتلاف جميع RulesTestContexts التي تم إنشاؤها في بيئة الاختبار وامسح الموارد الأساسية، ما يتيح لك الخروج بدون مشاكل.

لا تؤدي هذه الطريقة إلى تغيير الحالة في المحاكيات بأي شكل من الأشكال. لإعادة ضبط البيانات بين الاختبارات، يمكنك الاطّلاع على clearDatabase() وclearFirestore() وclearStorage().

Signature:

cleanup(): Promise<void>;

المرتجعات:

Promise<void>

RulesTestEnvironment.clearDatabase()

امسح جميع البيانات في مساحة الاسم في محاكي قاعدة البيانات في الوقت الفعلي.

Signature:

clearDatabase(): Promise<void>;

المرتجعات:

Promise<void>

RulesTestEnvironment.clearFirestore()

عليك محو البيانات في قاعدة بيانات Firestore التلقائية لـ projectId في محاكي Firestore.

Signature:

clearFirestore(): Promise<void>;

المرتجعات:

Promise<void>

RulesTestEnvironment.clearStorage()

عليك محو ملفات مساحة التخزين والبيانات الوصفية في الحزمة النشطة في محاكي مساحة التخزين.

Signature:

clearStorage(): Promise<void>;

المرتجعات:

Promise<void>

RulesTestEnvironment.unauthenticatedContext()

أنشئ RulesTestContext يتصرف مثل العميل الذي لم يسجّل الدخول من خلال مصادقة Firebase.

لن يتم إرفاق رموز تفويض Firebase بالطلبات التي تم إنشاؤها من خلال السياق المعروض.

Signature:

unauthenticatedContext(): RulesTestContext;

المرتجعات:

RulesTestContext

مثال

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

RulesTestEnvironment.withSecurityRulesDisabled()

Signature:

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

المَعلمات

المَعلمة النوع الوصف
معاودة الاتصال (السياق: RulesTestContext) => الوعد<تجنُّب>

المرتجعات:

Promise<void>