-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtestSettingsService.js
More file actions
126 lines (116 loc) · 4.22 KB
/
testSettingsService.js
File metadata and controls
126 lines (116 loc) · 4.22 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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
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() {
let pb;
let originalMetaHideControls;
let originalSenderName;
let originalSenderAddress;
let originalLogIP;
try {
console.log("[INFO] SETTINGS service doc test starting...");
pb = new BosBase(baseUrl);
await pb.collection("_superusers").authWithPassword(authEmail, authPassword);
console.log("[SUCCESS] Authenticated as superuser");
const allSettings = await pb.settings.getAll();
console.log(
"[SUCCESS] Loaded settings categories:",
Object.keys(allSettings || {}).length,
);
const appSettings = await pb.settings.getApplicationSettings();
console.log(
"[SUCCESS] Application settings keys:",
Object.keys(appSettings || {}).join(", ") || "none",
);
const metaBefore = await pb.settings.getCategory("meta");
originalMetaHideControls = !!metaBefore?.hideControls;
const flippedHideControls = !originalMetaHideControls;
await pb.settings.updateApplicationSettings({
meta: { hideControls: flippedHideControls },
});
const metaAfter = await pb.settings.getCategory("meta");
if (metaAfter?.hideControls !== flippedHideControls) {
throw new Error("Meta hideControls value did not update");
}
console.log(
"[SUCCESS] meta.hideControls toggled to:",
metaAfter.hideControls,
);
const mailBefore = await pb.settings.getMailSettings();
originalSenderName = mailBefore?.meta?.senderName;
originalSenderAddress = mailBefore?.meta?.senderAddress;
const newSenderName = "SDK Test Sender";
const newSenderAddress = "sdk-test@example.com";
await pb.settings.updateMailSettings({
senderName: newSenderName,
senderAddress: newSenderAddress,
});
const mailAfter = await pb.settings.getMailSettings();
if (
mailAfter?.meta?.senderName !== newSenderName ||
mailAfter?.meta?.senderAddress !== newSenderAddress
) {
throw new Error("Mail sender info did not update");
}
console.log(
"[SUCCESS] Mail sender updated:",
mailAfter.meta?.senderName,
mailAfter.meta?.senderAddress,
);
const logSettingsBefore = await pb.settings.getLogSettings();
originalLogIP = logSettingsBefore?.logIP ?? false;
const toggledLogIP = !originalLogIP;
await pb.settings.updateLogSettings({ logIP: toggledLogIP });
const logSettingsAfter = await pb.settings.getLogSettings();
if (logSettingsAfter?.logIP !== toggledLogIP) {
throw new Error("Log settings did not update");
}
console.log("[SUCCESS] logIP toggled to:", logSettingsAfter.logIP);
console.log("\n========== SETTINGS service doc test completed ==========");
} catch (error) {
console.error("[ERROR] SETTINGS service 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);
} finally {
if (pb) {
try {
await pb.settings.updateApplicationSettings({
meta: { hideControls: !!originalMetaHideControls },
});
const restoreMail = {};
if (originalSenderName !== undefined) {
restoreMail.senderName = originalSenderName;
}
if (originalSenderAddress !== undefined) {
restoreMail.senderAddress = originalSenderAddress;
}
if (Object.keys(restoreMail).length) {
await pb.settings.updateMailSettings(restoreMail);
}
await pb.settings.updateLogSettings({ logIP: !!originalLogIP });
console.log("[CLEANUP] Restored settings to original values");
} catch (cleanupError) {
console.warn(
"[WARN] Failed to restore settings:",
cleanupError?.message || cleanupError,
);
}
}
}
}
main();