Files
myeasycms-v2/apps/e2e/tests/invitations/invitations.spec.ts
giancarlo 52e7b89243 Update test logs, adjust webhook timeout, and modify email handling
Improved the clarity of console logs within e2e tests for better debugging. Changed the timeout timing for webhook requests from 1000ms to 5000ms in the supabase seed.sql. The "deleteAfter" option of the visitConfirmEmailLink and getInviteEmail functions in the e2e tests has been set to "false" for email persistence.
2024-04-13 20:42:02 +08:00

104 lines
2.5 KiB
TypeScript

import { expect, Page, test } from '@playwright/test';
import { InvitationsPageObject } from './invitations.po';
test.describe('Invitations', () => {
let page: Page;
let invitations: InvitationsPageObject;
test.beforeAll(async ({ browser }) => {
page = await browser.newPage();
invitations = new InvitationsPageObject(page);
await invitations.setup();
});
test('Full invite flow', async () => {
await invitations.navigateToMembers();
await invitations.openInviteForm();
const invites = [
{
email: invitations.auth.createRandomEmail(),
role: 'member'
},
{
email: invitations.auth.createRandomEmail(),
role: 'member'
},
];
await invitations.inviteMembers(invites);
const firstEmail = invites[0]!.email;
await expect(await invitations.getInvitations()).toHaveCount(2)
// sign out and sign in with the first email
await invitations.auth.signOut();
await invitations.auth.visitConfirmEmailLink(invites[0]!.email, {
deleteAfter: false
});
await invitations.auth.signUp({
email: firstEmail,
password: 'password',
repeatPassword: 'password'
});
await invitations.auth.visitConfirmEmailLink(firstEmail);
await invitations.acceptInvitation();
await invitations.teamAccounts.openAccountsSelector();
await expect(await invitations.teamAccounts.getTeams()).toHaveCount(1);
});
test('users can delete invites', async () => {
await invitations.navigateToMembers();
await invitations.openInviteForm();
const email = invitations.auth.createRandomEmail();
const invites = [
{
email,
role: 'member'
},
];
await invitations.inviteMembers(invites);
await expect(await invitations.getInvitations()).toHaveCount(1);
await invitations.deleteInvitation(email);
await expect(await invitations.getInvitations()).toHaveCount(0);
});
test('users can update invites', async () => {
await invitations.navigateToMembers();
await invitations.openInviteForm();
const email = invitations.auth.createRandomEmail();
const invites = [
{
email,
role: 'member'
},
];
await invitations.inviteMembers(invites);
await expect(await invitations.getInvitations()).toHaveCount(1);
await invitations.updateInvitation(email, 'owner');
const row = invitations.getInvitationRow(email);
await expect(row.locator('[data-test="member-role-badge"]')).toHaveText('owner');
});
});