UNPKG

andculturecode-javascript-testing

Version:
100 lines 11.2 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); var faker_1 = __importDefault(require("faker")); var TestUtils = { // ----------------------------------------------------------------------------------------- // #region Public Properties // ----------------------------------------------------------------------------------------- faker: faker_1.default, // #endregion Public Properties // ----------------------------------------------------------------------------------------- // #region Public Functions // ----------------------------------------------------------------------------------------- /** * Randomize case of string */ randomCase: function (value) { return value .split("") .map(function (char) { return faker_1.default.datatype.boolean() ? char.toUpperCase() : char.toLowerCase(); }) .join(""); }, /** * Wrapper around `faker.system.fileName` */ randomFilename: function () { return faker_1.default.system.fileName(); }, /** * Wrapper around `faker.datatype.uuid` */ randomGuid: function () { return faker_1.default.datatype.uuid(); }, /** * Returns a random key from the given object. If the object has no keys, it returns `undefined`. */ randomKey: function (obj) { return faker_1.default.random.arrayElement(Object.keys(obj)); }, /** * Generates random object */ randomObject: function (keyCount) { var object = {}; keyCount = keyCount !== null && keyCount !== void 0 ? keyCount : faker_1.default.datatype.number({ min: 1, max: 10 }); for (var i = 0; i < keyCount; i++) { var key = this.randomGuid(); object[key] = this.randomWord(); } return object; }, /** * Generates random path */ randomPath: function () { return faker_1.default.system.directoryPath(); }, /** * Returns a random value from the given object. If the object has no keys, it returns `undefined`. */ randomValue: function (obj) { if (Array.isArray(obj)) { return faker_1.default.random.arrayElement(obj); } return obj[this.randomKey(obj)]; }, /** * Wrapper of faker.random.word. * * Unfortunately there is an unresolved bug https://github.com/Marak/faker.js/issues/661 * and it will occasionally return multiple which can cause test flake */ randomWord: function () { return faker_1.default.random .word() .split(" ")[0] .replace(/[^A-Za-z0-9]/gi, ""); }, /** * Returns a string array of at least two random words, leveraging the `TestUtils.randomWord` function */ randomWords: function () { var words = []; var count = faker_1.default.datatype.number({ min: 2, max: 10 }); for (var i = 0; i < count; i++) { words.push(this.randomWord()); } return words; }, }; exports.TestUtils = TestUtils; // #endregion Exports //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC11dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvdGVzdC11dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLGdEQUEwQjtBQUUxQixJQUFNLFNBQVMsR0FBRztJQUNkLDRGQUE0RjtJQUM1Riw0QkFBNEI7SUFDNUIsNEZBQTRGO0lBRTVGLEtBQUssaUJBQUE7SUFFTCwrQkFBK0I7SUFFL0IsNEZBQTRGO0lBQzVGLDJCQUEyQjtJQUMzQiw0RkFBNEY7SUFFNUY7O09BRUc7SUFDSCxVQUFVLEVBQVYsVUFBVyxLQUFhO1FBQ3BCLE9BQU8sS0FBSzthQUNQLEtBQUssQ0FBQyxFQUFFLENBQUM7YUFDVCxHQUFHLENBQUMsVUFBQyxJQUFZO1lBQ2QsT0FBQSxlQUFLLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRTtnQkFDcEIsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUU7Z0JBQ3BCLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFO1FBRnhCLENBRXdCLENBQzNCO2FBQ0EsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ2xCLENBQUM7SUFFRDs7T0FFRztJQUNILGNBQWMsRUFBZDtRQUNJLE9BQU8sZUFBSyxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNuQyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxVQUFVLEVBQVY7UUFDSSxPQUFPLGVBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDakMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsU0FBUyxFQUFULFVBQVUsR0FBVztRQUNqQixPQUFPLGVBQUssQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxZQUFZLEVBQVosVUFBYSxRQUFpQjtRQUMxQixJQUFNLE1BQU0sR0FBMkIsRUFBRSxDQUFDO1FBQzFDLFFBQVEsR0FBRyxRQUFRLGFBQVIsUUFBUSxjQUFSLFFBQVEsR0FBSSxlQUFLLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFbEUsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFFBQVEsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUMvQixJQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDOUIsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztTQUNuQztRQUVELE9BQU8sTUFBTSxDQUFDO0lBQ2xCLENBQUM7SUFDRDs7T0FFRztJQUNILFVBQVUsRUFBVjtRQUNJLE9BQU8sZUFBSyxDQUFDLE1BQU0sQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN4QyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxXQUFXLEVBQVgsVUFDSSxHQUEyQztRQUUzQyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDcEIsT0FBTyxlQUFLLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUN6QztRQUVELE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxVQUFVLEVBQVY7UUFDSSxPQUFPLGVBQUssQ0FBQyxNQUFNO2FBQ2QsSUFBSSxFQUFFO2FBQ04sS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUNiLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxXQUFXLEVBQVg7UUFDSSxJQUFNLEtBQUssR0FBYSxFQUFFLENBQUM7UUFDM0IsSUFBTSxLQUFLLEdBQUcsZUFBSyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3pELEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDNUIsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQztTQUNqQztRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7Q0FHSixDQUFDO0FBTU8sOEJBQVM7QUFFbEIscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGZha2VyIGZyb20gXCJmYWtlclwiO1xyXG5cclxuY29uc3QgVGVzdFV0aWxzID0ge1xyXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICAgIC8vICNyZWdpb24gUHVibGljIFByb3BlcnRpZXNcclxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcblxyXG4gICAgZmFrZXIsXHJcblxyXG4gICAgLy8gI2VuZHJlZ2lvbiBQdWJsaWMgUHJvcGVydGllc1xyXG5cclxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiAgICAvLyAjcmVnaW9uIFB1YmxpYyBGdW5jdGlvbnNcclxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSYW5kb21pemUgY2FzZSBvZiBzdHJpbmdcclxuICAgICAqL1xyXG4gICAgcmFuZG9tQ2FzZSh2YWx1ZTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gdmFsdWVcclxuICAgICAgICAgICAgLnNwbGl0KFwiXCIpXHJcbiAgICAgICAgICAgIC5tYXAoKGNoYXI6IHN0cmluZykgPT5cclxuICAgICAgICAgICAgICAgIGZha2VyLmRhdGF0eXBlLmJvb2xlYW4oKVxyXG4gICAgICAgICAgICAgICAgICAgID8gY2hhci50b1VwcGVyQ2FzZSgpXHJcbiAgICAgICAgICAgICAgICAgICAgOiBjaGFyLnRvTG93ZXJDYXNlKClcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAuam9pbihcIlwiKTtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBXcmFwcGVyIGFyb3VuZCBgZmFrZXIuc3lzdGVtLmZpbGVOYW1lYFxyXG4gICAgICovXHJcbiAgICByYW5kb21GaWxlbmFtZSgpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiBmYWtlci5zeXN0ZW0uZmlsZU5hbWUoKTtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBXcmFwcGVyIGFyb3VuZCBgZmFrZXIuZGF0YXR5cGUudXVpZGBcclxuICAgICAqL1xyXG4gICAgcmFuZG9tR3VpZCgpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiBmYWtlci5kYXRhdHlwZS51dWlkKCk7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmV0dXJucyBhIHJhbmRvbSBrZXkgZnJvbSB0aGUgZ2l2ZW4gb2JqZWN0LiBJZiB0aGUgb2JqZWN0IGhhcyBubyBrZXlzLCBpdCByZXR1cm5zIGB1bmRlZmluZWRgLlxyXG4gICAgICovXHJcbiAgICByYW5kb21LZXkob2JqOiBvYmplY3QpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiBmYWtlci5yYW5kb20uYXJyYXlFbGVtZW50KE9iamVjdC5rZXlzKG9iaikpO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIEdlbmVyYXRlcyByYW5kb20gb2JqZWN0XHJcbiAgICAgKi9cclxuICAgIHJhbmRvbU9iamVjdChrZXlDb3VudD86IG51bWJlcik6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4ge1xyXG4gICAgICAgIGNvbnN0IG9iamVjdDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHt9O1xyXG4gICAgICAgIGtleUNvdW50ID0ga2V5Q291bnQgPz8gZmFrZXIuZGF0YXR5cGUubnVtYmVyKHsgbWluOiAxLCBtYXg6IDEwIH0pO1xyXG5cclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGtleUNvdW50OyBpKyspIHtcclxuICAgICAgICAgICAgY29uc3Qga2V5ID0gdGhpcy5yYW5kb21HdWlkKCk7XHJcbiAgICAgICAgICAgIG9iamVjdFtrZXldID0gdGhpcy5yYW5kb21Xb3JkKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gb2JqZWN0O1xyXG4gICAgfSxcclxuICAgIC8qKlxyXG4gICAgICogR2VuZXJhdGVzIHJhbmRvbSBwYXRoXHJcbiAgICAgKi9cclxuICAgIHJhbmRvbVBhdGgoKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gZmFrZXIuc3lzdGVtLmRpcmVjdG9yeVBhdGgoKTtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXR1cm5zIGEgcmFuZG9tIHZhbHVlIGZyb20gdGhlIGdpdmVuIG9iamVjdC4gSWYgdGhlIG9iamVjdCBoYXMgbm8ga2V5cywgaXQgcmV0dXJucyBgdW5kZWZpbmVkYC5cclxuICAgICAqL1xyXG4gICAgcmFuZG9tVmFsdWU8VFZhbHVlID0gYW55PihcclxuICAgICAgICBvYmo6IFJlY29yZDxzdHJpbmcsIFRWYWx1ZT4gfCBBcnJheTxUVmFsdWU+XHJcbiAgICApOiBUVmFsdWUge1xyXG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KG9iaikpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGZha2VyLnJhbmRvbS5hcnJheUVsZW1lbnQob2JqKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBvYmpbdGhpcy5yYW5kb21LZXkob2JqKV07XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogV3JhcHBlciBvZiBmYWtlci5yYW5kb20ud29yZC5cclxuICAgICAqXHJcbiAgICAgKiBVbmZvcnR1bmF0ZWx5IHRoZXJlIGlzIGFuIHVucmVzb2x2ZWQgYnVnIGh0dHBzOi8vZ2l0aHViLmNvbS9NYXJhay9mYWtlci5qcy9pc3N1ZXMvNjYxXHJcbiAgICAgKiBhbmQgaXQgd2lsbCBvY2Nhc2lvbmFsbHkgcmV0dXJuIG11bHRpcGxlIHdoaWNoIGNhbiBjYXVzZSB0ZXN0IGZsYWtlXHJcbiAgICAgKi9cclxuICAgIHJhbmRvbVdvcmQoKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gZmFrZXIucmFuZG9tXHJcbiAgICAgICAgICAgIC53b3JkKClcclxuICAgICAgICAgICAgLnNwbGl0KFwiIFwiKVswXVxyXG4gICAgICAgICAgICAucmVwbGFjZSgvW15BLVphLXowLTldL2dpLCBcIlwiKTtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXR1cm5zIGEgc3RyaW5nIGFycmF5IG9mIGF0IGxlYXN0IHR3byByYW5kb20gd29yZHMsIGxldmVyYWdpbmcgdGhlIGBUZXN0VXRpbHMucmFuZG9tV29yZGAgZnVuY3Rpb25cclxuICAgICAqL1xyXG4gICAgcmFuZG9tV29yZHMoKTogc3RyaW5nW10ge1xyXG4gICAgICAgIGNvbnN0IHdvcmRzOiBzdHJpbmdbXSA9IFtdO1xyXG4gICAgICAgIGNvbnN0IGNvdW50ID0gZmFrZXIuZGF0YXR5cGUubnVtYmVyKHsgbWluOiAyLCBtYXg6IDEwIH0pO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY291bnQ7IGkrKykge1xyXG4gICAgICAgICAgICB3b3Jkcy5wdXNoKHRoaXMucmFuZG9tV29yZCgpKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB3b3JkcztcclxuICAgIH0sXHJcblxyXG4gICAgLy8gI2VuZHJlZ2lvbiBQdWJsaWMgRnVuY3Rpb25zXHJcbn07XHJcblxyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4vLyAjcmVnaW9uIEV4cG9ydHNcclxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuXHJcbmV4cG9ydCB7IFRlc3RVdGlscyB9O1xyXG5cclxuLy8gI2VuZHJlZ2lvbiBFeHBvcnRzXHJcbiJdfQ==