feat(browser): add environment, credentials, and script logger to POST /exec
- ExecDto gains optional `environment` and `credentials` fields - BrowserService.exec forwards both to CodeExecutorService.execute so helpers.env, helpers.getEnvUrl(), and helpers.getCredential() work identically to scenario-scheduler steps - script console.log/warn/error now routed through TraceLogger with session label prefix - integration tests cover env/creds injection and missing-alias error
This commit is contained in:
@@ -11,9 +11,10 @@ import { JSDOM } from "jsdom";
|
||||
import { SessionContextService } from "../session/session-context.service";
|
||||
import { SessionService } from "../session/session.service";
|
||||
import { CodeExecutorService } from "../code-executor/code-executor.service";
|
||||
import type { ExecResult } from "../code-executor/code-executor.service";
|
||||
import type { ExecResult, ScriptLogger } from "../code-executor/code-executor.service";
|
||||
import { SnippetService } from "../snippet/snippet.service";
|
||||
import type { Cookie } from "playwright";
|
||||
import type { EnvironmentData } from "../environment/environment.entity";
|
||||
|
||||
export type { ExecResult } from "../code-executor/code-executor.service";
|
||||
|
||||
@@ -166,6 +167,8 @@ export class BrowserService {
|
||||
sessionName: string | undefined,
|
||||
code: string,
|
||||
url?: string,
|
||||
environment?: EnvironmentData,
|
||||
credentials?: Record<string, unknown>,
|
||||
): Promise<ExecResult> {
|
||||
const label = sessionName ?? "anonymous";
|
||||
|
||||
@@ -182,14 +185,16 @@ export class BrowserService {
|
||||
await page.goto(url, { waitUntil: "networkidle" });
|
||||
}
|
||||
this.logger.log(`[${label}] exec: running user code`);
|
||||
const scriptLogger: ScriptLogger = (level, msg) =>
|
||||
this.logger[level](`[${label}] script: ${msg}`);
|
||||
const result = await this.codeExecutor.execute(
|
||||
page,
|
||||
context,
|
||||
code,
|
||||
scriptLogger,
|
||||
undefined,
|
||||
undefined,
|
||||
undefined,
|
||||
undefined,
|
||||
credentials,
|
||||
environment,
|
||||
snippets,
|
||||
);
|
||||
this.logger.log(`[${label}] exec: done`);
|
||||
@@ -217,14 +222,16 @@ export class BrowserService {
|
||||
}
|
||||
|
||||
this.logger.log(`[${label}] exec: running user code`);
|
||||
const scriptLogger: ScriptLogger = (level, msg) =>
|
||||
this.logger[level](`[${label}] script: ${msg}`);
|
||||
const result = await this.codeExecutor.execute(
|
||||
page,
|
||||
context,
|
||||
code,
|
||||
scriptLogger,
|
||||
undefined,
|
||||
undefined,
|
||||
undefined,
|
||||
undefined,
|
||||
credentials,
|
||||
environment,
|
||||
snippetMap,
|
||||
);
|
||||
this.logger.log(`[${label}] exec: done`);
|
||||
|
||||
Reference in New Issue
Block a user