firebase-bolt
Version:
Firebase Bolt Security and Modeling Language Compiler
62 lines (61 loc) • 2.04 kB
TypeScript
import * as rest from './firebase-rest';
export declare type SuiteFunction = (fn: TestFunction) => void;
export interface TestFunction {
(name: string, fnTest: (rules: RulesTest) => void): void;
rules: (path: string) => void;
database: (appName: string, secret: string) => void;
uid: (username: string) => string;
TIMESTAMP: Object;
}
export declare function rulesSuite(suiteName: string, fnSuite: SuiteFunction): void;
export declare class RulesSuite {
suiteName: string;
private fnSuite;
debug: boolean;
private users;
private tests;
private rulesPath;
private rulesPathResolve;
private databaseReady;
private ready;
private adminClient;
private appName;
private appSecret;
constructor(suiteName: string, fnSuite: SuiteFunction);
setDebug(debug?: boolean): this;
run(): void;
getInterface(): any;
onRulesReady(prereq: [Object, any]): Promise<string>;
runTests(): Promise<{}>;
test(testName: string, fnTest: (rules: RulesTest) => void): void;
rules(rulesPath: string): void;
database(appName: string, appSecret: string): void;
uid(username: string): string | undefined;
ensureUser(username: string): rest.Client;
}
export declare class RulesTest {
private testName;
private suite;
private fnTest;
private lastError;
private steps;
private failed;
private path;
private client;
private status;
constructor(testName: string, suite: RulesSuite, fnTest: (rules: RulesTest) => void);
run(): Promise<never>;
queue(op: string, args: ArrayLike<any>, fn: () => Promise<any>): void;
executeQueue(): Promise<boolean>;
debug(debug?: boolean): RulesTest;
as(username: string): RulesTest;
at(opPath: string | undefined): RulesTest;
write(obj: any): RulesTest;
push(obj: any): RulesTest;
read(): RulesTest;
succeeds(message: string): RulesTest;
fails(message: string): RulesTest;
private good;
private log;
messageFormat(message: string): string;
}