واجهة AttributionTestEnvironment

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

Signature:

export interface RulesTestEnvironment 

أماكن إقامة

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

الطُرق

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

القواعدTestEnvironment.emulator

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

Signature:

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

رقم تعريف RulesTestEnvironment.projectId

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

Signature:

readonly projectId: string;

BaseTestEnvironment.authenticatedContext()

أنشئ RulesTestContext يعمل كمستخدم مصادقة Firebase تمت مصادقته.

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

Signature:

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

المَعلمات

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

المرتجعات:

RulesTestContext

مثال

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

BaseTestEnvironment.cleanup()

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

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

Signature:

cleanup(): Promise<void>;

المرتجعات:

وعود <باطلة>

RulesTestEnvironment.clearDatabase()

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

Signature:

clearDatabase(): Promise<void>;

المرتجعات:

وعود <باطلة>

القواعدTestEnvironment.clearFirestore()

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

Signature:

clearFirestore(): Promise<void>;

المرتجعات:

وعود <باطلة>

RulesTestEnvironment.clearStorage()

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

Signature:

clearStorage(): Promise<void>;

المرتجعات:

وعود <باطلة>

BaseTestEnvironment.unauthenticatedContext()

أنشئ RulesTestContext يتصرف كعميل "لا" يتم تسجيل الدخول إليه من خلال مصادقة Firebase.

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

Signature:

unauthenticatedContext(): RulesTestContext;

المرتجعات:

RulesTestContext

مثال

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

BaseTestEnvironment.withSecurityRulesDisabled()

Signature:

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

المَعلمات

المعلمة النوع الوصف
رد الاتصال (السياق: RulesTestContext) => وعود <باطلة>

المرتجعات:

وعود <باطلة>