ลายเซ็น:
export interface RulesTestEnvironment
พร็อพเพอร์ตี้
พร็อพเพอร์ตี้ | ประเภท | คำอธิบาย |
---|---|---|
โปรแกรมจำลอง | {ฐานข้อมูลนี้: HostAndPort; Firestorestore?: HostAndPort; พื้นที่เก็บข้อมูล: HostAndPort; } | สำเนาแบบอ่านอย่างเดียวของการกำหนดค่าโปรแกรมจำลองที่ระบุหรือค้นพบขณะสร้างสภาพแวดล้อมการทดสอบ |
projectId | string | รหัสโปรเจ็กต์ที่ระบุหรือค้นพบขณะสร้างสภาพแวดล้อมการทดสอบ |
วิธีการ
วิธีการ | คำอธิบาย |
---|---|
authenticatedContext(user_id, tokenOptions) | สร้าง RulesTestContext ซึ่งทำงานเหมือนผู้ใช้ Firebase Auth ที่ผ่านการตรวจสอบสิทธิ์แล้วคำขอที่สร้างผ่านบริบทที่แสดงผลจะมีโทเค็น Firebase Auth จำลองแนบอยู่ |
cleanup() | ที่ส่วนท้ายสุดของโค้ดทดสอบ ให้เรียกใช้ฟังก์ชันทำความสะอาด ทำลาย RulesTestContexts ทั้งหมดที่สร้างขึ้นในสภาพแวดล้อมการทดสอบและล้างทรัพยากรที่สำคัญเพื่อให้ออกจากระบบอย่างราบรื่นวิธีนี้ไม่ได้เปลี่ยนสถานะในโปรแกรมจำลองแต่อย่างใด หากต้องการรีเซ็ตข้อมูลระหว่างการทดสอบ โปรดดู clearDatabase() , clearFirestore() และ clearStorage() |
clearDatabase() | ล้างข้อมูลทั้งหมดในเนมสเปซของโปรแกรมจำลอง Realtime Database |
clearFirestore() | ล้างข้อมูลใน Firestore ที่เป็นของ projectId ในโปรแกรมจำลอง Firestore |
clearStorage() | ล้างไฟล์พื้นที่เก็บข้อมูลและข้อมูลเมตาในที่เก็บข้อมูลทั้งหมดในโปรแกรมจำลองพื้นที่เก็บข้อมูล |
unauthenticatedContext() | สร้าง RulesTestContext ซึ่งมีลักษณะการทํางานเหมือนไคลเอ็นต์ที่ไม่ได้เข้าสู่ระบบผ่าน Firebase Authคําขอที่สร้างผ่านบริบทที่ส่งกลับจะไม่แนบโทเค็น Firebase Auth |
withSecurityRulesDisabled(callback) |
RulesTestEnvironment.emulators
สำเนาแบบอ่านอย่างเดียวของการกำหนดค่าโปรแกรมจำลองที่ระบุหรือค้นพบขณะสร้างสภาพแวดล้อมการทดสอบ
ลายเซ็น:
readonly emulators: {
database?: HostAndPort;
firestore?: HostAndPort;
storage?: HostAndPort;
};
RulesTestEnvironment.projectId
รหัสโปรเจ็กต์ที่ระบุหรือค้นพบขณะสร้างสภาพแวดล้อมการทดสอบ
ลายเซ็น:
readonly projectId: string;
RulesTestEnvironment.authenticatedContext()
สร้าง RulesTestContext
ซึ่งมีลักษณะเหมือนผู้ใช้ Firebase Auth ที่ผ่านการตรวจสอบสิทธิ์แล้ว
คำขอที่สร้างขึ้นผ่านบริบทที่แสดงผลจะมีโทเค็น Firebase Auth จำลองที่แนบมา
ลายเซ็น:
authenticatedContext(user_id: string, tokenOptions?: TokenOptions): RulesTestContext;
พารามิเตอร์
พารามิเตอร์ | ประเภท | คำอธิบาย |
---|---|---|
user_id | string | รหัสผู้ใช้ของผู้ใช้ ระบุค่าของ "user_id" และ "sub" ในโทเค็น |
tokenOptions | TokenOptions | การอ้างสิทธิ์ที่กำหนดเองหรือการลบล้างสำหรับเพย์โหลดโทเค็นการตรวจสอบสิทธิ์ Firebase |
การคืนสินค้า:
ตัวอย่าง
const alice = testEnv.authenticatedContext('alice');
await assertSucceeds(getDoc(alice.firestore(), '/doc/readable/by/alice'), { ... });
RulesTestEnvironment.cleanup()
ที่ส่วนท้ายสุดของโค้ดทดสอบ ให้เรียกใช้ฟังก์ชันทำความสะอาด ทำลาย RulesTestContexts ที่สร้างขึ้นในสภาพแวดล้อมการทดสอบและล้างทรัพยากรที่สำคัญเพื่อให้ออกจากระบบอย่างราบรื่น
เมธอดนี้ไม่ได้เปลี่ยนสถานะในโปรแกรมจำลองแต่อย่างใด หากต้องการรีเซ็ตข้อมูลระหว่างการทดสอบ โปรดดู clearDatabase()
, clearFirestore()
และ clearStorage()
ลายเซ็น:
cleanup(): Promise<void>;
การคืนสินค้า:
Promise<void>
RulesTestEnvironment.clearDatabase()
ล้างข้อมูลทั้งหมดในเนมสเปซของโปรแกรมจำลอง Realtime Database
ลายเซ็น:
clearDatabase(): Promise<void>;
การคืนสินค้า:
Promise<void>
RulesTestEnvironment.clearFirestore()
ล้างข้อมูลในฐานข้อมูล Firestore เริ่มต้นสำหรับ projectId
ในโปรแกรมจำลอง Firestore
ลายเซ็น:
clearFirestore(): Promise<void>;
การคืนสินค้า:
Promise<void>
RulesTestEnvironment.clearStorage()
ล้างไฟล์พื้นที่เก็บข้อมูลและข้อมูลเมตาในที่เก็บข้อมูลที่ใช้งานอยู่ในโปรแกรมจำลองพื้นที่เก็บข้อมูล
ลายเซ็น:
clearStorage(): Promise<void>;
การคืนสินค้า:
Promise<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>;
พารามิเตอร์
พารามิเตอร์ | ประเภท | คำอธิบาย |
---|---|---|
Callback | (context: RulesTestContext) => สัญญา<void> |
การคืนสินค้า:
Promise<void>