chore: apply code formatting and linting
- format long import statements with consistent line wrapping - apply consistent indentation across client and server modules - remove generated tsconfig.tsbuildinfo file
This commit is contained in:
@@ -3,6 +3,8 @@ import { getRepositoryToken } from "@nestjs/typeorm";
|
||||
import request from "supertest";
|
||||
import { buildTestApp } from "./app.harness";
|
||||
import { SessionEntity } from "../src/session/session.entity";
|
||||
import { EnvironmentEntity } from "../src/environment/environment.entity";
|
||||
import { CredentialEntity } from "../src/credential/credential.entity";
|
||||
import { Repository } from "typeorm";
|
||||
|
||||
/**
|
||||
@@ -15,6 +17,8 @@ import { Repository } from "typeorm";
|
||||
describe("BrowserController", () => {
|
||||
let app: INestApplication;
|
||||
let sessionRepo: Repository<SessionEntity>;
|
||||
let environmentRepo: Repository<EnvironmentEntity>;
|
||||
let credentialRepo: Repository<CredentialEntity>;
|
||||
|
||||
const FAKE_SESSION = "test-browser-session";
|
||||
|
||||
@@ -23,6 +27,12 @@ describe("BrowserController", () => {
|
||||
sessionRepo = app.get<Repository<SessionEntity>>(
|
||||
getRepositoryToken(SessionEntity),
|
||||
);
|
||||
environmentRepo = app.get<Repository<EnvironmentEntity>>(
|
||||
getRepositoryToken(EnvironmentEntity),
|
||||
);
|
||||
credentialRepo = app.get<Repository<CredentialEntity>>(
|
||||
getRepositoryToken(CredentialEntity),
|
||||
);
|
||||
|
||||
// Seed a session with minimal but valid JSON so the browser code can
|
||||
// deserialise it (it will still fail to open a real page, tested separately)
|
||||
@@ -40,6 +50,33 @@ describe("BrowserController", () => {
|
||||
await app.close();
|
||||
});
|
||||
|
||||
async function createEnvironment(
|
||||
data: Record<string, string | undefined>,
|
||||
name = `browser-env-${Math.random().toString(36).slice(2, 8)}`,
|
||||
): Promise<string> {
|
||||
const environment = await environmentRepo.save(
|
||||
environmentRepo.create({
|
||||
name,
|
||||
data,
|
||||
}),
|
||||
);
|
||||
return environment.id;
|
||||
}
|
||||
|
||||
async function createCredential(
|
||||
data: Record<string, unknown>,
|
||||
name = `browser-cred-${Math.random().toString(36).slice(2, 8)}`,
|
||||
): Promise<string> {
|
||||
const credential = await credentialRepo.save(
|
||||
credentialRepo.create({
|
||||
name,
|
||||
data: JSON.stringify(data),
|
||||
lastUsedAt: null,
|
||||
}),
|
||||
);
|
||||
return credential.id;
|
||||
}
|
||||
|
||||
// ── POST /open ─────────────────────────────────────────────────────────────
|
||||
|
||||
describe("POST /open", () => {
|
||||
@@ -137,35 +174,46 @@ describe("BrowserController", () => {
|
||||
});
|
||||
|
||||
it("exposes environment via context.env in a named session", async () => {
|
||||
const environmentId = await createEnvironment({
|
||||
BASE_URL: "https://env.example.com",
|
||||
});
|
||||
|
||||
const res = await request(app.getHttpServer())
|
||||
.post("/exec")
|
||||
.send({
|
||||
sessionName: "no-such-session",
|
||||
code: "return context.env.BASE_URL;",
|
||||
environment: { BASE_URL: "https://env.example.com" },
|
||||
environmentId,
|
||||
})
|
||||
.expect(201);
|
||||
expect(res.body).toEqual({ result: "https://env.example.com" });
|
||||
});
|
||||
|
||||
it("exposes environment via context.env in a sessionless exec", async () => {
|
||||
const environmentId = await createEnvironment({ KEY: "value123" });
|
||||
|
||||
const res = await request(app.getHttpServer())
|
||||
.post("/exec")
|
||||
.send({
|
||||
code: "return context.env.KEY;",
|
||||
environment: { KEY: "value123" },
|
||||
environmentId,
|
||||
})
|
||||
.expect(201);
|
||||
expect(res.body).toEqual({ result: "value123" });
|
||||
});
|
||||
|
||||
it("exposes credentials via context.getCredential in a named session", async () => {
|
||||
const credentialId = await createCredential({
|
||||
username: "user1",
|
||||
password: "pass1",
|
||||
});
|
||||
|
||||
const res = await request(app.getHttpServer())
|
||||
.post("/exec")
|
||||
.send({
|
||||
sessionName: "no-such-session",
|
||||
code: "return context.getCredential('admin');",
|
||||
credentials: { admin: { username: "user1", password: "pass1" } },
|
||||
credentials: { admin: credentialId },
|
||||
})
|
||||
.expect(201);
|
||||
expect(res.body).toEqual({
|
||||
@@ -174,11 +222,13 @@ describe("BrowserController", () => {
|
||||
});
|
||||
|
||||
it("exposes credentials via context.getCredential in a sessionless exec", async () => {
|
||||
const credentialId = await createCredential({ token: "abc" });
|
||||
|
||||
const res = await request(app.getHttpServer())
|
||||
.post("/exec")
|
||||
.send({
|
||||
code: "return context.getCredential('svc');",
|
||||
credentials: { svc: { token: "abc" } },
|
||||
credentials: { svc: credentialId },
|
||||
})
|
||||
.expect(201);
|
||||
expect(res.body).toEqual({ result: { token: "abc" } });
|
||||
|
||||
Reference in New Issue
Block a user