Подпись:
export interface RulesTestEnvironment
Характеристики
Свойство | Тип | Описание |
---|---|---|
эмуляторы | {база данных?: HostAndPort ; пожарный магазин?: HostAndPort ; хранилище?: HostAndPort ; } | Копия конфигурации эмулятора, доступная только для чтения, указанная или обнаруженная при создании тестовой среды. |
идентификатор проекта | нить | Идентификатор проекта, указанный или обнаруженный при создании тестовой среды. |
Методы
Метод | Описание |
---|---|
аутентифицированныйконтекст (user_id, tokenOptions) | Создайте RulesTestContext , который будет вести себя как аутентифицированный пользователь Firebase Auth. К запросам, созданным через возвращенный контекст, будет прикреплен фиктивный токен аутентификации Firebase. |
очистка() | В самом конце вашего тестового кода вызовите функцию очистки. Уничтожьте все RulesTestContexts, созданные в тестовой среде, и очистите базовые ресурсы, чтобы обеспечить чистый выход. Этот метод никак не меняет состояние в эмуляторах. Чтобы сбросить данные между тестами, см. clearDatabase() , clearFirestore() и clearStorage() . |
очистить базу данных() | Очистите все данные в пространстве имен эмулятора базы данных реального времени. |
очиститьFirestore() | Очистите данные в Firestore, принадлежащие projectId в эмуляторе Firestore. |
Очистить хранилище() | Очистите файлы и метаданные хранилища во всех сегментах в эмуляторе хранилища. |
неаутентифицированныйконтекст() | Создайте RulesTestContext , который ведет себя как клиент, который НЕ вошел в систему через Firebase Auth. К запросам, созданным через возвращенный контекст, не будут прикреплены токены аутентификации Firebase. |
withSecurityRulesDisabled (обратный вызов) |
ПравилаTestEnvironment.emulators
Копия конфигурации эмулятора, доступная только для чтения, указанная или обнаруженная при создании тестовой среды.
Подпись:
readonly emulators: {
database?: HostAndPort;
firestore?: HostAndPort;
storage?: HostAndPort;
};
RulesTestEnvironment.projectId
Идентификатор проекта, указанный или обнаруженный при создании тестовой среды.
Подпись:
readonly projectId: string;
RulesTestEnvironment.authenticatedContext()
Создайте RulesTestContext
, который будет вести себя как аутентифицированный пользователь Firebase Auth.
К запросам, созданным через возвращенный контекст, будет прикреплен фиктивный токен аутентификации Firebase.
Подпись:
authenticatedContext(user_id: string, tokenOptions?: TokenOptions): RulesTestContext;
Параметры
Параметр | Тип | Описание |
---|---|---|
ID пользователя | нить | идентификатор пользователя. Указывает значение «user_id» и «sub» в токене. |
опции токена | Опции токена | пользовательские утверждения или переопределения для полезных данных токена Firebase Auth. |
Возврат:
Пример
const alice = testEnv.authenticatedContext('alice');
await assertSucceeds(getDoc(alice.firestore(), '/doc/readable/by/alice'), { ... });
ПравилаTestEnvironment.cleanup()
В самом конце вашего тестового кода вызовите функцию очистки. Уничтожьте все RulesTestContexts, созданные в тестовой среде, и очистите базовые ресурсы, чтобы обеспечить чистый выход.
Этот метод никак не меняет состояние в эмуляторах. Чтобы сбросить данные между тестами, см. clearDatabase()
, clearFirestore()
и clearStorage()
.
Подпись:
cleanup(): Promise<void>;
Возврат:
Обещание<void>
ПравилаTestEnvironment.clearDatabase()
Очистите все данные в пространстве имен эмулятора базы данных реального времени.
Подпись:
clearDatabase(): Promise<void>;
Возврат:
Обещание<void>
ПравилаTestEnvironment.clearFirestore()
Очистите данные в базе данных Firestore по умолчанию для projectId
в эмуляторе Firestore.
Подпись:
clearFirestore(): Promise<void>;
Возврат:
Обещание<void>
ПравилаTestEnvironment.clearStorage()
Очистите файлы и метаданные хранилища в активном сегменте в эмуляторе хранилища.
Подпись:
clearStorage(): Promise<void>;
Возврат:
Обещание<void>
RulesTestEnvironment.unauthenticatedContext()
Создайте RulesTestContext
, который ведет себя как клиент, который НЕ вошел в систему через Firebase Auth.
К запросам, созданным через возвращенный контекст, не будут прикреплены токены аутентификации Firebase.
Подпись:
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>