mirror of
https://github.com/freeCodeCamp/freeCodeCamp.git
synced 2026-05-28 18:26:54 +00:00
test(e2e, playwright): action-row improvements(modified the first test and added a test for Preview Portal button) (#52387)
This commit is contained in:
@@ -78,7 +78,7 @@ const ActionRow = ({
|
|||||||
</button>
|
</button>
|
||||||
)}
|
)}
|
||||||
<button
|
<button
|
||||||
data-playwright-test-label='preview-button'
|
data-playwright-test-label='preview-pane-button'
|
||||||
aria-expanded={!!showPreviewPane}
|
aria-expanded={!!showPreviewPane}
|
||||||
onClick={() => togglePane('showPreviewPane')}
|
onClick={() => togglePane('showPreviewPane')}
|
||||||
>
|
>
|
||||||
@@ -86,6 +86,7 @@ const ActionRow = ({
|
|||||||
<span aria-hidden='true'>{t('learn.editor-tabs.preview')}</span>
|
<span aria-hidden='true'>{t('learn.editor-tabs.preview')}</span>
|
||||||
</button>
|
</button>
|
||||||
<button
|
<button
|
||||||
|
data-playwright-test-label='preview-portal-button'
|
||||||
aria-expanded={!!showPreviewPortal}
|
aria-expanded={!!showPreviewPortal}
|
||||||
onClick={() => togglePane('showPreviewPortal')}
|
onClick={() => togglePane('showPreviewPortal')}
|
||||||
>
|
>
|
||||||
|
|||||||
+28
-4
@@ -24,7 +24,8 @@ function getTabsRowLocator(page: Page): Locator {
|
|||||||
}
|
}
|
||||||
|
|
||||||
test('Action row buttons are visible', async ({ isMobile, page }) => {
|
test('Action row buttons are visible', async ({ isMobile, page }) => {
|
||||||
const previewFrame = page.getByTitle('challenge preview');
|
const previewPaneButton = page.getByTestId('preview-pane-button');
|
||||||
|
const previewPortalButton = page.getByTestId('preview-portal-button');
|
||||||
const actionRow = getActionRowLocator(page);
|
const actionRow = getActionRowLocator(page);
|
||||||
const tabsRow = getTabsRowLocator(page);
|
const tabsRow = getTabsRowLocator(page);
|
||||||
|
|
||||||
@@ -37,7 +38,9 @@ test('Action row buttons are visible', async ({ isMobile, page }) => {
|
|||||||
const btn = tabsRow.getByRole('button', { name: challengeButtons[i] });
|
const btn = tabsRow.getByRole('button', { name: challengeButtons[i] });
|
||||||
await expect(btn).toBeVisible();
|
await expect(btn).toBeVisible();
|
||||||
}
|
}
|
||||||
await expect(previewFrame).toBeVisible();
|
|
||||||
|
await expect(previewPaneButton).toBeVisible();
|
||||||
|
await expect(previewPortalButton).toBeVisible();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -84,8 +87,11 @@ test('Clicking Console button shows console panel', async ({
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
test('Clicking Preview button hides preview', async ({ isMobile, page }) => {
|
test('Clicking Preview Pane button hides preview', async ({
|
||||||
const previewButton = page.getByTestId('preview-button');
|
isMobile,
|
||||||
|
page
|
||||||
|
}) => {
|
||||||
|
const previewButton = page.getByTestId('preview-pane-button');
|
||||||
const previewFrame = page.getByTitle('challenge preview');
|
const previewFrame = page.getByTitle('challenge preview');
|
||||||
const actionRow = getActionRowLocator(page);
|
const actionRow = getActionRowLocator(page);
|
||||||
|
|
||||||
@@ -96,3 +102,21 @@ test('Clicking Preview button hides preview', async ({ isMobile, page }) => {
|
|||||||
await expect(previewFrame).toBeHidden();
|
await expect(previewFrame).toBeHidden();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test('Clicking Preview Portal button opens the preview in a new tab', async ({
|
||||||
|
page
|
||||||
|
}) => {
|
||||||
|
const previewPortalButton = page.getByTestId('preview-portal-button');
|
||||||
|
const browserContext = page.context();
|
||||||
|
|
||||||
|
const [newPage] = await Promise.all([
|
||||||
|
browserContext.waitForEvent('page'),
|
||||||
|
previewPortalButton.click()
|
||||||
|
]);
|
||||||
|
|
||||||
|
await newPage.waitForLoadState();
|
||||||
|
|
||||||
|
await expect(newPage).toHaveURL('about:blank');
|
||||||
|
|
||||||
|
await newPage.close();
|
||||||
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user