flagpole
Version:
Simple and fast DOM integration, headless or headful browser, and REST API testing framework.
35 lines (34 loc) • 1.39 kB
TypeScript
export interface iAssertionSchema {
[key: string]: string | any[] | iAssertionSchemaItem;
}
export interface iAssertionSchemaTestOpts {
path: string;
parent: any;
root: any;
}
export interface iAssertionSchemaItem {
type?: string | string[];
items?: iAssertionSchema | string;
enum?: any[];
matches?: RegExp | string;
test: (value: any, opts: iAssertionSchemaTestOpts) => boolean;
}
export interface iAjvLike {
errors: Error[];
validate(schema: any, root: any): Promise<boolean>;
}
export declare class AssertionSchema implements iAjvLike {
protected _schema: iAssertionSchema | undefined;
protected _errors: Error[];
protected _root: any;
get errors(): Error[];
validate(schema: any, root: any): Promise<boolean>;
protected _logError(message: string): void;
protected _matchesType(schema: any, document: any, path: string): boolean;
protected _matchesEnum(schema: any, document: any, path: string): boolean;
protected _matchesPattern(schema: any, document: any, path: string): boolean;
protected _matchesTest(schema: any, document: any, path: string): boolean;
protected _matchesItems(schema: any, document: any, path: string): boolean;
protected _matchesProperties(schema: any, document: any, path: string): boolean;
protected _isValid(schema: any, document: any, path: string): boolean;
}