Signature:
export interface RulesTestEnvironment
תכונות
מאפיין (property) | סוג | תיאור |
---|---|---|
אמולטורים | { מסד הנתונים?: HostAndPort; Firestore?: HostAndPort; אחסון?: HostAndPort; } | עותק לקריאה בלבד של הגדרות האמולטור שצוינו או התגלו במהלך היצירה של סביבת הבדיקה. |
projectId | מחרוזת | מזהה הפרויקט שצוין או התגלה במהלך היצירה של סביבת הבדיקה. |
שיטות
שיטה | תיאור |
---|---|
authenticatedContext(user_id, tokenOptions) | יצירת RulesTestContext שמתנהגת כמו משתמש מאומת ב-Firebase Auth.בקשות שנוצרו באמצעות ההקשר שמוחזר יכללו אסימון Firebase Auth לדוגמה. |
cleanup() | בסוף קוד הבדיקה, קוראים לפונקציית הניקוי. צריך להשמיד את כל RulesTestContexts שנוצרו בסביבת הבדיקה ולנקות את המשאבים הבסיסיים, וכך לאפשר יציאה נקייה.השיטה הזו לא משנה את המצב באמולטורים בשום צורה. יש לעיין בסעיפים clearDatabase() , clearFirestore() ו-clearStorage() כדי לאפס נתונים בין בדיקות. |
clearDatabase() | ניקוי כל הנתונים במרחב השמות של אמולטור מסד נתונים בזמן אמת. |
clearFirestore() | יש לנקות ב-Firestore נתונים ששייכים ל-projectId באמולטור Firestore. |
clearStorage() | ניקוי הקבצים והמטא-נתונים של האחסון בכל הקטגוריות באמולטור האחסון. |
unauthenticatedContext() | יצירת RulesTestContext שמתנהגת כמו לקוח שלא מחובר דרך Firebase Auth.לבקשות שנוצרו באמצעות ההקשר שמוחזר לא יצורפו אסימונים של Firebase Auth. |
withSecurityRulesDisabled(callback) |
RulesTestEnvironment.emulators
עותק לקריאה בלבד של הגדרות האמולטור שצוינו או התגלו במהלך היצירה של סביבת הבדיקה.
Signature:
readonly emulators: {
database?: HostAndPort;
firestore?: HostAndPort;
storage?: HostAndPort;
};
RulesTestEnvironment.projectId
מזהה הפרויקט שצוין או התגלה במהלך היצירה של סביבת הבדיקה.
Signature:
readonly projectId: string;
RulesTestEnvironment.authenticatedContext()
יצירת RulesTestContext
שמתנהגת כמו משתמש מאומת ב-Firebase Auth.
לבקשות שנוצרו באמצעות ההקשר שמוחזר יצורף אסימון Firebase Auth לדוגמה.
Signature:
authenticatedContext(user_id: string, tokenOptions?: TokenOptions): RulesTestContext;
פרמטרים
פרמטר | סוג | תיאור |
---|---|---|
user_id | מחרוזת | מזהה המשתמש של המשתמש. מציין את הערך של user_id ו-"sub" באסימון |
tokenOptions | TokenOptions | הצהרות או שינויים מברירת המחדל של מטענים ייעודיים (payloads) של אסימוני Firebase Auth |
החזרות:
דוגמה
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 Auth.
לבקשות שנוצרו באמצעות ההקשר שמוחזר לא יצורפו אסימוני Auth של Firebase.
Signature:
unauthenticatedContext(): RulesTestContext;
החזרות:
דוגמה
const unauthed = testEnv.unauthenticatedContext();
await assertFails(getDoc(unauthed.firestore(), '/private/doc'), { ... });
RulesTestEnvironment.withSecurityRulesDisabled()
Signature:
withSecurityRulesDisabled(callback: (context: RulesTestContext) => Promise<void>): Promise<void>;
פרמטרים
פרמטר | סוג | תיאור |
---|---|---|
קריאה חוזרת (callback) | (הקשר: RulesTestContext) => Promise<void> |
החזרות:
Promise<void>