Skip to content

Instantly share code, notes, and snippets.

@adambankin
Last active March 2, 2021 00:58
Show Gist options
  • Save adambankin/a03ba80ac1b29d4fe1742616f0050354 to your computer and use it in GitHub Desktop.
Save adambankin/a03ba80ac1b29d4fe1742616f0050354 to your computer and use it in GitHub Desktop.
Node script for writing fake server data
const fs = require("fs");
// create a file writer that OVERWRITES the content of the text file
fs.writeFileSync("seed2.log", "")
function getRandomInt (max, skews = 1) {
let result = max;
for (let i = 0; i < skews; i++) {
result = Math.random() * result;
}
return Math.floor(result);
}
function getRandomArrayItem (arr, skews) {
const position = getRandomInt(arr.length, skews);
return arr[position];
}
function wasteTime (data) {
fs.appendFileSync("seed2.log", `${JSON.stringify(data)}\n`);
return new Promise(resolve => setTimeout(resolve, 80));
}
var endpointArray = ["/index", "/cart", "/checkout", "/contact_us"];
var responseTypeArray = ["200", "404", "500"];
var isNow = false
var prevTime = (new Date('2021-02-17T03:24:00')).getTime()
var currentTime = (new Date).getTime();(prevTime > currentTime)
async function runner () {
while (!isNow) {
prevTime = (new Date(prevTime + getRandomInt(1000000, 4))).getTime()
if (prevTime > currentTime) {
isNow = true
} else {
const responseTime = getRandomInt(1000)
// create new data object
const data = {
path: getRandomArrayItem(endpointArray, 2),
received_timestamp: new Date(prevTime).toISOString(),
response_timestamp: new Date(prevTime + responseTime).toISOString(),
response_time: responseTime,
response_code: getRandomArrayItem(responseTypeArray, 3),
};
// add the JSON as a row in the text file
await wasteTime(data)
}
}
}
runner()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment