Initial 智念AIGC platform
This commit is contained in:
25
tests/volcengine-signature.test.ts
Normal file
25
tests/volcengine-signature.test.ts
Normal file
@@ -0,0 +1,25 @@
|
||||
import { describe, expect, it } from "vitest";
|
||||
import { sha256Hex, signVolcengineRequest } from "@/lib/volcengine/signature";
|
||||
|
||||
describe("Volcengine Visual signing", () => {
|
||||
it("creates canonical request and signed headers", () => {
|
||||
const signed = signVolcengineRequest({
|
||||
method: "POST",
|
||||
endpoint: "https://visual.volcengineapi.com",
|
||||
query: {
|
||||
Version: "2022-08-31",
|
||||
Action: "CVSync2AsyncSubmitTask"
|
||||
},
|
||||
body: JSON.stringify({ req_key: "jimeng_seedream46_cvtob", prompt: "test" }),
|
||||
accessKeyId: "ak",
|
||||
secretAccessKey: "sk",
|
||||
region: "cn-north-1",
|
||||
service: "cv",
|
||||
date: new Date("2026-05-28T00:00:00Z")
|
||||
});
|
||||
expect(signed.url).toBe("https://visual.volcengineapi.com/?Action=CVSync2AsyncSubmitTask&Version=2022-08-31");
|
||||
expect(signed.headers.Authorization).toContain("HMAC-SHA256 Credential=ak/20260528/cn-north-1/cv/request");
|
||||
expect(signed.headers["X-Content-Sha256"]).toBe(sha256Hex(JSON.stringify({ req_key: "jimeng_seedream46_cvtob", prompt: "test" })));
|
||||
expect(signed.canonicalRequest).toContain("content-type;host;x-content-sha256;x-date");
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user