selenium-state-machine
Version:
Write Selenium tests using state machines
86 lines • 2.31 kB
TypeScript
import { error } from 'selenium-webdriver';
import { State } from './State';
/**
* Dependency name type
*/
export declare type DependencyID = string;
/**
* Dependency map generic type
*/
export declare type DependencyMap = {
[key: string]: Dependency<unknown>;
};
export interface FsmDependencyArguments<T> {
name?: string;
value?: T;
}
export interface FsmDependencyCloneArguments<T> {
name?: string;
provider: State<never, never>;
value?: T;
}
/**
* Stale dependency has become stale. It extends StaleElementReferenceError but it tracks which
* element is stale.
*/
export declare class StaleDependencyReferenceError<T> extends error.StaleElementReferenceError {
readonly dependency: ValueDependency<T>;
constructor(dependency: ValueDependency<T>);
}
/**
* Dependency interface
*/
export interface Dependency<T> {
/**
* Stored value
*/
readonly value: T;
/**
* Name of the dependency
*/
name: string;
/**
* Make dependency invalid/stale
*/
invalidate(): never;
}
/**
* Generic dependency type.
*/
export declare class ValueDependency<T> implements Dependency<T> {
protected _value?: T;
protected _name?: string;
protected _provider?: State<never, never>;
constructor(config?: FsmDependencyArguments<T>);
invalidate(): never;
/**
* Get who provides the dependency.
*/
get provider(): State<never, never> | undefined;
/**
* Set new dependency provider. Must be first in invalid state before assigning.
*/
set provider(v: State<never, never> | undefined);
/**
* Check if dependency is in ok state.
*/
get ready(): boolean;
get name(): string;
set name(v: string);
get id(): DependencyID;
get value(): T;
/**
* Assign new value to dependency. This is immutable method.
* @param value new value
* @param provider new provider
* @returns new Dependency with new values
*/
set(value: T, provider: State<never, never>): ValueDependency<T>;
/**
* Make clone of the dependency.
* @param newValues optional new values
* @returns new Dependency
*/
protected clone(newValues: FsmDependencyCloneArguments<T>): ValueDependency<T>;
}
//# sourceMappingURL=Dependency.d.ts.map