diff --git a/.gitignore b/.gitignore index 4c6cefd..db70a18 100644 --- a/.gitignore +++ b/.gitignore @@ -31,3 +31,7 @@ web-ext.config.ts *.njsproj *.sln *.sw? + +# Scratch and raw store captures +.tmp +store/raw diff --git a/e2e/extension.spec.ts b/e2e/extension.spec.ts index a306415..306d6a7 100644 --- a/e2e/extension.spec.ts +++ b/e2e/extension.spec.ts @@ -379,6 +379,9 @@ test('full preview executes public repository scripts only inside sandbox', asyn ); const sandbox = await sandboxElement?.contentFrame(); expect(sandbox).not.toBeNull(); + // The frame fills the tab below the header instead of the 150px default. + const frameBox = await sandboxElement!.boundingBox(); + expect(frameBox!.height).toBeGreaterThan(fullPage.viewportSize()!.height / 2); await expect .poll(() => requested.includes(`${rawBase}/reports/weekly/app.js`)) .toBe(true); @@ -1574,7 +1577,7 @@ test('popup enable setting updates an already-open GitHub page', async () => { const popup = await context.newPage(); await popup.goto(`chrome-extension://${extensionId}/popup.html`); const enabled = popup.getByRole('checkbox', { - name: 'Show previews on GitHub HTML files and pull requests', + name: 'Show previews', }); await expect(enabled).toBeChecked(); await enabled.uncheck(); @@ -1852,10 +1855,15 @@ test('blob view choice survives different files and reloads without loading hidd await settings.goto('chrome-extension://' + extensionId + '/popup.html'); await page.goto(firstUrl, { waitUntil: 'domcontentloaded' }); await expect(page.getByRole('tab', { name: 'Preview' })).toHaveAttribute('aria-selected', 'true'); + // Primer paints the selected segment from aria-pressed. + await expect(page.getByRole('tab', { name: 'Preview' })).toHaveAttribute('aria-pressed', 'true'); + await expect(page.getByRole('button', { name: 'Code', exact: true })).toHaveAttribute('aria-pressed', 'false'); await expect(page.locator('iframe[title="Executable HTML preview"]').contentFrame().locator('#view-title')).toHaveText('Saved view'); expect(await settings.evaluate("chrome.storage.local.get('blobViewMode')")).toEqual({}); await page.getByRole('button', { name: 'Code', exact: true }).click(); + await expect(page.getByRole('button', { name: 'Code', exact: true })).toHaveAttribute('aria-pressed', 'true'); + await expect(page.getByRole('tab', { name: 'Preview' })).toHaveAttribute('aria-pressed', 'false'); await expect.poll(() => settings.evaluate("chrome.storage.local.get('blobViewMode')")).toEqual({ blobViewMode: 'source' }); const requestsBeforeCode = scriptRequests; // GitHub replaces its DOM while keeping the extension's content script alive. @@ -1979,12 +1987,12 @@ function githubBlobFixture(