diff options
author | 2022-06-27 18:26:21 +0000 | |
---|---|---|
committer | 2022-06-27 18:26:21 +0000 | |
commit | 79fe09fa3093eb8ac2871c1894b9cddf557aecba (patch) | |
tree | 46a426e4adc3fc53bd8ba039cf277be5c8607f9e /packages/integrations/prefetch/playwright.config.js | |
parent | 9d78162fd9cab9eb2a64f58ca5703ba5d658828f (diff) | |
download | astro-79fe09fa3093eb8ac2871c1894b9cddf557aecba.tar.gz astro-79fe09fa3093eb8ac2871c1894b9cddf557aecba.tar.zst astro-79fe09fa3093eb8ac2871c1894b9cddf557aecba.zip |
Adds a prefetch integration for near-instant page navigations (#3725)
* Adds a basic @astrojs/prefetch integration
* adding tests for custom selectors
* missed in last commit
* Adding a few docs, removing the option for `selectors` to be an element array
* adding an option for the concurrency limit
* fixing test for updated integration options
* Update packages/labs/prefetch/src/client.ts
Co-authored-by: Nate Moore <natemoo-re@users.noreply.github.com>
* nit: removing the NodeJS.Timer type to allow typescript to infer the return
* updating docs for default selector with ~=
* Skip prefetching on 2G connections, or when data saver is enabled
* refactor: moving to packages/integrations, Astro Labs TBD down the road
* README typo fix
Co-authored-by: Nate Moore <natemoo-re@users.noreply.github.com>
Diffstat (limited to 'packages/integrations/prefetch/playwright.config.js')
-rw-r--r-- | packages/integrations/prefetch/playwright.config.js | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/packages/integrations/prefetch/playwright.config.js b/packages/integrations/prefetch/playwright.config.js new file mode 100644 index 000000000..c8353201f --- /dev/null +++ b/packages/integrations/prefetch/playwright.config.js @@ -0,0 +1,41 @@ +import { devices } from '@playwright/test'; + +const config = { + testMatch: 'test/*.test.js', + /* Maximum time one test can run for. */ + timeout: 30 * 1000, + expect: { + /** + * Maximum time expect() should wait for the condition to be met. + * For example in `await expect(locator).toHaveText();` + */ + timeout: 5000, + }, + /* Fail the build on CI if you accidentally left test in the source code. */ + forbidOnly: !!process.env.CI, + /* Retry on CI only */ + retries: process.env.CI ? 5 : 0, + /* Opt out of parallel tests on CI. */ + workers: 1, + /* Shared settings for all the projects below. See https://playwright.dev/docs/api/class-testoptions. */ + use: { + /* Maximum time each action such as `click()` can take. Defaults to 0 (no limit). */ + actionTimeout: 0, + /* Base URL to use in actions like `await page.goto('/')`. */ + baseURL: process.env.PLAYWRIGHT_TEST_BASE_URL || 'http://localhost:3000', + + /* Collect trace when retrying the failed test. See https://playwright.dev/docs/trace-viewer */ + trace: 'on-first-retry', + }, + projects: [ + { + name: 'Chrome Stable', + use: { + browserName: 'chromium', + channel: 'chrome', + }, + }, + ], +}; + +export default config; |