fix: improve feed loading and onboarding dialog handling

- Fix onboarding dialog reappearing after network idle state
- Add retry logic for dismissing onboarding dialog
- Increase feed chunk size from 5 to 10 for better performance
- Add proper error handling for hidden DIDs in feed
- Improve logging and error reporting throughout feed loading
- Fix type safety issues in feed processing
- Add proper null checks and fallbacks for missing identifiers
- Improve error handling in navigation and image loading
- Fix linter errors in AccountViewView component
This commit is contained in:
Matthew Raymer
2025-04-04 10:04:51 +00:00
parent 6e2bdc69e9
commit 6620311b7d
10 changed files with 1887 additions and 1343 deletions
+26 -6
View File
@@ -74,13 +74,30 @@ import { deleteContact, generateAndRegisterEthrUser, importUser } from './testUt
test('Check activity feed - check that server is running', async ({ page }) => {
// Load app homepage
await page.goto('./');
await page.getByTestId('closeOnboardingAndFinish').click();
// Wait for and dismiss onboarding dialog, with retry logic
const closeOnboarding = async () => {
const closeButton = page.getByTestId('closeOnboardingAndFinish');
if (await closeButton.isVisible()) {
await closeButton.click();
await expect(closeButton).toBeHidden();
}
};
// Check that initial 10 activities have been loaded
// Initial dismissal
await closeOnboarding();
// Wait for network to be idle
await page.waitForLoadState('networkidle');
// Check and dismiss onboarding again if it reappeared
await closeOnboarding();
// Wait for initial feed items to load
await expect(page.locator('ul#listLatestActivity li:nth-child(10)')).toBeVisible();
// Scroll down a bit to trigger loading additional activities
await page.locator('ul#listLatestActivity li:nth-child(50)').scrollIntoViewIfNeeded();
await page.locator('ul#listLatestActivity li:nth-child(20)').scrollIntoViewIfNeeded();
});
test('Check discover results', async ({ page }) => {
@@ -104,8 +121,11 @@ test('Check no-ID messaging in account', async ({ page }) => {
// Check 'a friend needs to register you' notice
await expect(page.locator('#noticeBeforeAnnounce')).toBeVisible();
// Check that there is no ID
await expect(page.locator('#sectionIdentityDetails code.truncate')).toBeEmpty();
// Check that there is no ID by finding the wrapper first
const didWrapper = page.locator('[data-testId="didWrapper"]');
await expect(didWrapper).toBeVisible();
const codeElement = didWrapper.locator('code[role="code"]');
await expect(codeElement).toBeEmpty();
});
test('Check ability to share contact', async ({ page }) => {