import { DockerContainer } from '../DockerContainer'; import { MasterNodeRegTestContainer } from '../RegTestContainer/Masternode'; /** * App Container * * Typically used for "sanity tests" - tests that are run seperately from the * established unit tests to test against a simulated production environment, * ensuring our containerised apps are resolving incoming requests as expected. * * We introduce the container environment so that they can be run via unit tests * to create uniformity in our approach to testing. Reducing the cognitive * complexity of having to run multiple automated solutions to ensure release quality. * * This solution works by building a new docker image using our root Dockerfile * and running instances on random ports to support parallel testing allowing for * vertical scaling in our test environments. */ export declare abstract class AppContainer extends DockerContainer { readonly app: string; readonly port: number; readonly blockchain: MasterNodeRegTestContainer; readonly name: string; constructor(app: string, port?: number, blockchain?: MasterNodeRegTestContainer); abstract start(): Promise; /** * Start the blockchain master node and return its hosting details to be used * by the sanity containers. * * @returns Host details */ startMasterNode(): Promise<{ hostRegTestIp: string; hostRegTestPort: string; }>; /** * Shuts down and removes any running sanity instance for this session aiming to * reduce the amount of lingering docker containers as a result of running tests. */ stop(): Promise; generateName(): string; post(endpoint: string, data?: any): Promise; get(endpoint: string): Promise; fetch(endpoint: string, init?: RequestInit): Promise; getUrl(): Promise; } //# sourceMappingURL=index.d.ts.map