feat(e2e): onboarding process

This commit is contained in:
Ahmed Bouhuolia
2023-06-23 14:32:36 +02:00
parent 44fce6f33e
commit b35d22d3b3
6 changed files with 116 additions and 52 deletions

View File

@@ -2,6 +2,7 @@ import { test, expect, Page } from '@playwright/test';
import { faker } from '@faker-js/faker';
let authPage: Page;
let businessLegalName: string = faker.company.name();
test.describe('onboarding', () => {
test.beforeAll(async ({ browser }) => {
@@ -9,19 +10,15 @@ test.describe('onboarding', () => {
await authPage.goto('/auth/register');
const form = authPage.locator('form');
await form
.locator('input[name="first_name"]')
.fill(faker.person.firstName());
await form.locator('input[name="last_name"]').fill(faker.person.lastName());
await form.locator('input[name="email"]').fill(faker.internet.email());
await form
.locator('input[name="password"]')
.fill(faker.internet.password());
await form.getByLabel('First Name').fill(faker.person.firstName());
await form.getByLabel('Email').fill(faker.internet.email());
await form.getByLabel('Last Name').fill(faker.person.lastName());
await form.getByLabel('Password').fill(faker.internet.password());
await authPage.getByRole('button', { name: 'Register' }).click();
});
test.only('should validation catch all required fields', async () => {
test('should validation catch all required fields', async () => {
const form = authPage.locator('form');
await authPage.getByRole('button', { name: 'Save & Continue' }).click();
@@ -32,24 +29,57 @@ test.describe('onboarding', () => {
await expect(form).toContainText('Fiscal year is a required field');
await expect(form).toContainText('Time zone is a required field');
});
test('should sign-out when click on Signout link', () => {});
test.describe('after onboarding', () => {
test.beforeAll(async () => {
await authPage.getByLabel('Legal Organization Name').click();
await authPage
.getByLabel('Legal Organization Name')
.fill(businessLegalName);
test('should onboarding process success', () => {
// await page.getByRole('textbox').click();
// await page.getByRole('textbox').fill('sdafasdf');
// await page.getByRole('button', { name: 'Select Business Location...' }).click();
// await page.locator('a').filter({ hasText: 'Armenia' }).click();
// await page.getByRole('button', { name: 'Select Base Currency...' }).click();
// await page.locator('a').filter({ hasText: 'USD - US Dollar' }).click();
// await page.getByRole('button', { name: 'Select Fiscal Year...' }).click();
// await page.locator('a').filter({ hasText: 'May - April' }).click();
// await page.getByRole('button', { name: 'Select Time Zone...' }).click();
// await page.getByText('Pacific/Midway (SST)-11:00').click();
// await page.getByRole('button', { name: 'Save & Continue' }).click();
// await page.getByRole('heading', { name: 'Congrats! You are ready to go' }).click();
// await page.getByRole('button', { name: 'Go to dashboard' }).click();
// Fill Business Location.
await authPage
.getByRole('button', { name: 'Select Business Location...' })
.click();
await authPage.locator('a').filter({ hasText: 'Albania' }).click();
// Fill Base Currency.
await authPage
.getByRole('button', { name: 'Select Base Currency...' })
.click();
await authPage
.locator('a')
.filter({ hasText: 'AED - United Arab Emirates Dirham' })
.click();
// Fill Fasical Year.
await authPage
.getByRole('button', { name: 'Select Fiscal Year...' })
.click();
await authPage.locator('a').filter({ hasText: 'June - May' }).click();
// Fill Timezone.
await authPage
.getByRole('button', { name: 'Select Time Zone...' })
.click();
await authPage.getByText('Pacific/Marquesas-09:30').click();
// Click on Submit button
await authPage.getByRole('button', { name: 'Save & Continue' }).click();
});
test('should onboarding process success', async () => {
await expect(authPage.locator('body')).toContainText(
'Congrats! You are ready to go',
{
timeout: 30000,
}
);
});
test('should go to the dashboard after clicking on "Go to dashboard" button.', async () => {
await authPage.getByRole('button', { name: 'Go to dashboard' }).click();
await expect(
authPage.locator('[data-testId="dashboard-topbar"] h1')
).toContainText(businessLegalName);
});
});
test('should go to the dashboard after clicking on "Go to dashboard" button.', () => {});
});