Skip to content
This repository has been archived by the owner on Feb 3, 2023. It is now read-only.

Commit

Permalink
Merge pull request #82 from devbridge/80-add-generate-random-strings-…
Browse files Browse the repository at this point in the history
…method

Added new method generateRandomText(). Added tests.
  • Loading branch information
jevgenijusmarinuskinas authored Nov 24, 2020
2 parents 20694fd + b4aedd2 commit a8a4a0e
Show file tree
Hide file tree
Showing 3 changed files with 43 additions and 3 deletions.
4 changes: 4 additions & 0 deletions .eslintrc.js
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,10 @@ module.exports = {
"space-before-blocks": [
"error",
"always"
],
"space-infix-ops": [
"error",
{ "int32Hint": false }
]
}
};
23 changes: 23 additions & 0 deletions example/tests/helpers.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -85,4 +85,27 @@ describe("Helpers", () => {
//Assert
expect(newPage._timeoutSettings.timeout()).toEqual(config.defaultTimeout);
});

it("should generate random text with no characters specified", async () => {
//Arrange, Act
const text = await Helpers.generateRandomText(10);
const regex = /^[A-Za-z0-9]+$/;

//Assert
expect(regex.test(text)).toBeTruthy();
expect(text.length).toEqual(10);
});

it("should generate random text with custom characters list", async () => {
//Arrange
const chars = "0123456789";
const regex = /^[0-9]+$/;

//Act
const text = await Helpers.generateRandomText(8, chars);

//Assert
expect(regex.test(text)).toBeTruthy();
expect(text.length).toEqual(8);
});
});
19 changes: 16 additions & 3 deletions framework/helpers.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,13 @@ const fs = require("fs");
const retry = require("async-retry");
const config = require(process.cwd() + "/framework.config");
const defaultTimeout = config.defaultTimeout;
const defaultCharacters = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";

class Helpers {
async takeScreenshot(filename) {
var targetDir = `./logs/${jasmine["currentSuite"].fullName}`;
if (typeof jasmine["currentTest"] !== "undefined") {
targetDir = targetDir +`/${jasmine["currentTest"].description}`;
targetDir = targetDir + `/${jasmine["currentTest"].description}`;
}
fs.mkdirSync(targetDir, { recursive: true });
const screenshotPath = `${targetDir}/${filename || Date.now()}.png`;
Expand All @@ -22,13 +23,13 @@ class Helpers {
factor: 2,
minTimeout: minTimeout,
maxTimeout: Infinity,
randomize: false
randomize: false,
});
}

async goToUrlAndLoad(url, timeout = defaultTimeout) {
await page.goto(url, {
waitUntil: "networkidle0", timeout: timeout
waitUntil: "networkidle0", timeout: timeout,
});
}

Expand All @@ -42,6 +43,18 @@ class Helpers {
const environment = require(process.cwd() + "/test-environment/environment.js");
await environment.prototype.pageSetup(page);
}

async generateRandomText(length, characters = defaultCharacters) {
var result = "";
var charactersLength = characters.length;
for (var i = 0; i < length; i++) {
result += characters.charAt(
Math.floor(Math.random() * charactersLength)
);
}
console.log(`Generated a random text: ${result}`);
return result;
}
}

export default new Helpers();

0 comments on commit a8a4a0e

Please sign in to comment.