diff --git a/test-playwright/60-new-activity.spec.ts b/test-playwright/60-new-activity.spec.ts index 6ba73524..ee0432a5 100644 --- a/test-playwright/60-new-activity.spec.ts +++ b/test-playwright/60-new-activity.spec.ts @@ -78,83 +78,9 @@ test('New offers for another user', async ({ page }) => { await expect(page.locator('div[role="alert"] button > svg.fa-xmark')).toBeHidden(); // ensure alert is gone // as user 1, go to the home page and check that two offers are shown as new - console.log('[DEBUG] 60-new-activity: Switching to user01Did:', user01Did); await switchToUser(page, user01Did); - console.log('[DEBUG] 60-new-activity: Switch completed, navigating to home page'); - await page.goto('./'); - console.log('[DEBUG] 60-new-activity: Navigated to home page'); - - // Wait for page to load completely await page.waitForLoadState('networkidle'); - console.log('[DEBUG] 60-new-activity: Page load completed'); - - // Add systematic debugging for the newDirectOffersActivityNumber element - console.log('[DEBUG] 60-new-activity: Looking for newDirectOffersActivityNumber element'); - - // Check if the element exists at all - const offerNumElem = page.getByTestId('newDirectOffersActivityNumber'); - const elementExists = await offerNumElem.count(); - console.log('[DEBUG] 60-new-activity: newDirectOffersActivityNumber element count:', elementExists); - - // Check if parent containers exist - const offerContainer = page.locator('[data-testid="newDirectOffersActivityNumber"]').locator('..'); - const containerExists = await offerContainer.count(); - console.log('[DEBUG] 60-new-activity: Parent container exists:', containerExists > 0); - - if (containerExists > 0) { - const containerVisible = await offerContainer.isVisible(); - console.log('[DEBUG] 60-new-activity: Parent container visible:', containerVisible); - } - - // Look for any elements with test IDs that might be related - const allTestIds = page.locator('[data-testid]'); - const testIdCount = await allTestIds.count(); - console.log('[DEBUG] 60-new-activity: Found', testIdCount, 'elements with test IDs'); - - for (let i = 0; i < Math.min(testIdCount, 20); i++) { - const element = allTestIds.nth(i); - const testId = await element.getAttribute('data-testid'); - const isVisible = await element.isVisible(); - const textContent = await element.textContent(); - console.log(`[DEBUG] 60-new-activity: TestID ${i}: "${testId}" (visible: ${isVisible}, text: "${textContent?.trim()}")`); - } - - // Check for the specific elements mentioned in HomeView.vue - const newOffersSection = page.locator('div:has([data-testid="newDirectOffersActivityNumber"])'); - const newOffersSectionExists = await newOffersSection.count(); - console.log('[DEBUG] 60-new-activity: New offers section exists:', newOffersSectionExists > 0); - - // Check for loading states - const loadingIndicators = page.locator('.fa-spinner, .fa-spin, [class*="loading"]'); - const loadingCount = await loadingIndicators.count(); - console.log('[DEBUG] 60-new-activity: Loading indicators found:', loadingCount); - - // Wait a bit longer and check again - console.log('[DEBUG] 60-new-activity: Waiting additional 3 seconds for offers to load'); - await page.waitForTimeout(3000); - - const elementExistsAfterWait = await offerNumElem.count(); - console.log('[DEBUG] 60-new-activity: newDirectOffersActivityNumber element count after wait:', elementExistsAfterWait); - - if (elementExistsAfterWait === 0) { - console.log('[DEBUG] 60-new-activity: Element still not found, taking screenshot'); - await page.screenshot({ path: 'debug-missing-offers-element.png', fullPage: true }); - console.log('[DEBUG] 60-new-activity: Screenshot saved as debug-missing-offers-element.png'); - - // Check page URL and state - const currentUrl = page.url(); - console.log('[DEBUG] 60-new-activity: Current URL:', currentUrl); - - // Check if we're actually logged in as the right user - const didElement = page.getByTestId('didWrapper'); - const didElementExists = await didElement.count(); - if (didElementExists > 0) { - const currentDid = await didElement.textContent(); - console.log('[DEBUG] 60-new-activity: Current DID on page:', currentDid?.trim()); - console.log('[DEBUG] 60-new-activity: Expected DID:', user01Did); - } - } let offerNumElemForTest = page.getByTestId('newDirectOffersActivityNumber'); await expect(offerNumElemForTest).toHaveText('2'); @@ -169,7 +95,7 @@ test('New offers for another user', async ({ page }) => { await expect(page.getByText(`help of ${randomString1} from #000`)).toBeVisible(); /** - * OFFER ACKNOWLEDGMENT MECHANISM DOCUMENTATION + * OFFER ACKNOWLEDGMENT MECHANISM: * * TimeSafari uses a pointer-based system to track which offers are "new": * - `lastAckedOfferToUserJwtId` stores the ID of the last acknowledged offer @@ -187,37 +113,13 @@ test('New offers for another user', async ({ page }) => { * This test uses mechanism #1 (expansion) for complete dismissal. * The expansion already happened when we clicked the chevron above. */ - console.log('[DEBUG] 60-new-activity: Offers section already expanded, marking all offers as read'); - console.log('[DEBUG] 60-new-activity: Expansion calls expandOffersToUserAndMarkRead() -> sets lastAckedOfferToUserJwtId to newest offer'); // now see that all offers are dismissed since we expanded the section - console.log('[DEBUG] 60-new-activity: Going back to home page to check offers are dismissed'); await page.goto('./'); - - // Add debugging for the final check await page.waitForLoadState('networkidle'); - console.log('[DEBUG] 60-new-activity: Page loaded for final check'); - - const offerNumElemFinal = page.getByTestId('newDirectOffersActivityNumber'); - const elementExistsFinal = await offerNumElemFinal.count(); - console.log('[DEBUG] 60-new-activity: newDirectOffersActivityNumber element count (final check):', elementExistsFinal); - - if (elementExistsFinal > 0) { - const finalIsVisible = await offerNumElemFinal.isVisible(); - const finalText = await offerNumElemFinal.textContent(); - console.log('[DEBUG] 60-new-activity: Final element visible:', finalIsVisible); - console.log('[DEBUG] 60-new-activity: Final element text:', finalText); - - if (finalIsVisible) { - console.log('[DEBUG] 60-new-activity: Element is still visible when it should be hidden'); - await page.screenshot({ path: 'debug-offers-still-visible-final.png', fullPage: true }); - console.log('[DEBUG] 60-new-activity: Screenshot saved as debug-offers-still-visible-final.png'); - } - } // wait until the list with ID listLatestActivity has at least one visible item await page.locator('#listLatestActivity li').first().waitFor({ state: 'visible' }); - console.log('[DEBUG] 60-new-activity: Activity list loaded'); await expect(page.getByTestId('newDirectOffersActivityNumber')).toBeHidden(); });