mirror of
https://github.com/penpot/penpotqa.git
synced 2024-07-06 04:51:46 +00:00
Add PENPOT-50. ON-23 Forgot password flow with invalid email
This commit is contained in:
parent
afdcece5df
commit
2c79b81a0e
57
.github/workflows/playwright_pre_forgot_password.yml
vendored
Normal file
57
.github/workflows/playwright_pre_forgot_password.yml
vendored
Normal 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
|
26
pages/forgot-password-page.js
Normal file
26
pages/forgot-password-page.js
Normal 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();
|
||||
}
|
||||
};
|
|
@ -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');
|
||||
}
|
||||
|
|
18
tests/forgot-password.spec.js
Normal file
18
tests/forgot-password.spec.js
Normal 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)
|
||||
});
|
Loading…
Reference in New Issue
Block a user