94 lines
2.2 KiB
JavaScript
94 lines
2.2 KiB
JavaScript
import { statSync } from "fs";
|
|
|
|
async function getPage(path) {
|
|
return fetch(`http://localhost:8923${path}`, {
|
|
headers: {
|
|
"User-Agent": "CHALLENGE",
|
|
},
|
|
})
|
|
.then((resp) => {
|
|
if (resp.status !== 200) {
|
|
throw new Error(`wanted status 200, got status: ${resp.status}`);
|
|
}
|
|
return resp;
|
|
})
|
|
.then((resp) => resp.text());
|
|
}
|
|
|
|
async function getFileSize(filePath) {
|
|
try {
|
|
return statSync(filePath).size;
|
|
} catch (error) {
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
(async () => {
|
|
const logFilePath = "./var/nuke.log";
|
|
|
|
// Get initial log file size
|
|
const initialSize = await getFileSize(logFilePath);
|
|
console.log(`Initial log file size: ${initialSize} bytes`);
|
|
|
|
// Make 35 requests with different paths
|
|
const requests = [];
|
|
for (let i = 0; i < 35; i++) {
|
|
requests.push(`/test${i}`);
|
|
}
|
|
|
|
const resultSheet = {};
|
|
let failed = false;
|
|
|
|
for (const path of requests) {
|
|
try {
|
|
const resp = await getPage(path);
|
|
resultSheet[path] = {
|
|
success: true,
|
|
line: resp.split("\n")[0],
|
|
};
|
|
} catch (error) {
|
|
resultSheet[path] = {
|
|
success: false,
|
|
error: error.message,
|
|
};
|
|
console.log(`✗ Request to ${path} failed: ${error.message}`);
|
|
failed = true;
|
|
}
|
|
}
|
|
|
|
// Check final log file size
|
|
const finalSize = await getFileSize(logFilePath);
|
|
console.log(`Final log file size: ${finalSize} bytes`);
|
|
console.log(`Size increase: ${finalSize - initialSize} bytes`);
|
|
|
|
// Verify that log file size increased
|
|
if (finalSize <= initialSize) {
|
|
console.error(
|
|
"ERROR: Log file size did not increase after making requests!",
|
|
);
|
|
failed = true;
|
|
}
|
|
|
|
let successCount = 0;
|
|
for (let [k, v] of Object.entries(resultSheet)) {
|
|
if (!v.success) {
|
|
console.error({ path: k, error: v.error });
|
|
} else {
|
|
successCount++;
|
|
}
|
|
}
|
|
|
|
console.log(`Successful requests: ${successCount}/${requests.length}`);
|
|
|
|
if (failed) {
|
|
console.error(
|
|
"Test failed: Some requests failed or log file size did not increase",
|
|
);
|
|
process.exit(1);
|
|
} else {
|
|
console.log(
|
|
"Test passed: All requests succeeded and log file size increased",
|
|
);
|
|
process.exit(0);
|
|
}
|
|
})();
|