@dhlab/e2e-autogen
Version:
Google 스프레드시트 기반 시나리오를 Playwright 테스트 스텁 코드로 자동 생성하고, 테스트 실행 결과를 다시 시트에 업데이트하는 CLI 도구
103 lines (94 loc) • 2.2 kB
TypeScript
type TSocketIoMessage = {
direction: "clientToServer" | "serverToClient";
event: string;
data: unknown[];
timestamp: number;
isBinary?: boolean;
};
type TSocketIoRecording = {
type: "socketio";
requestId: string;
connection: {
url: string;
namespace?: string;
timestamp: number;
reject?: {
message: string;
afterMs?: number;
code?: string | number;
data?: unknown;
};
};
messages: TSocketIoMessage[];
closedAt?: number;
};
type TOnConnectBurst = {
responses: {
event: string;
args: unknown[];
delayMs: number;
}[];
};
type TTriggeredStep = {
expect: {
event: string;
args: unknown[];
};
responses: {
event: string;
args: unknown[];
delayMs: number;
}[];
};
type TSocketScenario = {
namespace: string;
onConnect: TOnConnectBurst;
steps: TTriggeredStep[];
disconnectAfterMs?: number;
handshakeReject?: {
message: string;
afterMs?: number;
code?: string | number;
data?: unknown;
};
};
type RecordingSourceContract = {
load(): Promise<TSocketIoRecording>;
};
type ScenarioBuilderContract = {
build(rec: TSocketIoRecording, opts?: {
speed?: number;
}): TSocketScenario;
};
type SocketPlayerContract = {
start(s: TSocketScenario): Promise<void>;
close(): void;
connected(): boolean;
};
type SocketServerContract = {
start(): Promise<void>;
close(): void;
connected(): boolean;
};
declare class MockSocketServer implements SocketServerContract {
#private;
constructor({ source, builder, player, buildOptions }: TArgs$1);
start(): Promise<void>;
close(): void;
connected(): boolean;
}
type TArgs$1 = {
source: RecordingSourceContract;
builder: ScenarioBuilderContract;
player: SocketPlayerContract;
buildOptions?: {
speed?: number;
};
};
declare const makeMockSocketServer: ({ data, port, speed, }: TArgs) => MockSocketServer;
type TArgs = {
data: unknown;
port: number;
speed?: number;
};
export { makeMockSocketServer };