Add PENPOT-50. ON-23 Forgot password flow with invalid email

This commit is contained in:
teresa.delatorre 2024-05-21 08:32:03 +02:00
parent afdcece5df
commit 2c79b81a0e
4 changed files with 106 additions and 0 deletions

View File

@ -0,0 +1,57 @@
name: Forgot password PRE env
on:
workflow_dispatch:
inputs:
qase_api_base_url:
description: 'Qase API URL'
required: true
qase_report:
description: 'Enabled/disabled reporting to Qase'
required: true
qase_project_code:
description: 'Qase project code'
required: true
qase_run_id:
description: 'Qase Run ID'
required: true
qase_run_complete:
description: 'Complete Qase Run'
required: true
env:
QASE_API_BASE_URL: ${{ inputs.qase_api_base_url }}
QASE_REPORT: ${{ inputs.qase_report }}
QASE_PROJECT_CODE: ${{ inputs.qase_project_code }}
QASE_RUN_ID: ${{ inputs.qase_run_id }}
QASE_RUN_COMPLETE: ${{ inputs.qase_run_complete }}
QASE_API_TOKEN: ${{ secrets.QASE_API_TOKEN }}
jobs:
tests_chromium:
environment: PRE
runs-on: windows-latest
steps:
- uses: qase-tms/qase-link-run@main
env:
QASE_API_TOKEN: ${{ env.QASE_API_TOKEN }}
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: 18
- name: Install dependencies
run: npm ci
- name: Install Playwright Browsers
run: npx playwright install --with-deps
- name: Run regression tests for chromium
env:
BASE_URL: ${{ secrets.BASE_URL }}
LOGIN_EMAIL: ${{ secrets.LOGIN_EMAIL }}
LOGIN_PWD: ${{ secrets.LOGIN_PWD }}
run: npx playwright test --project=chrome -gv 'PERF' ./tests/forgot-password.spec.js
- name: Upload Playwright Report
uses: actions/upload-artifact@v3
if: always()
with:
name: playwright-report-chromium
path: playwright-report/
retention-days: 30

View File

@ -0,0 +1,26 @@
const { expect } = require('@playwright/test');
const { BasePage } = require('./base-page');
exports.ForgotPasswordPage = class ForgotPasswordPage extends BasePage {
/**
* @param {import('@playwright/test').Page} page
*/
constructor(page) {
super(page);
this.emailInput = page.locator('#email');
this.recoverPasswordButton = page.locator('data-test=recovery-resquest-submit');
}
async enterEmail(loginEmail) {
await this.emailInput.fill(loginEmail);
}
async clickRecoverPasswordButton() {
await this.recoverPasswordButton.click();
}
async isRecoverPasswordButtonDisabled() {
await expect(this.recoverPasswordButton).toBeDisabled();
}
};

View File

@ -22,6 +22,7 @@ exports.LoginPage = class LoginPage extends BasePage {
this.recoveryPwdInput = page.locator('#password-1');
this.recoveryPwdConfirmInput = page.locator('#password-2');
this.changePwdButton = page.locator('button[class*="auth_recovery__submit-btn"]')
this.forgotPasswordLink = page.locator('data-test=forgot-password');
}
async checkLoginError(text) {
@ -95,6 +96,10 @@ exports.LoginPage = class LoginPage extends BasePage {
await this.changePwdButton.click();
}
async clickOnForgotPassword() {
await this.forgotPasswordLink.click();
}
async isLoginPageOpened() {
await expect(this.pageTitle).toHaveText('Log into my account');
}

View File

@ -0,0 +1,18 @@
const { test } = require('@playwright/test');
const { LoginPage } = require('../pages/login-page');
const { ForgotPasswordPage } = require('../pages/forgot-password-page');
const { updateTestResults } = require('./../helpers/saveTestResults.js');
const { qase } = require('playwright-qase-reporter/dist/playwright');
test(qase(50,'ON-23 Forgot password flow with invalid email'), async ({ page }) => {
const loginPage = new LoginPage(page);
const forgotPasswordPage = new ForgotPasswordPage(page);
await loginPage.goto();
await loginPage.clickOnForgotPassword();
await forgotPasswordPage.enterEmail("xxx");
await forgotPasswordPage.isRecoverPasswordButtonDisabled();
});
test.afterEach(async ({ page }, testInfo) => {
await updateTestResults(testInfo.status, testInfo.retry)
});