Initial commit: OmniAI backend server
This commit is contained in:
@@ -0,0 +1,52 @@
|
||||
const assert = require("node:assert/strict");
|
||||
|
||||
process.env.STS_ACCESS_KEY_ID = "test-key";
|
||||
process.env.STS_ACCESS_KEY_SECRET = "test-secret";
|
||||
process.env.OSS_BUCKET = "test-bucket";
|
||||
process.env.OSS_REGION = "oss-cn-test";
|
||||
|
||||
const { getObject, createSignedReadUrl } = require("../src/ossClient");
|
||||
|
||||
async function main() {
|
||||
const originalFetch = global.fetch;
|
||||
global.fetch = async () => ({
|
||||
ok: false,
|
||||
status: 404,
|
||||
text: async () => `<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Error>
|
||||
<Code>NoSuchKey</Code>
|
||||
<Message>The specified key does not exist.</Message>
|
||||
</Error>`,
|
||||
});
|
||||
|
||||
try {
|
||||
await assert.rejects(
|
||||
() => getObject("users/1/projects/missing/current/project.json"),
|
||||
(error) => {
|
||||
assert.equal(error.status, 404);
|
||||
assert.equal(error.code, "oss_no_such_key");
|
||||
return true;
|
||||
},
|
||||
);
|
||||
} finally {
|
||||
global.fetch = originalFetch;
|
||||
}
|
||||
|
||||
const beforeExpires = Math.floor(Date.now() / 1000) + 60;
|
||||
const signedUrl = createSignedReadUrl("tmp/admin-1/generation-inputs/audios/demo audio.mp3", 60);
|
||||
const parsedSignedUrl = new URL(signedUrl);
|
||||
const afterExpires = Math.floor(Date.now() / 1000) + 60;
|
||||
assert.equal(parsedSignedUrl.host, "test-bucket.oss-cn-test.aliyuncs.com");
|
||||
assert.equal(parsedSignedUrl.pathname, "/tmp/admin-1/generation-inputs/audios/demo%20audio.mp3");
|
||||
assert.equal(parsedSignedUrl.searchParams.get("OSSAccessKeyId"), "test-key");
|
||||
assert.ok(Number(parsedSignedUrl.searchParams.get("Expires")) >= beforeExpires);
|
||||
assert.ok(Number(parsedSignedUrl.searchParams.get("Expires")) <= afterExpires);
|
||||
assert.ok(parsedSignedUrl.searchParams.get("Signature"));
|
||||
|
||||
console.log("oss client contract tests passed");
|
||||
}
|
||||
|
||||
main().catch((error) => {
|
||||
console.error(error);
|
||||
process.exit(1);
|
||||
});
|
||||
Reference in New Issue
Block a user