From 412ff519e604e025af9f5917b1a9f22f3187d85f Mon Sep 17 00:00:00 2001 From: Jevgenijus Marinuskinas Date: Mon, 23 Nov 2020 14:26:58 +0200 Subject: [PATCH 1/5] Added new methods. Added tests. --- example/tests/helpers.test.js | 18 ++++++++++++++++++ framework/helpers.js | 25 +++++++++++++++++++++---- 2 files changed, 39 insertions(+), 4 deletions(-) diff --git a/example/tests/helpers.test.js b/example/tests/helpers.test.js index 46a13ff..658b0b6 100644 --- a/example/tests/helpers.test.js +++ b/example/tests/helpers.test.js @@ -85,4 +85,22 @@ describe("Helpers", () => { //Assert expect(newPage._timeoutSettings.timeout()).toEqual(config.defaultTimeout); }); + + it("should generate random text without numbers", async () => { + //Arrange, Act + const text = await Helpers.generateRandomText(10, false); + const regex = /[^A-Za-z]/; + + //Assert + await expect(regex.test(text)).toBeFalsy(); + }); + + it("should generate random text with numbers", async () => { + //Arrange, Act + const text = await Helpers.generateRandomText(10, true); + const regex = /[^A-Za-z0-9]/; + + //Assert + await expect(regex.test(text)).toBeFalsy(); + }); }); \ No newline at end of file diff --git a/framework/helpers.js b/framework/helpers.js index 49eb566..468913a 100644 --- a/framework/helpers.js +++ b/framework/helpers.js @@ -8,7 +8,7 @@ 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`; @@ -22,13 +22,14 @@ 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, }); } @@ -39,9 +40,25 @@ class Helpers { } async pageSetup(page) { - const environment = require(process.cwd() + "/test-environment/environment.js"); + const environment = require(process.cwd() + + "/test-environment/environment.js"); await environment.prototype.pageSetup(page); } + + async generateRandomText(length, withNumbers) { + var result = ""; + var characters = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; + if (withNumbers) { + characters += "0123456789"; + } + var charactersLength = characters.length; + for (var i = 0; i < length; i++) { + result += characters.charAt( + Math.floor(Math.random() * charactersLength) + ); + } + return result; + } } export default new Helpers(); \ No newline at end of file From 2765a459eff01b781e205d5fa2146d3e9ff76191 Mon Sep 17 00:00:00 2001 From: Jevgenijus Marinuskinas Date: Mon, 23 Nov 2020 15:21:08 +0200 Subject: [PATCH 2/5] Removed unnecessary await keywords. --- example/tests/helpers.test.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/example/tests/helpers.test.js b/example/tests/helpers.test.js index 658b0b6..643f0d4 100644 --- a/example/tests/helpers.test.js +++ b/example/tests/helpers.test.js @@ -92,7 +92,7 @@ describe("Helpers", () => { const regex = /[^A-Za-z]/; //Assert - await expect(regex.test(text)).toBeFalsy(); + expect(regex.test(text)).toBeFalsy(); }); it("should generate random text with numbers", async () => { @@ -101,6 +101,6 @@ describe("Helpers", () => { const regex = /[^A-Za-z0-9]/; //Assert - await expect(regex.test(text)).toBeFalsy(); + expect(regex.test(text)).toBeFalsy(); }); }); \ No newline at end of file From 174be673c9575fe93ca08af71581a692992cccbd Mon Sep 17 00:00:00 2001 From: Jevgenijus Marinuskinas Date: Tue, 24 Nov 2020 10:38:42 +0200 Subject: [PATCH 3/5] Added length validation to tests --- example/tests/helpers.test.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/example/tests/helpers.test.js b/example/tests/helpers.test.js index 643f0d4..bd59587 100644 --- a/example/tests/helpers.test.js +++ b/example/tests/helpers.test.js @@ -88,11 +88,12 @@ describe("Helpers", () => { it("should generate random text without numbers", async () => { //Arrange, Act - const text = await Helpers.generateRandomText(10, false); + const text = await Helpers.generateRandomText(8, false); const regex = /[^A-Za-z]/; //Assert expect(regex.test(text)).toBeFalsy(); + expect(text.length).toEqual(8); }); it("should generate random text with numbers", async () => { @@ -102,5 +103,6 @@ describe("Helpers", () => { //Assert expect(regex.test(text)).toBeFalsy(); + expect(text.length).toEqual(10); }); }); \ No newline at end of file From 2ce8aba37e8b9d46f949e70a0534c67106294686 Mon Sep 17 00:00:00 2001 From: Jevgenijus Marinuskinas Date: Tue, 24 Nov 2020 13:30:55 +0200 Subject: [PATCH 4/5] Fixes for code review comments. Updated eslint configuration. --- .eslintrc.js | 6 +++++- example/tests/helpers.test.js | 25 ++++++++++++++----------- framework/helpers.js | 14 +++++--------- 3 files changed, 24 insertions(+), 21 deletions(-) diff --git a/.eslintrc.js b/.eslintrc.js index b256f07..a8c880f 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -43,6 +43,10 @@ module.exports = { "space-before-blocks": [ "error", "always" - ] + ], + "space-infix-ops": [ + "error", + { "int32Hint": false } + ] } }; \ No newline at end of file diff --git a/example/tests/helpers.test.js b/example/tests/helpers.test.js index bd59587..7ea26e3 100644 --- a/example/tests/helpers.test.js +++ b/example/tests/helpers.test.js @@ -86,23 +86,26 @@ describe("Helpers", () => { expect(newPage._timeoutSettings.timeout()).toEqual(config.defaultTimeout); }); - it("should generate random text without numbers", async () => { + it("should generate random text with no characters specified", async () => { //Arrange, Act - const text = await Helpers.generateRandomText(8, false); - const regex = /[^A-Za-z]/; + const text = await Helpers.generateRandomText(10); + const regex = /^[A-Za-z0-9]+$/; //Assert - expect(regex.test(text)).toBeFalsy(); - expect(text.length).toEqual(8); + expect(regex.test(text)).toBeTruthy(); + expect(text.length).toEqual(10); }); - it("should generate random text with numbers", async () => { - //Arrange, Act - const text = await Helpers.generateRandomText(10, true); - const regex = /[^A-Za-z0-9]/; + 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)).toBeFalsy(); - expect(text.length).toEqual(10); + expect(regex.test(text)).toBeTruthy(); + expect(text.length).toEqual(8); }); }); \ No newline at end of file diff --git a/framework/helpers.js b/framework/helpers.js index 468913a..0ab0584 100644 --- a/framework/helpers.js +++ b/framework/helpers.js @@ -3,6 +3,7 @@ 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) { @@ -28,8 +29,7 @@ class Helpers { async goToUrlAndLoad(url, timeout = defaultTimeout) { await page.goto(url, { - waitUntil: "networkidle0", - timeout: timeout, + waitUntil: "networkidle0", timeout: timeout, }); } @@ -40,23 +40,19 @@ class Helpers { } async pageSetup(page) { - const environment = require(process.cwd() + - "/test-environment/environment.js"); + const environment = require(process.cwd() + "/test-environment/environment.js"); await environment.prototype.pageSetup(page); } - async generateRandomText(length, withNumbers) { + async generateRandomText(length, characters = defaultCharacters) { var result = ""; - var characters = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; - if (withNumbers) { - characters += "0123456789"; - } 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; } } From b4aedd246073bb01a8aac27b9caee1882f9475dd Mon Sep 17 00:00:00 2001 From: Jevgenijus Marinuskinas Date: Tue, 24 Nov 2020 14:01:52 +0200 Subject: [PATCH 5/5] Changed formatting --- .eslintrc.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.eslintrc.js b/.eslintrc.js index a8c880f..4b011b0 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -44,9 +44,9 @@ module.exports = { "error", "always" ], - "space-infix-ops": [ - "error", - { "int32Hint": false } - ] + "space-infix-ops": [ + "error", + { "int32Hint": false } + ] } }; \ No newline at end of file