From a3bf7d10796e86a327cba1b7993e87a4b6a760d9 Mon Sep 17 00:00:00 2001 From: Tatiana Ryzhova Date: Wed, 11 Sep 2019 14:21:19 +0200 Subject: [PATCH] Modified LogIn tests --- .testcafe/Models/homePageModel.js | 7 ++++++ .testcafe/Models/loginPageModel.js | 17 ++++++++++++++ .testcafe/Tests/loginPageTests.js | 7 ++++++ .../Verifications/loginPageVerifications.js | 23 +++++++++++++++++++ .testcafe/exampleTest.js | 13 ----------- 5 files changed, 54 insertions(+), 13 deletions(-) create mode 100644 .testcafe/Models/homePageModel.js create mode 100644 .testcafe/Models/loginPageModel.js create mode 100644 .testcafe/Tests/loginPageTests.js create mode 100644 .testcafe/Verifications/loginPageVerifications.js delete mode 100644 .testcafe/exampleTest.js diff --git a/.testcafe/Models/homePageModel.js b/.testcafe/Models/homePageModel.js new file mode 100644 index 000000000..53c2e5534 --- /dev/null +++ b/.testcafe/Models/homePageModel.js @@ -0,0 +1,7 @@ +import {Selector,t} from 'testcafe'; + +export default class HomePage{ + constructor(){ + this.header = Selector ('[data-tc="home-header"]'); + } +} \ No newline at end of file diff --git a/.testcafe/Models/loginPageModel.js b/.testcafe/Models/loginPageModel.js new file mode 100644 index 000000000..138c5aae5 --- /dev/null +++ b/.testcafe/Models/loginPageModel.js @@ -0,0 +1,17 @@ +import {Selector,t} from 'testcafe'; + +export default class LoginPage{ + constructor(){ + this.mainPageURL='http://localhost:9000/'; + this.email = Selector('[data-tc="email"]'); + this.password = Selector('[data-tc="password"]'); + this.submitButton = Selector('[data-tc="submit"]'); + } + + async performLogin(putEmail, putPassword){ + await t + .typeText(this.email, putEmail) + .typeText(this.password, putPassword) + .click(this.submitButton); + } +} \ No newline at end of file diff --git a/.testcafe/Tests/loginPageTests.js b/.testcafe/Tests/loginPageTests.js new file mode 100644 index 000000000..abbcab553 --- /dev/null +++ b/.testcafe/Tests/loginPageTests.js @@ -0,0 +1,7 @@ +import * as verifier from '../Verifications/loginPageVerifications'; + +fixture `Login Tests` + .page(verifier.mainPageURL); + + verifier.verifyEmailAndPasswordDisplayed(); + verifier.verifyIfUserCanLogin(); \ No newline at end of file diff --git a/.testcafe/Verifications/loginPageVerifications.js b/.testcafe/Verifications/loginPageVerifications.js new file mode 100644 index 000000000..80d97cc7e --- /dev/null +++ b/.testcafe/Verifications/loginPageVerifications.js @@ -0,0 +1,23 @@ +import LoginPage from '../Models/loginPageModel'; +import HomePage from '../Models/homePageModel'; + +const loginPage = new LoginPage(); +const homePage = new HomePage(); +export const mainPageURL = loginPage.mainPageURL; + +const USER_EMAIL = 'admin@example.com'; +const USER_PASSWORD = 'admin'; + +export function verifyEmailAndPasswordDisplayed(){ + test('Verify that Email and Password are displayed', async t =>{ + await t.expect(loginPage.email.exists).ok(); + await t.expect(loginPage.password.exists).ok(); + }) +} + +export function verifyIfUserCanLogin(){ + test.only('PerformLogin', async t =>{ + await loginPage.performLogin(USER_EMAIL, USER_PASSWORD); + await t.expect(homePage.header.exists).ok(); + } ) +} diff --git a/.testcafe/exampleTest.js b/.testcafe/exampleTest.js deleted file mode 100644 index c14729654..000000000 --- a/.testcafe/exampleTest.js +++ /dev/null @@ -1,13 +0,0 @@ -import { Selector } from "testcafe"; - -fixture("Example test").page("http://localhost:8000/dashboard/next"); - -test("User can log in", async t => { - await t - .typeText('[name="email"]', "admin@example.com") - .typeText('[name="password"]', "admin") - .click('[type="submit"]'); - - const header = await Selector('[data-tc="home-header"]').exists; - await t.expect(header).ok(); -});