32
package-lock.json
generated
32
package-lock.json
generated
@@ -106,7 +106,7 @@
|
||||
"@jest/globals": "29.5.0",
|
||||
"@octokit/graphql": "5.0.4",
|
||||
"@octokit/rest": "^19.0.4",
|
||||
"@playwright/test": "1.33.0",
|
||||
"@playwright/test": "1.34.3",
|
||||
"@types/github-slugger": "^2.0.0",
|
||||
"@types/imurmurhash": "^0.1.1",
|
||||
"@types/js-cookie": "^3.0.2",
|
||||
@@ -4106,13 +4106,13 @@
|
||||
"integrity": "sha512-jkfX/35EsxDe9ruTx3He59FyE+y5WDF5S4YJ7TABj0c8egHV2FLeADavknvr12CnSu0QTybv9ufKfPJDsYZYNw=="
|
||||
},
|
||||
"node_modules/@playwright/test": {
|
||||
"version": "1.33.0",
|
||||
"resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.33.0.tgz",
|
||||
"integrity": "sha512-YunBa2mE7Hq4CfPkGzQRK916a4tuZoVx/EpLjeWlTVOnD4S2+fdaQZE0LJkbfhN5FTSKNLdcl7MoT5XB37bTkg==",
|
||||
"version": "1.34.3",
|
||||
"resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.34.3.tgz",
|
||||
"integrity": "sha512-zPLef6w9P6T/iT6XDYG3mvGOqOyb6eHaV9XtkunYs0+OzxBtrPAAaHotc0X+PJ00WPPnLfFBTl7mf45Mn8DBmw==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@types/node": "*",
|
||||
"playwright-core": "1.33.0"
|
||||
"playwright-core": "1.34.3"
|
||||
},
|
||||
"bin": {
|
||||
"playwright": "cli.js"
|
||||
@@ -15794,12 +15794,12 @@
|
||||
}
|
||||
},
|
||||
"node_modules/playwright-core": {
|
||||
"version": "1.33.0",
|
||||
"resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.33.0.tgz",
|
||||
"integrity": "sha512-aizyPE1Cj62vAECdph1iaMILpT0WUDCq3E6rW6I+dleSbBoGbktvJtzS6VHkZ4DKNEOG9qJpiom/ZxO+S15LAw==",
|
||||
"version": "1.34.3",
|
||||
"resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.34.3.tgz",
|
||||
"integrity": "sha512-2pWd6G7OHKemc5x1r1rp8aQcpvDh7goMBZlJv6Co5vCNLVcQJdhxRL09SGaY6HcyHH9aT4tiynZabMofVasBYw==",
|
||||
"dev": true,
|
||||
"bin": {
|
||||
"playwright": "cli.js"
|
||||
"playwright-core": "cli.js"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=14"
|
||||
@@ -22273,14 +22273,14 @@
|
||||
"integrity": "sha512-jkfX/35EsxDe9ruTx3He59FyE+y5WDF5S4YJ7TABj0c8egHV2FLeADavknvr12CnSu0QTybv9ufKfPJDsYZYNw=="
|
||||
},
|
||||
"@playwright/test": {
|
||||
"version": "1.33.0",
|
||||
"resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.33.0.tgz",
|
||||
"integrity": "sha512-YunBa2mE7Hq4CfPkGzQRK916a4tuZoVx/EpLjeWlTVOnD4S2+fdaQZE0LJkbfhN5FTSKNLdcl7MoT5XB37bTkg==",
|
||||
"version": "1.34.3",
|
||||
"resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.34.3.tgz",
|
||||
"integrity": "sha512-zPLef6w9P6T/iT6XDYG3mvGOqOyb6eHaV9XtkunYs0+OzxBtrPAAaHotc0X+PJ00WPPnLfFBTl7mf45Mn8DBmw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@types/node": "*",
|
||||
"fsevents": "2.3.2",
|
||||
"playwright-core": "1.33.0"
|
||||
"playwright-core": "1.34.3"
|
||||
}
|
||||
},
|
||||
"@primer/behaviors": {
|
||||
@@ -30255,9 +30255,9 @@
|
||||
}
|
||||
},
|
||||
"playwright-core": {
|
||||
"version": "1.33.0",
|
||||
"resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.33.0.tgz",
|
||||
"integrity": "sha512-aizyPE1Cj62vAECdph1iaMILpT0WUDCq3E6rW6I+dleSbBoGbktvJtzS6VHkZ4DKNEOG9qJpiom/ZxO+S15LAw==",
|
||||
"version": "1.34.3",
|
||||
"resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.34.3.tgz",
|
||||
"integrity": "sha512-2pWd6G7OHKemc5x1r1rp8aQcpvDh7goMBZlJv6Co5vCNLVcQJdhxRL09SGaY6HcyHH9aT4tiynZabMofVasBYw==",
|
||||
"dev": true
|
||||
},
|
||||
"port-used": {
|
||||
|
||||
@@ -108,7 +108,7 @@
|
||||
"@jest/globals": "29.5.0",
|
||||
"@octokit/graphql": "5.0.4",
|
||||
"@octokit/rest": "^19.0.4",
|
||||
"@playwright/test": "1.33.0",
|
||||
"@playwright/test": "1.34.3",
|
||||
"@types/github-slugger": "^2.0.0",
|
||||
"@types/imurmurhash": "^0.1.1",
|
||||
"@types/js-cookie": "^3.0.2",
|
||||
|
||||
@@ -11,45 +11,3 @@ describe('homepage', () => {
|
||||
await expect(page.title()).resolves.toMatch('GitHub Docs')
|
||||
})
|
||||
})
|
||||
|
||||
// Note: we can only test Elasticsearch searches on things we have indexed
|
||||
// in the fixtures. See the contents of /src/search/tests/fixtures/search-indexes
|
||||
describe('browser search', () => {
|
||||
jest.setTimeout(60 * 1000)
|
||||
|
||||
it('works on small and x-small viewport landing pages', async () => {
|
||||
await page.setViewport({ width: 500, height: 700 })
|
||||
await page.goto('http://localhost:4000/en/actions')
|
||||
await page.click('[data-testid=mobile-search-button]')
|
||||
await page.click('[data-testid=site-search-input]')
|
||||
await page.type('[data-testid=site-search-input]', 'foo')
|
||||
await page.keyboard.press('Enter')
|
||||
await page.waitForSelector('[data-testid=search-result]')
|
||||
const hits = await page.$$('[data-testid=search-result]')
|
||||
expect(hits.length).toBeGreaterThan(1)
|
||||
})
|
||||
|
||||
it('works on medium -> x-large viewport landing pages', async () => {
|
||||
const initialViewport = page.viewport()
|
||||
await page.setViewport({ width: 1000, height: 768 })
|
||||
await page.goto('http://localhost:4000/en/actions')
|
||||
await page.click('[data-testid=desktop-header] [data-testid=site-search-input]')
|
||||
await page.type('[data-testid=desktop-header] [data-testid=site-search-input]', 'foo')
|
||||
await page.keyboard.press('Enter')
|
||||
await page.waitForSelector('[data-testid=search-result]')
|
||||
const hits = await page.$$('[data-testid=search-result]')
|
||||
expect(hits.length).toBeGreaterThan(1)
|
||||
await page.setViewport(initialViewport)
|
||||
})
|
||||
// 404 page is statically generated with next, so search is not available, but may possibly be brought back
|
||||
// Docs Engineering issue: 961
|
||||
it.skip('works on 404 error page', async () => {
|
||||
await page.goto('http://localhost:4000/en/404')
|
||||
await page.click('[data-testid=search] input[type="search"]')
|
||||
await page.type('[data-testid=search] input[type="search"]', 'actions')
|
||||
await page.keyboard.press('Enter')
|
||||
await page.waitForSelector('[data-testid=search-results]')
|
||||
const hits = await page.$$('[data-testid=search-result]')
|
||||
expect(hits.length).toBeGreaterThan(5)
|
||||
})
|
||||
})
|
||||
|
||||
@@ -253,9 +253,8 @@ test.describe('test nav at different viewports', () => {
|
||||
await expect(page.getByRole('menuitemradio', { name: 'Enterprise Cloud' })).toBeVisible()
|
||||
|
||||
// language picker is visible
|
||||
// TODO: currently no languages enabled for headless tests
|
||||
// await page.getByRole('button', { name: 'Select language: current language is English' }).click()
|
||||
// await expect(page.getByRole('menuitemradio', { name: 'English' })).toBeVisible()
|
||||
await page.getByRole('button', { name: 'Select language: current language is English' }).click()
|
||||
await expect(page.getByRole('menuitemradio', { name: 'English' })).toBeVisible()
|
||||
|
||||
// header sign up button is visible
|
||||
await expect(page.getByTestId('header-signup')).toBeVisible()
|
||||
@@ -298,14 +297,11 @@ test.describe('test nav at different viewports', () => {
|
||||
await expect(page.getByRole('menuitemradio', { name: 'Enterprise Cloud' })).toBeVisible()
|
||||
|
||||
// language picker is in mobile menu
|
||||
// TODO: currently no languages enabled for headless tests
|
||||
// await page.getByTestId('mobile-menu').click()
|
||||
// await page.getByRole('button', { name: 'Select language: current language is English' }).click()
|
||||
// await expect(page.getByRole('menuitemradio', { name: 'English' })).toBeVisible()
|
||||
await page.getByTestId('mobile-menu').click()
|
||||
await page.getByRole('button', { name: 'Select language: current language is English' }).click()
|
||||
await expect(page.getByRole('menuitemradio', { name: 'English' })).toBeVisible()
|
||||
|
||||
// sign up button is in mobile menu
|
||||
await expect(page.getByTestId('header-signup')).not.toBeVisible()
|
||||
await page.getByTestId('mobile-menu').click()
|
||||
await expect(page.getByTestId('mobile-signup')).toBeVisible()
|
||||
|
||||
// hamburger button for sidebar overlay is visible
|
||||
@@ -324,9 +320,8 @@ test.describe('test nav at different viewports', () => {
|
||||
// header sign-up button is not visible
|
||||
await expect(page.getByTestId('header-signup')).not.toBeVisible()
|
||||
|
||||
// TODO: currently no languages enabled for headless tests
|
||||
// language picker is not visible
|
||||
// await expect(page.getByTestId('language-picker')).not.toBeVisible()
|
||||
await expect(page.getByTestId('language-picker')).not.toBeVisible()
|
||||
|
||||
// version picker is not visible
|
||||
await expect(
|
||||
@@ -340,9 +335,8 @@ test.describe('test nav at different viewports', () => {
|
||||
await page.getByTestId('mobile-menu').click()
|
||||
await expect(page.getByTestId('open-mobile-menu').getByTestId('version-picker')).toBeVisible()
|
||||
|
||||
// TODO: currently no languages enabled for headless tests
|
||||
// language picker is in mobile menu
|
||||
// await expect(page.getByTestId('open-mobile-menu').getByTestId('language-picker')).toBeVisible()
|
||||
await expect(page.getByTestId('open-mobile-menu').getByTestId('language-picker')).toBeVisible()
|
||||
|
||||
// sign up button is in mobile menu
|
||||
await expect(page.getByTestId('open-mobile-menu').getByTestId('version-picker')).toBeVisible()
|
||||
@@ -352,6 +346,37 @@ test.describe('test nav at different viewports', () => {
|
||||
await page.getByTestId('sidebar-hamburger').click()
|
||||
await expect(page.getByTestId('sidebar-product-dialog')).toBeVisible()
|
||||
})
|
||||
|
||||
test('do a search when the viewport is x-small', async ({ page }) => {
|
||||
test.skip(!SEARCH_TESTS, 'No local Elasticsearch, no tests involving search')
|
||||
|
||||
page.setViewportSize({
|
||||
width: 500,
|
||||
height: 700,
|
||||
})
|
||||
await page.goto('/get-started/foo/bar')
|
||||
await page.getByRole('button', { name: 'Open Search Bar' }).click()
|
||||
await page.getByTestId('site-search-input').click()
|
||||
await page.getByTestId('site-search-input').fill('serve playwright')
|
||||
await page.getByTestId('site-search-input').press('Enter')
|
||||
await expect(page).toHaveURL(/\/search\?query=serve\+playwright/)
|
||||
await expect(page).toHaveTitle(/\d Search results for "serve playwright"/)
|
||||
})
|
||||
|
||||
test('do a search when the viewport is medium', async ({ page }) => {
|
||||
test.skip(!SEARCH_TESTS, 'No local Elasticsearch, no tests involving search')
|
||||
|
||||
page.setViewportSize({
|
||||
width: 1000,
|
||||
height: 700,
|
||||
})
|
||||
await page.goto('/get-started/foo/bar')
|
||||
await page.getByTestId('site-search-input').click()
|
||||
await page.getByTestId('site-search-input').fill('serve playwright')
|
||||
await page.getByTestId('site-search-input').press('Enter')
|
||||
await expect(page).toHaveURL(/\/search\?query=serve\+playwright/)
|
||||
await expect(page).toHaveTitle(/\d Search results for "serve playwright"/)
|
||||
})
|
||||
})
|
||||
|
||||
test.describe('survey', () => {
|
||||
|
||||
Reference in New Issue
Block a user