mirror of
https://github.com/Dokploy/dokploy.git
synced 2026-06-26 09:35:29 +02:00
50 lines
1.5 KiB
TypeScript
50 lines
1.5 KiB
TypeScript
import { describe, expect, it } from "vitest";
|
|
import {
|
|
extractBranchName,
|
|
extractCommitMessage,
|
|
extractHash,
|
|
getProviderByHeader,
|
|
} from "@/pages/api/deploy/[refreshToken]";
|
|
|
|
describe("Soft Serve Webhook", () => {
|
|
const mockSoftServeHeaders = {
|
|
"x-softserve-event": "push",
|
|
};
|
|
|
|
const createMockBody = (message: string, hash: string, branch: string) => ({
|
|
event: "push",
|
|
ref: `refs/heads/${branch}`,
|
|
after: hash,
|
|
commits: [{ message: message }],
|
|
});
|
|
const message: string = "feat: add new feature";
|
|
const hash: string = "3c91c24ef9560bddc695bce138bf8a7094ec3df5";
|
|
const branch: string = "feat/add-new";
|
|
const goodWebhook = createMockBody(message, hash, branch);
|
|
|
|
it("should properly extract the provider name", () => {
|
|
expect(getProviderByHeader(mockSoftServeHeaders)).toBe("soft-serve");
|
|
});
|
|
|
|
it("should properly extract the commit message", () => {
|
|
expect(extractCommitMessage(mockSoftServeHeaders, goodWebhook)).toBe(
|
|
message,
|
|
);
|
|
});
|
|
|
|
it("should properly extract hash", () => {
|
|
expect(extractHash(mockSoftServeHeaders, goodWebhook)).toBe(hash);
|
|
});
|
|
|
|
it("should properly extract branch name", () => {
|
|
expect(extractBranchName(mockSoftServeHeaders, goodWebhook)).toBe(branch);
|
|
});
|
|
|
|
it("should gracefully handle invalid webhook", () => {
|
|
expect(getProviderByHeader({})).toBeNull();
|
|
expect(extractCommitMessage(mockSoftServeHeaders, {})).toBe("NEW COMMIT");
|
|
expect(extractHash(mockSoftServeHeaders, {})).toBe("NEW COMMIT");
|
|
expect(extractBranchName(mockSoftServeHeaders, {})).toBeNull();
|
|
});
|
|
});
|