Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 2 additions & 4 deletions src/__tests__/unit/api/api-chat-message.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -582,8 +582,7 @@ describe("POST /api/chat/message", () => {

expect(fetchCall).toBeTruthy();

const _rawBody = JSON.parse(fetchCall![1]!.body as string);
const body = (_rawBody && typeof _rawBody === "object" && "project" in _rawBody) ? _rawBody.project : _rawBody;
const body = JSON.parse(fetchCall![1]!.body as string);
expect(body.workflow_params.set_var.attributes.vars).toMatchObject({
alias: "testuser",
username: "testuser",
Expand Down Expand Up @@ -617,8 +616,7 @@ describe("POST /api/chat/message", () => {

const fetchCall = mockFetch.mock.calls.find((call) => call[0].toString().includes("stakwork"));

const _rawBody = JSON.parse(fetchCall![1]!.body as string);
const body = (_rawBody && typeof _rawBody === "object" && "project" in _rawBody) ? _rawBody.project : _rawBody;
const body = JSON.parse(fetchCall![1]!.body as string);
expect(body.workflow_id).toBe(parseInt(expectedWorkflowId));
});
});
Expand Down
18 changes: 6 additions & 12 deletions src/__tests__/unit/api/chat/call-stakwork.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -206,15 +206,13 @@ const TestHelpers = {
);

const fetchCall = mockFetch.mock.calls[0];
const _rawPayload = JSON.parse(fetchCall[1]?.body as string);
const payload = (_rawPayload && typeof _rawPayload === 'object' && 'project' in _rawPayload) ? _rawPayload.project : _rawPayload;
const payload = JSON.parse(fetchCall[1]?.body as string);
expect(payload.workflow_id).toBe(workflowId);
},

expectFetchCalledWithVarsContaining: (expectedVars: Record<string, unknown>) => {
const fetchCall = mockFetch.mock.calls[0];
const _rawPayload = JSON.parse(fetchCall[1]?.body as string);
const payload = (_rawPayload && typeof _rawPayload === 'object' && 'project' in _rawPayload) ? _rawPayload.project : _rawPayload;
const payload = JSON.parse(fetchCall[1]?.body as string);
const vars = payload.workflow_params.set_var.attributes.vars;

Object.entries(expectedVars).forEach(([key, value]) => {
Expand Down Expand Up @@ -502,8 +500,7 @@ describe("callStakwork Function Unit Tests", () => {
await POST(request);

const fetchCall = mockFetch.mock.calls[0];
const _rawPayload = JSON.parse(fetchCall[1]?.body as string);
const payload = (_rawPayload && typeof _rawPayload === 'object' && 'project' in _rawPayload) ? _rawPayload.project : _rawPayload;
const payload = JSON.parse(fetchCall[1]?.body as string);
expect(payload.webhook_url).toBe("http://localhost:3000/api/stakwork/webhook?task_id=test-task-id");
});

Expand Down Expand Up @@ -722,8 +719,7 @@ describe("callStakwork Function Unit Tests", () => {
await POST(request);

const fetchCall = mockFetch.mock.calls[0];
const _rawPayload = JSON.parse(fetchCall[1]?.body as string);
const payload = (_rawPayload && typeof _rawPayload === 'object' && 'project' in _rawPayload) ? _rawPayload.project : _rawPayload;
const payload = JSON.parse(fetchCall[1]?.body as string);

expect(payload).toMatchObject({
name: expect.stringMatching(/^hive-task-/),
Expand All @@ -749,8 +745,7 @@ describe("callStakwork Function Unit Tests", () => {
await POST(request);

const fetchCall = mockFetch.mock.calls[0];
const _rawPayload = JSON.parse(fetchCall[1]?.body as string);
const payload = (_rawPayload && typeof _rawPayload === 'object' && 'project' in _rawPayload) ? _rawPayload.project : _rawPayload;
const payload = JSON.parse(fetchCall[1]?.body as string);

expect(payload.name).toBe("hive-task-test-task-id");
});
Expand All @@ -762,8 +757,7 @@ describe("callStakwork Function Unit Tests", () => {
await POST(request);

const fetchCall = mockFetch.mock.calls[0];
const _rawPayload = JSON.parse(fetchCall[1]?.body as string);
const payload = (_rawPayload && typeof _rawPayload === 'object' && 'project' in _rawPayload) ? _rawPayload.project : _rawPayload;
const payload = JSON.parse(fetchCall[1]?.body as string);

expect(payload.workflow_params).toHaveProperty("set_var");
expect(payload.workflow_params.set_var).toHaveProperty("attributes");
Expand Down
21 changes: 7 additions & 14 deletions src/__tests__/unit/api/chat/message/call-stakwork.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -588,8 +588,7 @@ describe("callStakwork Function - Chat Message Processing", () => {

// Verify context tags were passed to Stakwork API
const fetchCall = mockFetch.mock.calls[0];
const _rawRequestBody = JSON.parse(fetchCall[1].body as string);
const requestBody = (_rawRequestBody && typeof _rawRequestBody === 'object' && 'project' in _rawRequestBody) ? _rawRequestBody.project : _rawRequestBody;
const requestBody = JSON.parse(fetchCall[1].body as string);
const vars = requestBody.workflow_params.set_var.attributes.vars;

expect(vars.contextTags).toEqual(contextTags);
Expand Down Expand Up @@ -1028,8 +1027,7 @@ describe("callStakwork Function - Chat Message Processing", () => {
await POST(request);

const fetchCall = mockFetch.mock.calls[0];
const _rawRequestBody = JSON.parse(fetchCall[1].body as string);
const requestBody = (_rawRequestBody && typeof _rawRequestBody === 'object' && 'project' in _rawRequestBody) ? _rawRequestBody.project : _rawRequestBody;
const requestBody = JSON.parse(fetchCall[1].body as string);

expect(requestBody.workflow_id).toBe(101); // First ID from "101,102,103"
});
Expand All @@ -1050,8 +1048,7 @@ describe("callStakwork Function - Chat Message Processing", () => {
await POST(request);

const fetchCall = mockFetch.mock.calls[0];
const _rawRequestBody = JSON.parse(fetchCall[1].body as string);
const requestBody = (_rawRequestBody && typeof _rawRequestBody === 'object' && 'project' in _rawRequestBody) ? _rawRequestBody.project : _rawRequestBody;
const requestBody = JSON.parse(fetchCall[1].body as string);

expect(requestBody.workflow_id).toBe(103); // Third ID from "101,102,103"
});
Expand All @@ -1072,8 +1069,7 @@ describe("callStakwork Function - Chat Message Processing", () => {
await POST(request);

const fetchCall = mockFetch.mock.calls[0];
const _rawRequestBody = JSON.parse(fetchCall[1].body as string);
const requestBody = (_rawRequestBody && typeof _rawRequestBody === 'object' && 'project' in _rawRequestBody) ? _rawRequestBody.project : _rawRequestBody;
const requestBody = JSON.parse(fetchCall[1].body as string);

expect(requestBody.workflow_id).toBe(102); // Second ID from "101,102,103"
});
Expand Down Expand Up @@ -1243,8 +1239,7 @@ describe("callStakwork Function - Chat Message Processing", () => {
await POST(request);

const fetchCall = mockFetch.mock.calls[0];
const _rawRequestBody = JSON.parse(fetchCall[1].body as string);
const requestBody = (_rawRequestBody && typeof _rawRequestBody === 'object' && 'project' in _rawRequestBody) ? _rawRequestBody.project : _rawRequestBody;
const requestBody = JSON.parse(fetchCall[1].body as string);
const vars = requestBody.workflow_params.set_var.attributes.vars;

expect(vars).toMatchObject({
Expand Down Expand Up @@ -1314,8 +1309,7 @@ describe("callStakwork Function - Chat Message Processing", () => {
await POST(request);

const fetchCall = mockFetch.mock.calls[0];
const _rawRequestBody = JSON.parse(fetchCall[1].body as string);
const requestBody = (_rawRequestBody && typeof _rawRequestBody === 'object' && 'project' in _rawRequestBody) ? _rawRequestBody.project : _rawRequestBody;
const requestBody = JSON.parse(fetchCall[1].body as string);

expect(requestBody.webhook_url).toBe(
`http://localhost:3000/api/stakwork/webhook?task_id=${mockTaskId}`
Expand Down Expand Up @@ -1392,8 +1386,7 @@ describe("callStakwork Function - Chat Message Processing", () => {
expect(mockS3Service.generatePresignedDownloadUrl).toHaveBeenCalledWith("uploads/file2.jpg");

const fetchCall = mockFetch.mock.calls[0];
const _rawRequestBody = JSON.parse(fetchCall[1].body as string);
const requestBody = (_rawRequestBody && typeof _rawRequestBody === 'object' && 'project' in _rawRequestBody) ? _rawRequestBody.project : _rawRequestBody;
const requestBody = JSON.parse(fetchCall[1].body as string);
const vars = requestBody.workflow_params.set_var.attributes.vars;

expect(vars.attachments).toEqual([
Expand Down
51 changes: 17 additions & 34 deletions src/__tests__/unit/api/chat/message/route.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -709,8 +709,7 @@ describe("POST /api/chat/message - callStakwork Unit Tests", () => {
await POST(request);

const fetchCall = mockFetch.mock.calls[0];
const _rawRequestBody = JSON.parse(fetchCall[1].body as string);
const requestBody = (_rawRequestBody && typeof _rawRequestBody === 'object' && 'project' in _rawRequestBody) ? _rawRequestBody.project : _rawRequestBody;
const requestBody = JSON.parse(fetchCall[1].body as string);

expect(requestBody.workflow_id).toBe(101); // First workflow ID
});
Expand All @@ -729,8 +728,7 @@ describe("POST /api/chat/message - callStakwork Unit Tests", () => {
await POST(request);

const fetchCall = mockFetch.mock.calls[0];
const _rawRequestBody = JSON.parse(fetchCall[1].body as string);
const requestBody = (_rawRequestBody && typeof _rawRequestBody === 'object' && 'project' in _rawRequestBody) ? _rawRequestBody.project : _rawRequestBody;
const requestBody = JSON.parse(fetchCall[1].body as string);

expect(requestBody.workflow_id).toBe(103); // Third workflow ID
});
Expand All @@ -749,8 +747,7 @@ describe("POST /api/chat/message - callStakwork Unit Tests", () => {
await POST(request);

const fetchCall = mockFetch.mock.calls[0];
const _rawRequestBody = JSON.parse(fetchCall[1].body as string);
const requestBody = (_rawRequestBody && typeof _rawRequestBody === 'object' && 'project' in _rawRequestBody) ? _rawRequestBody.project : _rawRequestBody;
const requestBody = JSON.parse(fetchCall[1].body as string);

expect(requestBody.workflow_id).toBe(103); // Third workflow ID
});
Expand All @@ -769,8 +766,7 @@ describe("POST /api/chat/message - callStakwork Unit Tests", () => {
await POST(request);

const fetchCall = mockFetch.mock.calls[0];
const _rawRequestBody = JSON.parse(fetchCall[1].body as string);
const requestBody = (_rawRequestBody && typeof _rawRequestBody === 'object' && 'project' in _rawRequestBody) ? _rawRequestBody.project : _rawRequestBody;
const requestBody = JSON.parse(fetchCall[1].body as string);

expect(requestBody.workflow_id).toBe(102); // Second workflow ID (default)
});
Expand All @@ -788,8 +784,7 @@ describe("POST /api/chat/message - callStakwork Unit Tests", () => {
await POST(request);

const fetchCall = mockFetch.mock.calls[0];
const _rawRequestBody = JSON.parse(fetchCall[1].body as string);
const requestBody = (_rawRequestBody && typeof _rawRequestBody === 'object' && 'project' in _rawRequestBody) ? _rawRequestBody.project : _rawRequestBody;
const requestBody = JSON.parse(fetchCall[1].body as string);

expect(requestBody.workflow_id).toBe(102); // Second workflow ID (default)
});
Expand Down Expand Up @@ -855,8 +850,7 @@ describe("POST /api/chat/message - callStakwork Unit Tests", () => {
await POST(request);

const fetchCall = mockFetch.mock.calls[0];
const _rawRequestBody = JSON.parse(fetchCall[1].body as string);
const requestBody = (_rawRequestBody && typeof _rawRequestBody === 'object' && 'project' in _rawRequestBody) ? _rawRequestBody.project : _rawRequestBody;
const requestBody = JSON.parse(fetchCall[1].body as string);
const vars = requestBody.workflow_params.set_var.attributes.vars;

expect(vars).toMatchObject({
Expand Down Expand Up @@ -925,8 +919,7 @@ describe("POST /api/chat/message - callStakwork Unit Tests", () => {
expect(s3Service.generatePresignedDownloadUrl).toHaveBeenCalledWith("uploads/test/file.pdf");

const fetchCall = mockFetch.mock.calls[0];
const _rawRequestBody = JSON.parse(fetchCall[1].body as string);
const requestBody = (_rawRequestBody && typeof _rawRequestBody === 'object' && 'project' in _rawRequestBody) ? _rawRequestBody.project : _rawRequestBody;
const requestBody = JSON.parse(fetchCall[1].body as string);
const vars = requestBody.workflow_params.set_var.attributes.vars;

expect(vars.attachments).toEqual(["https://s3.test.com/presigned-url"]);
Expand Down Expand Up @@ -955,8 +948,7 @@ describe("POST /api/chat/message - callStakwork Unit Tests", () => {
expect(vi.mocked(getBaseUrl)).toHaveBeenCalledWith();

const fetchCall = mockFetch.mock.calls[0];
const _rawRequestBody = JSON.parse(fetchCall[1].body as string);
const requestBody = (_rawRequestBody && typeof _rawRequestBody === 'object' && 'project' in _rawRequestBody) ? _rawRequestBody.project : _rawRequestBody;
const requestBody = JSON.parse(fetchCall[1].body as string);
const vars = requestBody.workflow_params.set_var.attributes.vars;

expect(vars.webhookUrl).toBe("https://production.example.com/api/chat/response");
Expand All @@ -977,8 +969,7 @@ describe("POST /api/chat/message - callStakwork Unit Tests", () => {
await POST(request);

const fetchCall = mockFetch.mock.calls[0];
const _rawRequestBody = JSON.parse(fetchCall[1].body as string);
const requestBody = (_rawRequestBody && typeof _rawRequestBody === 'object' && 'project' in _rawRequestBody) ? _rawRequestBody.project : _rawRequestBody;
const requestBody = JSON.parse(fetchCall[1].body as string);
const vars = requestBody.workflow_params.set_var.attributes.vars;

expect(vars.webhookUrl).toBe("https://custom-webhook.example.com");
Expand All @@ -999,8 +990,7 @@ describe("POST /api/chat/message - callStakwork Unit Tests", () => {
await POST(request);

const fetchCall = mockFetch.mock.calls[0];
const _rawRequestBody = JSON.parse(fetchCall[1].body as string);
const requestBody = (_rawRequestBody && typeof _rawRequestBody === 'object' && 'project' in _rawRequestBody) ? _rawRequestBody.project : _rawRequestBody;
const requestBody = JSON.parse(fetchCall[1].body as string);

expect(requestBody.webhook_url).toBe(`http://localhost:3000/api/stakwork/webhook?task_id=${mockTaskId}`);
});
Expand All @@ -1022,8 +1012,7 @@ describe("POST /api/chat/message - callStakwork Unit Tests", () => {
expect(vi.mocked(transformSwarmUrlToRepo2Graph)).toHaveBeenCalledWith("https://test-swarm.com/api");

const fetchCall = mockFetch.mock.calls[0];
const _rawRequestBody = JSON.parse(fetchCall[1].body as string);
const requestBody = (_rawRequestBody && typeof _rawRequestBody === 'object' && 'project' in _rawRequestBody) ? _rawRequestBody.project : _rawRequestBody;
const requestBody = JSON.parse(fetchCall[1].body as string);
const vars = requestBody.workflow_params.set_var.attributes.vars;

expect(vars.repo2graph_url).toBe("https://custom-graph.com:3355");
Expand Down Expand Up @@ -1415,8 +1404,7 @@ describe("POST /api/chat/message - callStakwork Unit Tests", () => {
await POST(request);

const fetchCall = mockFetch.mock.calls[0];
const _rawRequestBody = JSON.parse(fetchCall[1].body as string);
const requestBody = (_rawRequestBody && typeof _rawRequestBody === 'object' && 'project' in _rawRequestBody) ? _rawRequestBody.project : _rawRequestBody;
const requestBody = JSON.parse(fetchCall[1].body as string);
const vars = requestBody.workflow_params.set_var.attributes.vars;

expect(vars.runBuild).toBe(false);
Expand All @@ -1439,8 +1427,7 @@ describe("POST /api/chat/message - callStakwork Unit Tests", () => {
await POST(request);

const fetchCall = mockFetch.mock.calls[0];
const _rawRequestBody = JSON.parse(fetchCall[1].body as string);
const requestBody = (_rawRequestBody && typeof _rawRequestBody === 'object' && 'project' in _rawRequestBody) ? _rawRequestBody.project : _rawRequestBody;
const requestBody = JSON.parse(fetchCall[1].body as string);
const vars = requestBody.workflow_params.set_var.attributes.vars;

expect(vars.runTestSuite).toBe(false);
Expand All @@ -1463,8 +1450,7 @@ describe("POST /api/chat/message - callStakwork Unit Tests", () => {
await POST(request);

const fetchCall = mockFetch.mock.calls[0];
const _rawRequestBody = JSON.parse(fetchCall[1].body as string);
const requestBody = (_rawRequestBody && typeof _rawRequestBody === 'object' && 'project' in _rawRequestBody) ? _rawRequestBody.project : _rawRequestBody;
const requestBody = JSON.parse(fetchCall[1].body as string);
const vars = requestBody.workflow_params.set_var.attributes.vars;

expect(vars.autoMergePr).toBe(true);
Expand All @@ -1487,8 +1473,7 @@ describe("POST /api/chat/message - callStakwork Unit Tests", () => {
await POST(request);

const fetchCall = mockFetch.mock.calls[0];
const _rawRequestBody = JSON.parse(fetchCall[1].body as string);
const requestBody = (_rawRequestBody && typeof _rawRequestBody === 'object' && 'project' in _rawRequestBody) ? _rawRequestBody.project : _rawRequestBody;
const requestBody = JSON.parse(fetchCall[1].body as string);
const vars = requestBody.workflow_params.set_var.attributes.vars;

expect(vars.runBuild).toBe(false);
Expand Down Expand Up @@ -1572,8 +1557,7 @@ describe("POST /api/chat/message - callStakwork Unit Tests", () => {
]);

const fetchCall = mockFetch.mock.calls[0];
const _rawRequestBody = JSON.parse(fetchCall[1].body as string);
const requestBody = (_rawRequestBody && typeof _rawRequestBody === 'object' && 'project' in _rawRequestBody) ? _rawRequestBody.project : _rawRequestBody;
const requestBody = JSON.parse(fetchCall[1].body as string);
const vars = requestBody.workflow_params.set_var.attributes.vars;

expect(vars.contextTags).toEqual([
Expand Down Expand Up @@ -1695,8 +1679,7 @@ describe("POST /api/chat/message - callStakwork Unit Tests", () => {
expect(s3Service.generatePresignedDownloadUrl).toHaveBeenCalledWith("uploads/file2.jpg");

const fetchCall = mockFetch.mock.calls[0];
const _rawRequestBody = JSON.parse(fetchCall[1].body as string);
const requestBody = (_rawRequestBody && typeof _rawRequestBody === 'object' && 'project' in _rawRequestBody) ? _rawRequestBody.project : _rawRequestBody;
const requestBody = JSON.parse(fetchCall[1].body as string);
const vars = requestBody.workflow_params.set_var.attributes.vars;

expect(vars.attachments).toEqual(["https://s3.test.com/file1.pdf", "https://s3.test.com/file2.jpg"]);
Expand Down
Loading
Loading