summaryrefslogtreecommitdiff
path: root/packages/integrations/prefetch/playwright.config.js
diff options
context:
space:
mode:
authorGravatar Tony Sullivan <tony.f.sullivan@outlook.com> 2022-06-27 18:26:21 +0000
committerGravatar GitHub <noreply@github.com> 2022-06-27 18:26:21 +0000
commit79fe09fa3093eb8ac2871c1894b9cddf557aecba (patch)
tree46a426e4adc3fc53bd8ba039cf277be5c8607f9e /packages/integrations/prefetch/playwright.config.js
parent9d78162fd9cab9eb2a64f58ca5703ba5d658828f (diff)
downloadastro-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.js41
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;