diff --git a/package-lock.json b/package-lock.json index 4b0505a..7961e4a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -16,6 +16,7 @@ "@sveltejs/adapter-auto": "^2.1.0", "@sveltejs/kit": "^1.25.0", "@types/cookie": "^0.5.2", + "@types/node": "^20.6.2", "@typescript-eslint/eslint-plugin": "^6.7.0", "@typescript-eslint/parser": "^6.7.0", "eslint": "^8.49.0", @@ -713,6 +714,12 @@ "integrity": "sha512-RbSSoHliUbnXj3ny0CNFOoxrIDV6SUGyStHsvDqosw6CkdPV8TtWGlfecuK4ToyMEAql6pzNxgCFKanovUzlgQ==", "dev": true }, + "node_modules/@types/node": { + "version": "20.6.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.6.2.tgz", + "integrity": "sha512-Y+/1vGBHV/cYk6OI1Na/LHzwnlNCAfU3ZNGrc1LdRe/LAIbdDPTTv/HU3M7yXN448aTVDq3eKRm2cg7iKLb8gw==", + "dev": true + }, "node_modules/@types/pug": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/@types/pug/-/pug-2.0.6.tgz", diff --git a/package.json b/package.json index 8cb67ee..e1313ab 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "dddsw-web", "version": "0.0.1", "scripts": { - "dev": "vite dev", + "dev": "vite dev --host 127.0.0.1", "build": "vite build", "package": "svelte-kit package", "preview": "vite preview", @@ -17,6 +17,7 @@ "@sveltejs/adapter-auto": "^2.1.0", "@sveltejs/kit": "^1.25.0", "@types/cookie": "^0.5.2", + "@types/node": "^20.6.2", "@typescript-eslint/eslint-plugin": "^6.7.0", "@typescript-eslint/parser": "^6.7.0", "eslint": "^8.49.0", diff --git a/playwright.config.ts b/playwright.config.ts index 7040df2..735f327 100644 --- a/playwright.config.ts +++ b/playwright.config.ts @@ -3,8 +3,12 @@ import type { PlaywrightTestConfig } from '@playwright/test'; const config: PlaywrightTestConfig = { webServer: { command: 'npm run dev', - port: 5173 - } + url: 'http://127.0.0.1:5173', + reuseExistingServer: !process.env.CI + }, + use: { + baseURL: 'http://127.0.0.1:5173/', + }, }; export default config; diff --git a/tests/navbar.spec.ts b/tests/navbar.spec.ts index c0ffa97..ccd9de5 100644 --- a/tests/navbar.spec.ts +++ b/tests/navbar.spec.ts @@ -2,7 +2,7 @@ import { test, expect, devices } from '@playwright/test'; test('Clicking nav button displays nav links dropdown', async ({ page }) => { // Go to about page (to avoid carousel weirdness) - await page.goto('http://127.0.0.1:5173/about'); + await page.goto('/about'); // Click nav drop down await page.locator('.main-nav-button').click(); @@ -12,7 +12,7 @@ test('Clicking nav button displays nav links dropdown', async ({ page }) => { test('Clicking nav button closes nav links dropdown', async ({ page }) => { // Go to about page (to avoid carousel weirdness) - await page.goto('http://127.0.0.1:5173/about'); + await page.goto('/about'); // Click nav drop down await page.locator('.main-nav-button').click(); @@ -25,7 +25,7 @@ test('Clicking nav button closes nav links dropdown', async ({ page }) => { test('Clicking nav link closes nav links dropdown', async ({ page }) => { // Go to about page (to avoid carousel weirdness) - await page.goto('http://127.0.0.1:5173/about'); + await page.goto('/about'); // Click nav drop down await page.locator('.main-nav-button').click(); @@ -38,7 +38,7 @@ test('Clicking nav link closes nav links dropdown', async ({ page }) => { test('Clicking logo closes nav links dropdown', async ({ page }) => { // Go to about page (to avoid carousel weirdness) - await page.goto('http://127.0.0.1:5173/about'); + await page.goto('/about'); // Click nav drop down await page.locator('.main-nav-button').click(); @@ -51,7 +51,7 @@ test('Clicking logo closes nav links dropdown', async ({ page }) => { test('Clicking logo does not open nav links dropdown', async ({ page }) => { // Go to about page (to avoid carousel weirdness) - await page.goto('http://127.0.0.1:5173/about'); + await page.goto('/about'); // Click logo await page.locator('img[class~="logo"]').click(); @@ -61,14 +61,14 @@ test('Clicking logo does not open nav links dropdown', async ({ page }) => { test('Displays down arrow icon in unexpanded state', async ({ page }) => { // Go to about page (to avoid carousel weirdness) - await page.goto('http://127.0.0.1:5173/about'); + await page.goto('/about'); await expect(page.locator('.main-nav-button span.icon')).toContainText('expand_more'); }); test('Displays up arrow icon in expanded state', async ({ page }) => { // Go to about page (to avoid carousel weirdness) - await page.goto('http://127.0.0.1:5173/about'); + await page.goto('/about'); // Click nav drop down await page.locator('.main-nav-button').click(); @@ -78,7 +78,7 @@ test('Displays up arrow icon in expanded state', async ({ page }) => { test('Does not show current route in nav links drop down', async ({ page }) => { // Go to about page (to avoid carousel weirdness) - await page.goto('http://127.0.0.1:5173/about'); + await page.goto('/about'); // Click nav drop down await page.locator('.main-nav-button').click(); @@ -90,7 +90,7 @@ test('Does not show button text in smaller screens', async ({ page }) => { await page.setViewportSize(devices['iPhone SE'].viewport); // Go to about page (to avoid carousel weirdness) - await page.goto('http://127.0.0.1:5173/about'); + await page.goto('/about'); await expect(page.locator('.nav-button-text')).toBeHidden(); }); diff --git a/tests/navigation.spec.ts b/tests/navigation.spec.ts index 95346b8..44cf7d4 100644 --- a/tests/navigation.spec.ts +++ b/tests/navigation.spec.ts @@ -3,8 +3,8 @@ import { test, expect } from '@playwright/test'; const routes = ['about', 'sponsorship', '2023', 'code-of-conduct']; for (const route of routes) { test(`Can navigate to ${route} page from Home via the nav bar`, async ({ page }) => { - // Go to Home - await page.goto('http://127.0.0.1:5173/'); + // Go to Home page + await page.goto('/'); // Click nav drop down await page.locator('.main-nav-button').click(); @@ -18,7 +18,7 @@ for (const route of routes) { test('Can navigate to Home from content page by clicking logo', async ({ page }) => { // Go to about page - await page.goto('http://127.0.0.1:5173/about'); + await page.goto('/about'); // Click logo await page.locator('img[class~="logo"]').click(); diff --git a/tests/page-previews.spec.ts b/tests/page-previews.spec.ts index c4d6615..3617058 100644 --- a/tests/page-previews.spec.ts +++ b/tests/page-previews.spec.ts @@ -4,8 +4,8 @@ import { test, devices } from '@playwright/test'; test('Captures Home preview - mobile', async ({ page }) => { await page.setViewportSize(devices['iPhone SE'].viewport); - // Go to Home - await page.goto('http://127.0.0.1:5173/'); + // Go to Home page + await page.goto('/'); await page.screenshot({ path: 'tests/page-previews/home-mobile.png', fullPage: true }); }); @@ -13,8 +13,8 @@ test('Captures Home preview - mobile', async ({ page }) => { test('Captures Home preview - tablet', async ({ page }) => { await page.setViewportSize(devices['iPad Mini'].viewport); - // Go to Home - await page.goto('http://127.0.0.1:5173/'); + // Go to Home page + await page.goto('/'); await page.screenshot({ path: 'tests/page-previews/home-tablet.png', fullPage: true }); }); @@ -22,8 +22,8 @@ test('Captures Home preview - tablet', async ({ page }) => { test('Captures Home preview - desktop', async ({ page }) => { await page.setViewportSize(devices['Desktop Chrome'].viewport); - // Go to Home - await page.goto('http://127.0.0.1:5173/'); + // Go to Home page + await page.goto('/'); await page.screenshot({ path: 'tests/page-previews/home-desktop.png', fullPage: true }); }); diff --git a/tests/page-previews/2023-desktop.png b/tests/page-previews/2023-desktop.png index 9ea8585..d6fb9ef 100644 Binary files a/tests/page-previews/2023-desktop.png and b/tests/page-previews/2023-desktop.png differ diff --git a/tests/page-previews/2023-mobile.png b/tests/page-previews/2023-mobile.png index 882f75c..5df0d33 100644 Binary files a/tests/page-previews/2023-mobile.png and b/tests/page-previews/2023-mobile.png differ diff --git a/tests/page-previews/2023-tablet.png b/tests/page-previews/2023-tablet.png index 9f6058c..d02c737 100644 Binary files a/tests/page-previews/2023-tablet.png and b/tests/page-previews/2023-tablet.png differ diff --git a/tests/page-previews/about-desktop.png b/tests/page-previews/about-desktop.png index 01d7a09..7d625db 100644 Binary files a/tests/page-previews/about-desktop.png and b/tests/page-previews/about-desktop.png differ diff --git a/tests/page-previews/about-mobile.png b/tests/page-previews/about-mobile.png index d4a65af..7c51340 100644 Binary files a/tests/page-previews/about-mobile.png and b/tests/page-previews/about-mobile.png differ diff --git a/tests/page-previews/about-tablet.png b/tests/page-previews/about-tablet.png index f74be41..b6393d0 100644 Binary files a/tests/page-previews/about-tablet.png and b/tests/page-previews/about-tablet.png differ diff --git a/tests/page-previews/code-of-conduct-desktop.png b/tests/page-previews/code-of-conduct-desktop.png index 7f23be9..1952079 100644 Binary files a/tests/page-previews/code-of-conduct-desktop.png and b/tests/page-previews/code-of-conduct-desktop.png differ diff --git a/tests/page-previews/code-of-conduct-mobile.png b/tests/page-previews/code-of-conduct-mobile.png index 4991716..e9f1980 100644 Binary files a/tests/page-previews/code-of-conduct-mobile.png and b/tests/page-previews/code-of-conduct-mobile.png differ diff --git a/tests/page-previews/code-of-conduct-tablet.png b/tests/page-previews/code-of-conduct-tablet.png index 57c5a32..7672029 100644 Binary files a/tests/page-previews/code-of-conduct-tablet.png and b/tests/page-previews/code-of-conduct-tablet.png differ diff --git a/tests/page-previews/home-desktop.png b/tests/page-previews/home-desktop.png index 046f5da..11e7793 100644 Binary files a/tests/page-previews/home-desktop.png and b/tests/page-previews/home-desktop.png differ diff --git a/tests/page-previews/home-mobile.png b/tests/page-previews/home-mobile.png index dd73a14..7e6404d 100644 Binary files a/tests/page-previews/home-mobile.png and b/tests/page-previews/home-mobile.png differ diff --git a/tests/page-previews/home-tablet.png b/tests/page-previews/home-tablet.png index 4893d52..5565cb2 100644 Binary files a/tests/page-previews/home-tablet.png and b/tests/page-previews/home-tablet.png differ diff --git a/tests/page-previews/sponsorship-desktop.png b/tests/page-previews/sponsorship-desktop.png index 48c6b5e..a8a5f1c 100644 Binary files a/tests/page-previews/sponsorship-desktop.png and b/tests/page-previews/sponsorship-desktop.png differ diff --git a/tests/page-previews/sponsorship-mobile.png b/tests/page-previews/sponsorship-mobile.png index d1d77d8..90ac023 100644 Binary files a/tests/page-previews/sponsorship-mobile.png and b/tests/page-previews/sponsorship-mobile.png differ diff --git a/tests/page-previews/sponsorship-tablet.png b/tests/page-previews/sponsorship-tablet.png index 2f3ca34..7ec5d2f 100644 Binary files a/tests/page-previews/sponsorship-tablet.png and b/tests/page-previews/sponsorship-tablet.png differ diff --git a/vite.config.ts b/vite.config.ts index 1695034..70bd68c 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -1,6 +1,9 @@ import { sveltekit } from '@sveltejs/kit/vite'; +import dns from 'dns' import type { UserConfig } from 'vite'; +dns.setDefaultResultOrder('verbatim') + const config: UserConfig = { plugins: [sveltekit()] };