Simon Priet e69a613a37 feat: Created a mini nodeJS server with NewMan for testing without PostMan GUI.
This will mimic a run in a CD/CI environment or docker container.
2021-09-08 14:01:19 +02:00

213 lines
4.5 KiB
JavaScript

// generates fake data for many computer systems properties
var commonFileTypes = [
"video",
"audio",
"image",
"text",
"application"
];
var commonMimeTypes = [
"application/pdf",
"audio/mpeg",
"audio/wav",
"image/png",
"image/jpeg",
"image/gif",
"video/mp4",
"video/mpeg",
"text/html"
];
function setToArray(set) {
// shortcut if Array.from is available
if (Array.from) { return Array.from(set); }
var array = [];
set.forEach(function (item) {
array.push(item);
});
return array;
}
/**
*
* @namespace faker.system
*/
function System(faker) {
/**
* generates a file name
*
* @method faker.system.fileName
*/
this.fileName = function () {
var str = faker.random.words();
str = str
.toLowerCase()
.replace(/\W/g, "_") + "." + faker.system.fileExt();;
return str;
};
/**
* commonFileName
*
* @method faker.system.commonFileName
* @param {string} ext
*/
this.commonFileName = function (ext) {
var str = faker.random.words();
str = str
.toLowerCase()
.replace(/\W/g, "_");
str += "." + (ext || faker.system.commonFileExt());
return str;
};
/**
* mimeType
*
* @method faker.system.mimeType
*/
this.mimeType = function () {
var typeSet = new Set();
var extensionSet = new Set();
var mimeTypes = faker.definitions.system.mimeTypes;
Object.keys(mimeTypes).forEach(function (m) {
var type = m.split("/")[0];
typeSet.add(type);
if (mimeTypes[m].extensions instanceof Array) {
mimeTypes[m].extensions.forEach(function (ext) {
extensionSet.add(ext);
});
}
});
var types = setToArray(typeSet);
var extensions = setToArray(extensionSet);
var mimeTypeKeys = Object.keys(faker.definitions.system.mimeTypes);
return faker.random.arrayElement(mimeTypeKeys);
};
/**
* returns a commonly used file type
*
* @method faker.system.commonFileType
*/
this.commonFileType = function () {
return faker.random.arrayElement(commonFileTypes);
};
/**
* returns a commonly used file extension
*
* @method faker.system.commonFileExt
*/
this.commonFileExt = function () {
return faker.system.fileExt(faker.random.arrayElement(commonMimeTypes));
};
/**
* returns any file type available as mime-type
*
* @method faker.system.fileType
*/
this.fileType = function () {
var typeSet = new Set();
var extensionSet = new Set();
var mimeTypes = faker.definitions.system.mimeTypes;
Object.keys(mimeTypes).forEach(function (m) {
var type = m.split("/")[0];
typeSet.add(type);
if (mimeTypes[m].extensions instanceof Array) {
mimeTypes[m].extensions.forEach(function (ext) {
extensionSet.add(ext);
});
}
});
var types = setToArray(typeSet);
var extensions = setToArray(extensionSet);
var mimeTypeKeys = Object.keys(faker.definitions.system.mimeTypes);
return faker.random.arrayElement(types);
};
/**
* fileExt
*
* @method faker.system.fileExt
* @param {string} mimeType
*/
this.fileExt = function (mimeType) {
var typeSet = new Set();
var extensionSet = new Set();
var mimeTypes = faker.definitions.system.mimeTypes;
Object.keys(mimeTypes).forEach(function (m) {
var type = m.split("/")[0];
typeSet.add(type);
if (mimeTypes[m].extensions instanceof Array) {
mimeTypes[m].extensions.forEach(function (ext) {
extensionSet.add(ext);
});
}
});
var types = setToArray(typeSet);
var extensions = setToArray(extensionSet);
var mimeTypeKeys = Object.keys(faker.definitions.system.mimeTypes);
if (mimeType) {
var mimes = faker.definitions.system.mimeTypes;
return faker.random.arrayElement(mimes[mimeType].extensions);
}
return faker.random.arrayElement(extensions);
};
/**
* returns directory path
*
* @method faker.system.directoryPath
*/
this.directoryPath = function () {
var paths = faker.definitions.system.directoryPaths
return faker.random.arrayElement(paths);
};
/**
* returns file path
*
* @method faker.system.filePath
*/
this.filePath = function () {
return faker.fake("{{system.directoryPath}}/{{system.fileName}}.{{system.fileExt}}");
};
/**
* semver
*
* @method faker.system.semver
*/
this.semver = function () {
return [faker.datatype.number(9),
faker.datatype.number(9),
faker.datatype.number(9)].join('.');
}
}
module['exports'] = System;