forked from trent_larson/crowd-funder-for-time-pwa
fix alert when looking at one's own activity
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
import { test, expect } from '@playwright/test';
|
||||
import { generateEthrUser, importUser } from './testUtils';
|
||||
import { deleteContact, generateEthrUser, importUser } from './testUtils';
|
||||
|
||||
test('Check activity feed', async ({ page }) => {
|
||||
// Load app homepage
|
||||
@@ -123,4 +123,20 @@ test('Check User 0 can register a random person', async ({ page }) => {
|
||||
// now ensure that alert goes away
|
||||
await page.locator('div[role="alert"] button > svg.fa-xmark').click(); // dismiss alert
|
||||
await expect(page.getByText('That gift was recorded.')).toBeHidden();
|
||||
|
||||
// now delete the contact to test that pages still do reasonable things
|
||||
await deleteContact(page, newDid);
|
||||
// go the activity page for this new person
|
||||
await page.goto('./did/' + encodeURIComponent(newDid));
|
||||
let error;
|
||||
try {
|
||||
await page.waitForSelector('div[role="alert"]', { timeout: 2000 });
|
||||
error = new Error('Error alert should not show.');
|
||||
} catch (error) {
|
||||
// success
|
||||
} finally {
|
||||
if (error) {
|
||||
throw error;
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
@@ -40,6 +40,22 @@ export async function switchToUser(page: Page, did: string): Promise<void> {
|
||||
await page.getByRole('code', { name: did }).click();
|
||||
}
|
||||
|
||||
function createContactName(did: string): string {
|
||||
return "User " + did.slice(11, 14);
|
||||
}
|
||||
|
||||
export async function deleteContact(page: Page, did: string): Promise<void> {
|
||||
await page.goto('./contacts');
|
||||
const contactName = createContactName(did);
|
||||
// go to the detail page for this contact
|
||||
await page.locator(`li[data-testid="contactListItem"] h2:has-text("${contactName}") + a`).click();
|
||||
// delete the contact
|
||||
await page.locator('button > svg.fa-trash-can').click();
|
||||
await page.locator('div[role="alert"] button:has-text("Yes")').click();
|
||||
// for some reason, .isHidden() (without expect) doesn't work
|
||||
await expect(page.locator('div[role="alert"] button:has-text("Yes")')).toBeHidden();
|
||||
}
|
||||
|
||||
// Generate a new random user and register them.
|
||||
// Note that this makes 000 the active user. Use switchToUser to switch to this DID.
|
||||
export async function generateEthrUser(page: Page): Promise<string> {
|
||||
@@ -55,10 +71,10 @@ export async function generateEthrUser(page: Page): Promise<string> {
|
||||
await importUser(page, '000'); // switch to user 000
|
||||
|
||||
await page.goto('./contacts');
|
||||
const threeChars = newDid.slice(11, 14);
|
||||
await page.getByPlaceholder('URL or DID, Name, Public Key').fill(`${newDid}, User ${threeChars}`);
|
||||
const contactName = createContactName(newDid);
|
||||
await page.getByPlaceholder('URL or DID, Name, Public Key').fill(`${newDid}, ${contactName}`);
|
||||
await page.locator('button > svg.fa-plus').click();
|
||||
await page.locator('li', { hasText: threeChars }).click();
|
||||
await page.locator('li', { hasText: contactName }).click();
|
||||
// register them
|
||||
await page.locator('div[role="alert"] button:has-text("Yes")').click();
|
||||
// wait for it to disappear because the next steps may depend on alerts being gone
|
||||
|
||||
Reference in New Issue
Block a user