-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtestUploadScript.js
More file actions
76 lines (65 loc) · 2.21 KB
/
testUploadScript.js
File metadata and controls
76 lines (65 loc) · 2.21 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
import BosBase from "bosbase";
const baseUrl = process.env.BOSBASE_BASE_URL ?? "http://127.0.0.1:8090";
const authEmail =
process.env.BOSBASE_EMAIL ??
process.env.BOSBASE_SUPERUSER_EMAIL ??
"try@bosbase.com";
const authPassword =
process.env.BOSBASE_PASSWORD ??
process.env.BOSBASE_SUPERUSER_PASSWORD ??
"bosbasepass";
async function main() {
try {
console.log("[INFO] SCRIPTS_API.md doc test starting...");
const pb = new BosBase(baseUrl);
await pb.collection("_superusers").authWithPassword(authEmail, authPassword);
console.log("[SUCCESS] Authenticated as superuser");
if (!pb.scripts) {
throw new Error("pb.scripts is not available. Ensure the JS SDK includes the Scripts API.");
}
const uploadName = `doc_upload_${Date.now()}.sh`;
const uploadContent = `#!/bin/sh
echo "upload-success"
`;
const uploadFile = new Blob([uploadContent], {
type: "text/x-shellscript",
});
try {
const uploadResult = await pb.scripts.upload({
file: uploadFile,
path: uploadName,
});
if (!uploadResult?.output) {
throw new Error("Upload result is missing output");
}
console.log("[SUCCESS] Upload result:", uploadResult);
const runUploaded = await pb.scripts.command(`./${uploadName}`);
if (!runUploaded?.output?.includes("upload-success")) {
throw new Error(
`Uploaded file did not execute as expected: ${runUploaded.output}`,
);
}
console.log("[SUCCESS] Executed uploaded file:", runUploaded.output);
} finally {
// try {
// await pb.scripts.command(`rm -f ${uploadName}`);
// } catch (_) {
// /* ignore cleanup issues */
// }
}
console.log("\n========== SCRIPTS_API.md doc test completed ==========");
} catch (error) {
console.error("[ERROR] SCRIPTS_API.md doc test failed:");
if (error?.response) {
console.error("Status:", error.response.status);
console.error("Data:", JSON.stringify(error.response.data, null, 2));
if (error.response.data?.message) {
console.error("Message:", error.response.data.message);
}
} else {
console.error(error);
}
process.exit(1);
}
}
main();