@dargmuesli/nuxt-vio-testing 13.1.16 → 13.1.18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -2
- package/e2e/specs/pages/root/error-404.spec.ts +0 -63
- package/e2e/specs/pages/root/error-404.spec.ts-snapshots/visual-regression-consistent-appearance-system-chromium-linux.png +0 -0
- package/e2e/specs/pages/root/error-404.spec.ts-snapshots/visual-regression-consistent-appearance-system-firefox-linux.png +0 -0
- package/e2e/specs/pages/root/error-404.spec.ts-snapshots/visual-regression-consistent-appearance-system-webkit-linux.png +0 -0
- package/e2e/specs/pages/root/index.spec.ts +0 -114
- package/e2e/specs/pages/root/index.spec.ts-snapshots/schema-org-graph-dev-chromium-linux.json +0 -30
- package/e2e/specs/pages/root/index.spec.ts-snapshots/schema-org-graph-dev-firefox-linux.json +0 -30
- package/e2e/specs/pages/root/index.spec.ts-snapshots/schema-org-graph-dev-webkit-linux.json +0 -30
- package/e2e/specs/pages/root/index.spec.ts-snapshots/schema-org-graph-node-chromium-linux.json +0 -1
- package/e2e/specs/pages/root/index.spec.ts-snapshots/schema-org-graph-node-firefox-linux.json +0 -1
- package/e2e/specs/pages/root/index.spec.ts-snapshots/schema-org-graph-node-webkit-linux.json +0 -1
- package/e2e/specs/pages/root/index.spec.ts-snapshots/schema-org-graph-static-chromium-linux.json +0 -1
- package/e2e/specs/pages/root/index.spec.ts-snapshots/schema-org-graph-static-firefox-linux.json +0 -1
- package/e2e/specs/pages/root/index.spec.ts-snapshots/schema-org-graph-static-webkit-linux.json +0 -1
- package/e2e/specs/pages/root/index.spec.ts-snapshots/visual-regression-consistent-appearance-dark-chromium-linux.png +0 -0
- package/e2e/specs/pages/root/index.spec.ts-snapshots/visual-regression-consistent-appearance-dark-firefox-linux.png +0 -0
- package/e2e/specs/pages/root/index.spec.ts-snapshots/visual-regression-consistent-appearance-dark-webkit-linux.png +0 -0
- package/e2e/specs/pages/root/index.spec.ts-snapshots/visual-regression-consistent-appearance-light-chromium-linux.png +0 -0
- package/e2e/specs/pages/root/index.spec.ts-snapshots/visual-regression-consistent-appearance-light-firefox-linux.png +0 -0
- package/e2e/specs/pages/root/index.spec.ts-snapshots/visual-regression-consistent-appearance-light-webkit-linux.png +0 -0
- package/e2e/specs/pages/root/index.spec.ts-snapshots/visual-regression-consistent-appearance-system-chromium-linux.png +0 -0
- package/e2e/specs/pages/root/index.spec.ts-snapshots/visual-regression-consistent-appearance-system-firefox-linux.png +0 -0
- package/e2e/specs/pages/root/index.spec.ts-snapshots/visual-regression-consistent-appearance-system-webkit-linux.png +0 -0
- package/e2e/specs/pages/root/index.spec.ts-snapshots/visual-regression-consistent-appearance-with-cookie-banner-chromium-linux.png +0 -0
- package/e2e/specs/pages/root/index.spec.ts-snapshots/visual-regression-consistent-appearance-with-cookie-banner-firefox-linux.png +0 -0
- package/e2e/specs/pages/root/index.spec.ts-snapshots/visual-regression-consistent-appearance-with-cookie-banner-webkit-linux.png +0 -0
- package/e2e/specs/pages/root/index.spec.ts-snapshots/visual-regression-generates-the-open-graph-image-1-chromium-linux.png +0 -0
- package/e2e/specs/pages/root/index.spec.ts-snapshots/visual-regression-generates-the-open-graph-image-1-firefox-linux.png +0 -0
- package/e2e/specs/pages/root/index.spec.ts-snapshots/visual-regression-generates-the-open-graph-image-1-webkit-linux.png +0 -0
- package/e2e/specs/pages/root/index.spec.ts-snapshots/visual-regression-generates-the-open-graph-image-2-chromium-linux.png +0 -0
- package/e2e/specs/pages/root/index.spec.ts-snapshots/visual-regression-generates-the-open-graph-image-2-firefox-linux.png +0 -0
- package/e2e/specs/pages/root/index.spec.ts-snapshots/visual-regression-generates-the-open-graph-image-2-webkit-linux.png +0 -0
- package/e2e/specs/pages/root/legal-notice.spec.ts +0 -50
- package/e2e/specs/pages/root/legal-notice.spec.ts-snapshots/schema-org-graph-dev-chromium-linux.json +0 -31
- package/e2e/specs/pages/root/legal-notice.spec.ts-snapshots/schema-org-graph-dev-firefox-linux.json +0 -31
- package/e2e/specs/pages/root/legal-notice.spec.ts-snapshots/schema-org-graph-dev-webkit-linux.json +0 -31
- package/e2e/specs/pages/root/legal-notice.spec.ts-snapshots/schema-org-graph-node-chromium-linux.json +0 -1
- package/e2e/specs/pages/root/legal-notice.spec.ts-snapshots/schema-org-graph-node-firefox-linux.json +0 -1
- package/e2e/specs/pages/root/legal-notice.spec.ts-snapshots/schema-org-graph-node-webkit-linux.json +0 -1
- package/e2e/specs/pages/root/legal-notice.spec.ts-snapshots/schema-org-graph-static-chromium-linux.json +0 -1
- package/e2e/specs/pages/root/legal-notice.spec.ts-snapshots/schema-org-graph-static-firefox-linux.json +0 -1
- package/e2e/specs/pages/root/legal-notice.spec.ts-snapshots/schema-org-graph-static-webkit-linux.json +0 -1
- package/e2e/specs/pages/root/legal-notice.spec.ts-snapshots/visual-regression-consistent-appearance-1-chromium-linux.png +0 -0
- package/e2e/specs/pages/root/legal-notice.spec.ts-snapshots/visual-regression-consistent-appearance-1-firefox-linux.png +0 -0
- package/e2e/specs/pages/root/legal-notice.spec.ts-snapshots/visual-regression-consistent-appearance-1-webkit-linux.png +0 -0
- package/e2e/specs/pages/root/legal-notice.spec.ts-snapshots/visual-regression-generates-the-open-graph-image-1-chromium-linux.png +0 -0
- package/e2e/specs/pages/root/legal-notice.spec.ts-snapshots/visual-regression-generates-the-open-graph-image-1-firefox-linux.png +0 -0
- package/e2e/specs/pages/root/legal-notice.spec.ts-snapshots/visual-regression-generates-the-open-graph-image-1-webkit-linux.png +0 -0
- package/e2e/specs/pages/root/legal-notice.spec.ts-snapshots/visual-regression-generates-the-open-graph-image-2-chromium-linux.png +0 -0
- package/e2e/specs/pages/root/legal-notice.spec.ts-snapshots/visual-regression-generates-the-open-graph-image-2-firefox-linux.png +0 -0
- package/e2e/specs/pages/root/legal-notice.spec.ts-snapshots/visual-regression-generates-the-open-graph-image-2-webkit-linux.png +0 -0
- package/e2e/specs/pages/root/privacy-policy.spec.ts +0 -40
- package/e2e/specs/pages/root/privacy-policy.spec.ts-snapshots/visual-regression-consistent-appearance-1-chromium-linux.png +0 -0
- package/e2e/specs/pages/root/privacy-policy.spec.ts-snapshots/visual-regression-consistent-appearance-1-firefox-linux.png +0 -0
- package/e2e/specs/pages/root/privacy-policy.spec.ts-snapshots/visual-regression-consistent-appearance-1-webkit-linux.png +0 -0
- package/e2e/specs/pages/root/privacy-policy.spec.ts-snapshots/visual-regression-generates-the-open-graph-image-1-chromium-linux.png +0 -0
- package/e2e/specs/pages/root/privacy-policy.spec.ts-snapshots/visual-regression-generates-the-open-graph-image-1-firefox-linux.png +0 -0
- package/e2e/specs/pages/root/privacy-policy.spec.ts-snapshots/visual-regression-generates-the-open-graph-image-1-webkit-linux.png +0 -0
- package/e2e/specs/pages/root/privacy-policy.spec.ts-snapshots/visual-regression-generates-the-open-graph-image-2-chromium-linux.png +0 -0
- package/e2e/specs/pages/root/privacy-policy.spec.ts-snapshots/visual-regression-generates-the-open-graph-image-2-firefox-linux.png +0 -0
- package/e2e/specs/pages/root/privacy-policy.spec.ts-snapshots/visual-regression-generates-the-open-graph-image-2-webkit-linux.png +0 -0
- package/e2e/specs/server/headers.spec.ts +0 -53
- package/e2e/specs/server/headers.spec.ts-snapshots/csp-production-chromium-linux.txt +0 -1
- package/e2e/specs/server/headers.spec.ts-snapshots/csp-production-firefox-linux.txt +0 -1
- package/e2e/specs/server/headers.spec.ts-snapshots/csp-production-webkit-linux.txt +0 -1
- package/e2e/specs/server/robots.spec.ts +0 -29
- package/e2e/specs/server/robots.spec.ts-snapshots/robots-txt-content-development-chromium-linux.txt +0 -4
- package/e2e/specs/server/robots.spec.ts-snapshots/robots-txt-content-development-firefox-linux.txt +0 -4
- package/e2e/specs/server/robots.spec.ts-snapshots/robots-txt-content-development-webkit-linux.txt +0 -4
- package/e2e/specs/server/robots.spec.ts-snapshots/robots-txt-content-production-chromium-linux.txt +0 -4
- package/e2e/specs/server/robots.spec.ts-snapshots/robots-txt-content-production-firefox-linux.txt +0 -4
- package/e2e/specs/server/robots.spec.ts-snapshots/robots-txt-content-production-webkit-linux.txt +0 -4
- package/e2e/specs/server/sitemap.spec.ts +0 -42
- package/e2e/specs/server/sitemap.spec.ts-snapshots/sitemap-content-de-chromium-linux.txt +0 -21
- package/e2e/specs/server/sitemap.spec.ts-snapshots/sitemap-content-de-firefox-linux.txt +0 -21
- package/e2e/specs/server/sitemap.spec.ts-snapshots/sitemap-content-de-webkit-linux.txt +0 -21
- package/e2e/specs/server/sitemap.spec.ts-snapshots/sitemap-content-en-chromium-linux.txt +0 -21
- package/e2e/specs/server/sitemap.spec.ts-snapshots/sitemap-content-en-firefox-linux.txt +0 -21
- package/e2e/specs/server/sitemap.spec.ts-snapshots/sitemap-content-en-webkit-linux.txt +0 -21
package/package.json
CHANGED
|
@@ -18,7 +18,6 @@
|
|
|
18
18
|
},
|
|
19
19
|
"files": [
|
|
20
20
|
"e2e/fixtures",
|
|
21
|
-
"e2e/specs",
|
|
22
21
|
"e2e/utils",
|
|
23
22
|
"package.json",
|
|
24
23
|
"playwright.config.ts",
|
|
@@ -55,5 +54,5 @@
|
|
|
55
54
|
"test:e2e:server:static": "cross-env NODE_ENV=production PORT=\"${PORT:-3002}\" SITE_URL=\"${SITE_URL:-https://localhost:3002}\" VIO_SERVER=static pnpm run test:e2e"
|
|
56
55
|
},
|
|
57
56
|
"type": "module",
|
|
58
|
-
"version": "13.1.
|
|
57
|
+
"version": "13.1.18"
|
|
59
58
|
}
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
import { test, expect } from '@playwright/test'
|
|
2
|
-
|
|
3
|
-
import { SITE_URL } from '#tests/e2e/utils/constants'
|
|
4
|
-
import { COOKIE_CONTROL_DEFAULT, PAGE_READY } from '../../../utils/constants'
|
|
5
|
-
|
|
6
|
-
test.beforeEach(async ({ context }) => {
|
|
7
|
-
await context.addCookies([
|
|
8
|
-
{
|
|
9
|
-
name: 'ncc_c',
|
|
10
|
-
value: COOKIE_CONTROL_DEFAULT,
|
|
11
|
-
url: SITE_URL,
|
|
12
|
-
},
|
|
13
|
-
])
|
|
14
|
-
})
|
|
15
|
-
|
|
16
|
-
test.describe('page', () => {
|
|
17
|
-
test('status code', async ({ request }) => {
|
|
18
|
-
const resp = await request.get('/does-not-exit')
|
|
19
|
-
expect(resp.status()).toBe(404)
|
|
20
|
-
})
|
|
21
|
-
})
|
|
22
|
-
|
|
23
|
-
test.describe('internationalization', () => {
|
|
24
|
-
const textEnglish = '404 - Not Found'
|
|
25
|
-
const textGerman = '404 - Nicht gefunden'
|
|
26
|
-
|
|
27
|
-
test('English translations', async ({ page }) => {
|
|
28
|
-
await page.goto('/does-not-exit')
|
|
29
|
-
await expect(page.getByText(textEnglish)).toBeVisible()
|
|
30
|
-
})
|
|
31
|
-
|
|
32
|
-
test('German translations', async ({ page }) => {
|
|
33
|
-
await page.goto('/de/does-not-exit')
|
|
34
|
-
await expect(page.getByText(textGerman)).toBeVisible()
|
|
35
|
-
})
|
|
36
|
-
})
|
|
37
|
-
|
|
38
|
-
test.describe('visual regression', () => {
|
|
39
|
-
test('consistent appearance', async ({ page }) => {
|
|
40
|
-
await page.goto('/does-not-exit')
|
|
41
|
-
await PAGE_READY({
|
|
42
|
-
page,
|
|
43
|
-
options: {
|
|
44
|
-
isLoading: false,
|
|
45
|
-
},
|
|
46
|
-
})
|
|
47
|
-
await expect(page).toHaveScreenshot(
|
|
48
|
-
'visual-regression-consistent-appearance-system.png',
|
|
49
|
-
{
|
|
50
|
-
fullPage: true,
|
|
51
|
-
},
|
|
52
|
-
)
|
|
53
|
-
})
|
|
54
|
-
|
|
55
|
-
// TODO: enable (https://github.com/harlan-zw/nuxt-og-image/issues/81)
|
|
56
|
-
// test('generates the open graph image', async ({ page }) => {
|
|
57
|
-
// await page.goto('/__og-image__/image/does-not-exist/og.png')
|
|
58
|
-
// await expect(page).toHaveScreenshot({ fullPage: true })
|
|
59
|
-
|
|
60
|
-
// await page.goto('/__og-image__/image/de/does-not-exist/og.png')
|
|
61
|
-
// await expect(page).toHaveScreenshot({ fullPage: true })
|
|
62
|
-
// })
|
|
63
|
-
})
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -1,114 +0,0 @@
|
|
|
1
|
-
import AxeBuilder from '@axe-core/playwright'
|
|
2
|
-
import { test, expect } from '@playwright/test'
|
|
3
|
-
|
|
4
|
-
import { SITE_URL } from '#tests/e2e/utils/constants'
|
|
5
|
-
import { COOKIE_CONTROL_DEFAULT, PAGE_READY } from '../../../utils/constants'
|
|
6
|
-
import { testMetadata } from '../../../utils/tests'
|
|
7
|
-
|
|
8
|
-
test.beforeEach(async ({ context }) => {
|
|
9
|
-
await context.addCookies([
|
|
10
|
-
{
|
|
11
|
-
name: 'ncc_c',
|
|
12
|
-
value: COOKIE_CONTROL_DEFAULT,
|
|
13
|
-
url: SITE_URL,
|
|
14
|
-
},
|
|
15
|
-
])
|
|
16
|
-
})
|
|
17
|
-
|
|
18
|
-
test.describe('accessibility', () => {
|
|
19
|
-
test('violations', async ({ page }) => {
|
|
20
|
-
await page.goto('/')
|
|
21
|
-
await PAGE_READY({ page })
|
|
22
|
-
const accessibilityScanResults = await new AxeBuilder({ page }).analyze()
|
|
23
|
-
expect(
|
|
24
|
-
accessibilityScanResults.violations
|
|
25
|
-
.map(
|
|
26
|
-
(x) =>
|
|
27
|
-
`${x.id}\n${x.nodes.map(
|
|
28
|
-
(y) => `${y.failureSummary}\n(${y.html}\n(${y.target})`,
|
|
29
|
-
)}`,
|
|
30
|
-
)
|
|
31
|
-
.join('\n'),
|
|
32
|
-
).toEqual('')
|
|
33
|
-
// expect(accessibilityScanResults.violations.length).toEqual(0)
|
|
34
|
-
})
|
|
35
|
-
})
|
|
36
|
-
|
|
37
|
-
test.describe('page', () => {
|
|
38
|
-
test('status code', async ({ request }) => {
|
|
39
|
-
const resp = await request.get('/')
|
|
40
|
-
expect(resp.status()).toBe(200)
|
|
41
|
-
})
|
|
42
|
-
test('metadata', async ({ page }) => {
|
|
43
|
-
await testMetadata({ page, path: '/', title: 'Vio Playground' })
|
|
44
|
-
})
|
|
45
|
-
})
|
|
46
|
-
|
|
47
|
-
test.describe('internationalization', () => {
|
|
48
|
-
const textEnglish = 'Please check your input 🙈'
|
|
49
|
-
const textGerman = 'Bitte überprüfe deine Eingaben 🙈'
|
|
50
|
-
|
|
51
|
-
test('English translations', async ({ page }) => {
|
|
52
|
-
await page.goto('/')
|
|
53
|
-
await expect(page.getByText(textEnglish)).toBeVisible()
|
|
54
|
-
})
|
|
55
|
-
|
|
56
|
-
test('German translations', async ({ page }) => {
|
|
57
|
-
await page.goto('/de')
|
|
58
|
-
await expect(page.getByText(textGerman)).toBeVisible()
|
|
59
|
-
})
|
|
60
|
-
})
|
|
61
|
-
|
|
62
|
-
test.describe('visual regression', () => {
|
|
63
|
-
test('consistent appearance', async ({ page }) => {
|
|
64
|
-
await page.goto('/')
|
|
65
|
-
await PAGE_READY({ page })
|
|
66
|
-
await expect(page).toHaveScreenshot(
|
|
67
|
-
'visual-regression-consistent-appearance-system.png',
|
|
68
|
-
{
|
|
69
|
-
fullPage: true,
|
|
70
|
-
},
|
|
71
|
-
)
|
|
72
|
-
|
|
73
|
-
await page.emulateMedia({ colorScheme: 'light' })
|
|
74
|
-
await expect(page).toHaveScreenshot(
|
|
75
|
-
'visual-regression-consistent-appearance-light.png',
|
|
76
|
-
{
|
|
77
|
-
fullPage: true,
|
|
78
|
-
},
|
|
79
|
-
)
|
|
80
|
-
|
|
81
|
-
await page.emulateMedia({ colorScheme: 'dark' })
|
|
82
|
-
await expect(page).toHaveScreenshot(
|
|
83
|
-
'visual-regression-consistent-appearance-dark.png',
|
|
84
|
-
{
|
|
85
|
-
fullPage: true,
|
|
86
|
-
},
|
|
87
|
-
)
|
|
88
|
-
})
|
|
89
|
-
|
|
90
|
-
test('consistent appearance with cookie banner', async ({
|
|
91
|
-
context,
|
|
92
|
-
page,
|
|
93
|
-
}) => {
|
|
94
|
-
// TODO: only remove the cookie control cookie (https://github.com/microsoft/playwright/issues/10143)
|
|
95
|
-
await context.clearCookies()
|
|
96
|
-
|
|
97
|
-
await page.goto('/')
|
|
98
|
-
await PAGE_READY({ page, options: { cookieControl: false } })
|
|
99
|
-
await expect(page).toHaveScreenshot(
|
|
100
|
-
'visual-regression-consistent-appearance-with-cookie-banner.png',
|
|
101
|
-
{
|
|
102
|
-
fullPage: true,
|
|
103
|
-
},
|
|
104
|
-
)
|
|
105
|
-
})
|
|
106
|
-
|
|
107
|
-
test('generates the open graph image', async ({ page }) => {
|
|
108
|
-
await page.goto('/__og-image__/image/og.png')
|
|
109
|
-
await expect(page).toHaveScreenshot({ fullPage: true })
|
|
110
|
-
|
|
111
|
-
await page.goto('/__og-image__/image/de/og.png')
|
|
112
|
-
await expect(page).toHaveScreenshot({ fullPage: true })
|
|
113
|
-
})
|
|
114
|
-
})
|
package/e2e/specs/pages/root/index.spec.ts-snapshots/schema-org-graph-dev-chromium-linux.json
DELETED
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"@context": "https://schema.org",
|
|
3
|
-
"@graph": [
|
|
4
|
-
{
|
|
5
|
-
"@id": "http://localhost:3000/#website",
|
|
6
|
-
"@type": "WebSite",
|
|
7
|
-
"description": "Vio is @dargmuesli's Nuxt layer.",
|
|
8
|
-
"inLanguage": "en",
|
|
9
|
-
"name": "Vio Playground",
|
|
10
|
-
"url": "http://localhost:3000"
|
|
11
|
-
},
|
|
12
|
-
{
|
|
13
|
-
"@id": "http://localhost:3000/#webpage",
|
|
14
|
-
"@type": "WebPage",
|
|
15
|
-
"description": "Vio is @dargmuesli's Nuxt layer.",
|
|
16
|
-
"url": "http://localhost:3000",
|
|
17
|
-
"isPartOf": {
|
|
18
|
-
"@id": "http://localhost:3000/#website"
|
|
19
|
-
},
|
|
20
|
-
"potentialAction": [
|
|
21
|
-
{
|
|
22
|
-
"@type": "ReadAction",
|
|
23
|
-
"target": [
|
|
24
|
-
"http://localhost:3000"
|
|
25
|
-
]
|
|
26
|
-
}
|
|
27
|
-
]
|
|
28
|
-
}
|
|
29
|
-
]
|
|
30
|
-
}
|
package/e2e/specs/pages/root/index.spec.ts-snapshots/schema-org-graph-dev-firefox-linux.json
DELETED
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"@context": "https://schema.org",
|
|
3
|
-
"@graph": [
|
|
4
|
-
{
|
|
5
|
-
"@id": "http://localhost:3000/#website",
|
|
6
|
-
"@type": "WebSite",
|
|
7
|
-
"description": "Vio is @dargmuesli's Nuxt layer.",
|
|
8
|
-
"inLanguage": "en",
|
|
9
|
-
"name": "Vio Playground",
|
|
10
|
-
"url": "http://localhost:3000"
|
|
11
|
-
},
|
|
12
|
-
{
|
|
13
|
-
"@id": "http://localhost:3000/#webpage",
|
|
14
|
-
"@type": "WebPage",
|
|
15
|
-
"description": "Vio is @dargmuesli's Nuxt layer.",
|
|
16
|
-
"url": "http://localhost:3000",
|
|
17
|
-
"isPartOf": {
|
|
18
|
-
"@id": "http://localhost:3000/#website"
|
|
19
|
-
},
|
|
20
|
-
"potentialAction": [
|
|
21
|
-
{
|
|
22
|
-
"@type": "ReadAction",
|
|
23
|
-
"target": [
|
|
24
|
-
"http://localhost:3000"
|
|
25
|
-
]
|
|
26
|
-
}
|
|
27
|
-
]
|
|
28
|
-
}
|
|
29
|
-
]
|
|
30
|
-
}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"@context": "https://schema.org",
|
|
3
|
-
"@graph": [
|
|
4
|
-
{
|
|
5
|
-
"@id": "http://localhost:3000/#website",
|
|
6
|
-
"@type": "WebSite",
|
|
7
|
-
"description": "Vio is @dargmuesli's Nuxt layer.",
|
|
8
|
-
"inLanguage": "en",
|
|
9
|
-
"name": "Vio Playground",
|
|
10
|
-
"url": "http://localhost:3000"
|
|
11
|
-
},
|
|
12
|
-
{
|
|
13
|
-
"@id": "http://localhost:3000/#webpage",
|
|
14
|
-
"@type": "WebPage",
|
|
15
|
-
"description": "Vio is @dargmuesli's Nuxt layer.",
|
|
16
|
-
"url": "http://localhost:3000",
|
|
17
|
-
"isPartOf": {
|
|
18
|
-
"@id": "http://localhost:3000/#website"
|
|
19
|
-
},
|
|
20
|
-
"potentialAction": [
|
|
21
|
-
{
|
|
22
|
-
"@type": "ReadAction",
|
|
23
|
-
"target": [
|
|
24
|
-
"http://localhost:3000"
|
|
25
|
-
]
|
|
26
|
-
}
|
|
27
|
-
]
|
|
28
|
-
}
|
|
29
|
-
]
|
|
30
|
-
}
|
package/e2e/specs/pages/root/index.spec.ts-snapshots/schema-org-graph-node-chromium-linux.json
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"@context":"https://schema.org","@graph":[{"@id":"http://localhost:3001/#website","@type":"WebSite","description":"Vio is @dargmuesli's Nuxt layer.","inLanguage":"en","name":"Vio Playground","url":"http://localhost:3001"},{"@id":"http://localhost:3001/#webpage","@type":"WebPage","description":"Vio is @dargmuesli's Nuxt layer.","name":"Vio Playground","url":"http://localhost:3001","isPartOf":{"@id":"http://localhost:3001/#website"},"potentialAction":[{"@type":"ReadAction","target":["http://localhost:3001"]}]}]}
|
package/e2e/specs/pages/root/index.spec.ts-snapshots/schema-org-graph-node-firefox-linux.json
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"@context":"https://schema.org","@graph":[{"@id":"http://localhost:3001/#website","@type":"WebSite","description":"Vio is @dargmuesli's Nuxt layer.","inLanguage":"en","name":"Vio Playground","url":"http://localhost:3001"},{"@id":"http://localhost:3001/#webpage","@type":"WebPage","description":"Vio is @dargmuesli's Nuxt layer.","name":"Vio Playground","url":"http://localhost:3001","isPartOf":{"@id":"http://localhost:3001/#website"},"potentialAction":[{"@type":"ReadAction","target":["http://localhost:3001"]}]}]}
|
package/e2e/specs/pages/root/index.spec.ts-snapshots/schema-org-graph-node-webkit-linux.json
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"@context":"https://schema.org","@graph":[{"@id":"http://localhost:3001/#website","@type":"WebSite","description":"Vio is @dargmuesli's Nuxt layer.","inLanguage":"en","name":"Vio Playground","url":"http://localhost:3001"},{"@id":"http://localhost:3001/#webpage","@type":"WebPage","description":"Vio is @dargmuesli's Nuxt layer.","name":"Vio Playground","url":"http://localhost:3001","isPartOf":{"@id":"http://localhost:3001/#website"},"potentialAction":[{"@type":"ReadAction","target":["http://localhost:3001"]}]}]}
|
package/e2e/specs/pages/root/index.spec.ts-snapshots/schema-org-graph-static-chromium-linux.json
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"@context":"https://schema.org","@graph":[{"@id":"https://localhost:3002/#website","@type":"WebSite","description":"Vio is @dargmuesli's Nuxt layer.","inLanguage":"en","name":"Vio Playground","url":"https://localhost:3002"},{"@id":"https://localhost:3002/#webpage","@type":"WebPage","description":"Vio is @dargmuesli's Nuxt layer.","name":"Vio Playground","url":"https://localhost:3002","isPartOf":{"@id":"https://localhost:3002/#website"},"potentialAction":[{"@type":"ReadAction","target":["https://localhost:3002"]}]}]}
|
package/e2e/specs/pages/root/index.spec.ts-snapshots/schema-org-graph-static-firefox-linux.json
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"@context":"https://schema.org","@graph":[{"@id":"https://localhost:3002/#website","@type":"WebSite","description":"Vio is @dargmuesli's Nuxt layer.","inLanguage":"en","name":"Vio Playground","url":"https://localhost:3002"},{"@id":"https://localhost:3002/#webpage","@type":"WebPage","description":"Vio is @dargmuesli's Nuxt layer.","name":"Vio Playground","url":"https://localhost:3002","isPartOf":{"@id":"https://localhost:3002/#website"},"potentialAction":[{"@type":"ReadAction","target":["https://localhost:3002"]}]}]}
|
package/e2e/specs/pages/root/index.spec.ts-snapshots/schema-org-graph-static-webkit-linux.json
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"@context":"https://schema.org","@graph":[{"@id":"https://localhost:3002/#website","@type":"WebSite","description":"Vio is @dargmuesli's Nuxt layer.","inLanguage":"en","name":"Vio Playground","url":"https://localhost:3002"},{"@id":"https://localhost:3002/#webpage","@type":"WebPage","description":"Vio is @dargmuesli's Nuxt layer.","name":"Vio Playground","url":"https://localhost:3002","isPartOf":{"@id":"https://localhost:3002/#website"},"potentialAction":[{"@type":"ReadAction","target":["https://localhost:3002"]}]}]}
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
import { test, expect } from '@playwright/test'
|
|
2
|
-
|
|
3
|
-
import { SITE_URL } from '#tests/e2e/utils/constants'
|
|
4
|
-
import { COOKIE_CONTROL_DEFAULT, PAGE_READY } from '../../../utils/constants'
|
|
5
|
-
import { testMetadata } from '../../../utils/tests'
|
|
6
|
-
|
|
7
|
-
const PAGE_PATH = '/legal-notice'
|
|
8
|
-
|
|
9
|
-
test.beforeEach(async ({ context }) => {
|
|
10
|
-
await context.addCookies([
|
|
11
|
-
{
|
|
12
|
-
name: 'ncc_c',
|
|
13
|
-
value: COOKIE_CONTROL_DEFAULT,
|
|
14
|
-
url: SITE_URL,
|
|
15
|
-
},
|
|
16
|
-
])
|
|
17
|
-
})
|
|
18
|
-
|
|
19
|
-
test.describe('page', () => {
|
|
20
|
-
test('status code', async ({ request }) => {
|
|
21
|
-
const resp = await request.get(PAGE_PATH)
|
|
22
|
-
expect(resp.status()).toBe(200)
|
|
23
|
-
})
|
|
24
|
-
|
|
25
|
-
test('metadata', async ({ page }) => {
|
|
26
|
-
await testMetadata({
|
|
27
|
-
page,
|
|
28
|
-
path: PAGE_PATH,
|
|
29
|
-
title: 'Legal notice · Vio Playground',
|
|
30
|
-
})
|
|
31
|
-
})
|
|
32
|
-
})
|
|
33
|
-
|
|
34
|
-
test.describe('visual regression', () => {
|
|
35
|
-
test('consistent appearance', async ({ page }) => {
|
|
36
|
-
await page.goto(PAGE_PATH)
|
|
37
|
-
await PAGE_READY({ page })
|
|
38
|
-
await expect(page).toHaveScreenshot({
|
|
39
|
-
fullPage: true,
|
|
40
|
-
})
|
|
41
|
-
})
|
|
42
|
-
|
|
43
|
-
test('generates the open graph image', async ({ page }) => {
|
|
44
|
-
await page.goto('/__og-image__/image/legal-notice/og.png')
|
|
45
|
-
await expect(page).toHaveScreenshot({ fullPage: true })
|
|
46
|
-
|
|
47
|
-
await page.goto('/__og-image__/image/de/legal-notice/og.png')
|
|
48
|
-
await expect(page).toHaveScreenshot({ fullPage: true })
|
|
49
|
-
})
|
|
50
|
-
})
|
package/e2e/specs/pages/root/legal-notice.spec.ts-snapshots/schema-org-graph-dev-chromium-linux.json
DELETED
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"@context": "https://schema.org",
|
|
3
|
-
"@graph": [
|
|
4
|
-
{
|
|
5
|
-
"@id": "http://localhost:3000/#website",
|
|
6
|
-
"@type": "WebSite",
|
|
7
|
-
"description": "Vio is @dargmuesli's Nuxt layer.",
|
|
8
|
-
"inLanguage": "en",
|
|
9
|
-
"name": "Vio Playground",
|
|
10
|
-
"url": "http://localhost:3000"
|
|
11
|
-
},
|
|
12
|
-
{
|
|
13
|
-
"@id": "http://localhost:3000/legal-notice/#webpage",
|
|
14
|
-
"@type": "WebPage",
|
|
15
|
-
"description": "Vio is @dargmuesli's Nuxt layer.",
|
|
16
|
-
"name": "Legal Notice",
|
|
17
|
-
"url": "http://localhost:3000/legal-notice",
|
|
18
|
-
"isPartOf": {
|
|
19
|
-
"@id": "http://localhost:3000/#website"
|
|
20
|
-
},
|
|
21
|
-
"potentialAction": [
|
|
22
|
-
{
|
|
23
|
-
"@type": "ReadAction",
|
|
24
|
-
"target": [
|
|
25
|
-
"http://localhost:3000/legal-notice"
|
|
26
|
-
]
|
|
27
|
-
}
|
|
28
|
-
]
|
|
29
|
-
}
|
|
30
|
-
]
|
|
31
|
-
}
|
package/e2e/specs/pages/root/legal-notice.spec.ts-snapshots/schema-org-graph-dev-firefox-linux.json
DELETED
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"@context": "https://schema.org",
|
|
3
|
-
"@graph": [
|
|
4
|
-
{
|
|
5
|
-
"@id": "http://localhost:3000/#website",
|
|
6
|
-
"@type": "WebSite",
|
|
7
|
-
"description": "Vio is @dargmuesli's Nuxt layer.",
|
|
8
|
-
"inLanguage": "en",
|
|
9
|
-
"name": "Vio Playground",
|
|
10
|
-
"url": "http://localhost:3000"
|
|
11
|
-
},
|
|
12
|
-
{
|
|
13
|
-
"@id": "http://localhost:3000/legal-notice/#webpage",
|
|
14
|
-
"@type": "WebPage",
|
|
15
|
-
"description": "Vio is @dargmuesli's Nuxt layer.",
|
|
16
|
-
"name": "Legal Notice",
|
|
17
|
-
"url": "http://localhost:3000/legal-notice",
|
|
18
|
-
"isPartOf": {
|
|
19
|
-
"@id": "http://localhost:3000/#website"
|
|
20
|
-
},
|
|
21
|
-
"potentialAction": [
|
|
22
|
-
{
|
|
23
|
-
"@type": "ReadAction",
|
|
24
|
-
"target": [
|
|
25
|
-
"http://localhost:3000/legal-notice"
|
|
26
|
-
]
|
|
27
|
-
}
|
|
28
|
-
]
|
|
29
|
-
}
|
|
30
|
-
]
|
|
31
|
-
}
|
package/e2e/specs/pages/root/legal-notice.spec.ts-snapshots/schema-org-graph-dev-webkit-linux.json
DELETED
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"@context": "https://schema.org",
|
|
3
|
-
"@graph": [
|
|
4
|
-
{
|
|
5
|
-
"@id": "http://localhost:3000/#website",
|
|
6
|
-
"@type": "WebSite",
|
|
7
|
-
"description": "Vio is @dargmuesli's Nuxt layer.",
|
|
8
|
-
"inLanguage": "en",
|
|
9
|
-
"name": "Vio Playground",
|
|
10
|
-
"url": "http://localhost:3000"
|
|
11
|
-
},
|
|
12
|
-
{
|
|
13
|
-
"@id": "http://localhost:3000/legal-notice/#webpage",
|
|
14
|
-
"@type": "WebPage",
|
|
15
|
-
"description": "Vio is @dargmuesli's Nuxt layer.",
|
|
16
|
-
"name": "Legal Notice",
|
|
17
|
-
"url": "http://localhost:3000/legal-notice",
|
|
18
|
-
"isPartOf": {
|
|
19
|
-
"@id": "http://localhost:3000/#website"
|
|
20
|
-
},
|
|
21
|
-
"potentialAction": [
|
|
22
|
-
{
|
|
23
|
-
"@type": "ReadAction",
|
|
24
|
-
"target": [
|
|
25
|
-
"http://localhost:3000/legal-notice"
|
|
26
|
-
]
|
|
27
|
-
}
|
|
28
|
-
]
|
|
29
|
-
}
|
|
30
|
-
]
|
|
31
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"@context":"https://schema.org","@graph":[{"@id":"http://localhost:3001/#website","@type":"WebSite","description":"Vio is @dargmuesli's Nuxt layer.","inLanguage":"en","name":"Vio Playground","url":"http://localhost:3001"},{"@id":"http://localhost:3001/legal-notice/#webpage","@type":"WebPage","description":"Vio is @dargmuesli's Nuxt layer.","name":"Legal notice","url":"http://localhost:3001/legal-notice","isPartOf":{"@id":"http://localhost:3001/#website"},"potentialAction":[{"@type":"ReadAction","target":["http://localhost:3001/legal-notice"]}]}]}
|
package/e2e/specs/pages/root/legal-notice.spec.ts-snapshots/schema-org-graph-node-firefox-linux.json
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"@context":"https://schema.org","@graph":[{"@id":"http://localhost:3001/#website","@type":"WebSite","description":"Vio is @dargmuesli's Nuxt layer.","inLanguage":"en","name":"Vio Playground","url":"http://localhost:3001"},{"@id":"http://localhost:3001/legal-notice/#webpage","@type":"WebPage","description":"Vio is @dargmuesli's Nuxt layer.","name":"Legal notice","url":"http://localhost:3001/legal-notice","isPartOf":{"@id":"http://localhost:3001/#website"},"potentialAction":[{"@type":"ReadAction","target":["http://localhost:3001/legal-notice"]}]}]}
|
package/e2e/specs/pages/root/legal-notice.spec.ts-snapshots/schema-org-graph-node-webkit-linux.json
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"@context":"https://schema.org","@graph":[{"@id":"http://localhost:3001/#website","@type":"WebSite","description":"Vio is @dargmuesli's Nuxt layer.","inLanguage":"en","name":"Vio Playground","url":"http://localhost:3001"},{"@id":"http://localhost:3001/legal-notice/#webpage","@type":"WebPage","description":"Vio is @dargmuesli's Nuxt layer.","name":"Legal notice","url":"http://localhost:3001/legal-notice","isPartOf":{"@id":"http://localhost:3001/#website"},"potentialAction":[{"@type":"ReadAction","target":["http://localhost:3001/legal-notice"]}]}]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"@context":"https://schema.org","@graph":[{"@id":"https://localhost:3002/#website","@type":"WebSite","description":"Vio is @dargmuesli's Nuxt layer.","inLanguage":"en","name":"Vio Playground","url":"https://localhost:3002"},{"@id":"https://localhost:3002/legal-notice/#webpage","@type":"WebPage","description":"Vio is @dargmuesli's Nuxt layer.","name":"Legal notice","url":"https://localhost:3002/legal-notice","isPartOf":{"@id":"https://localhost:3002/#website"},"potentialAction":[{"@type":"ReadAction","target":["https://localhost:3002/legal-notice"]}]}]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"@context":"https://schema.org","@graph":[{"@id":"https://localhost:3002/#website","@type":"WebSite","description":"Vio is @dargmuesli's Nuxt layer.","inLanguage":"en","name":"Vio Playground","url":"https://localhost:3002"},{"@id":"https://localhost:3002/legal-notice/#webpage","@type":"WebPage","description":"Vio is @dargmuesli's Nuxt layer.","name":"Legal notice","url":"https://localhost:3002/legal-notice","isPartOf":{"@id":"https://localhost:3002/#website"},"potentialAction":[{"@type":"ReadAction","target":["https://localhost:3002/legal-notice"]}]}]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"@context":"https://schema.org","@graph":[{"@id":"https://localhost:3002/#website","@type":"WebSite","description":"Vio is @dargmuesli's Nuxt layer.","inLanguage":"en","name":"Vio Playground","url":"https://localhost:3002"},{"@id":"https://localhost:3002/legal-notice/#webpage","@type":"WebPage","description":"Vio is @dargmuesli's Nuxt layer.","name":"Legal notice","url":"https://localhost:3002/legal-notice","isPartOf":{"@id":"https://localhost:3002/#website"},"potentialAction":[{"@type":"ReadAction","target":["https://localhost:3002/legal-notice"]}]}]}
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
import { test, expect } from '@playwright/test'
|
|
2
|
-
|
|
3
|
-
import { SITE_URL } from '#tests/e2e/utils/constants'
|
|
4
|
-
import { COOKIE_CONTROL_DEFAULT, PAGE_READY } from '../../../utils/constants'
|
|
5
|
-
|
|
6
|
-
test.beforeEach(async ({ context }) => {
|
|
7
|
-
await context.addCookies([
|
|
8
|
-
{
|
|
9
|
-
name: 'ncc_c',
|
|
10
|
-
value: COOKIE_CONTROL_DEFAULT,
|
|
11
|
-
url: SITE_URL,
|
|
12
|
-
},
|
|
13
|
-
])
|
|
14
|
-
})
|
|
15
|
-
|
|
16
|
-
test.describe('page', () => {
|
|
17
|
-
test('status code', async ({ request }) => {
|
|
18
|
-
const resp = await request.get('/privacy-policy')
|
|
19
|
-
expect(resp.status()).toBe(200)
|
|
20
|
-
})
|
|
21
|
-
})
|
|
22
|
-
|
|
23
|
-
test.describe('visual regression', () => {
|
|
24
|
-
test('consistent appearance', async ({ page }) => {
|
|
25
|
-
await page.goto('/privacy-policy')
|
|
26
|
-
await PAGE_READY({ page })
|
|
27
|
-
await expect(page).toHaveScreenshot({
|
|
28
|
-
fullPage: true,
|
|
29
|
-
timeout: 10000,
|
|
30
|
-
})
|
|
31
|
-
})
|
|
32
|
-
|
|
33
|
-
test('generates the open graph image', async ({ page }) => {
|
|
34
|
-
await page.goto('/__og-image__/image/privacy-policy/og.png')
|
|
35
|
-
await expect(page).toHaveScreenshot({ fullPage: true })
|
|
36
|
-
|
|
37
|
-
await page.goto('/__og-image__/image/de/privacy-policy/og.png')
|
|
38
|
-
await expect(page).toHaveScreenshot({ fullPage: true })
|
|
39
|
-
})
|
|
40
|
-
})
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
import { test, expect } from '@playwright/test'
|
|
2
|
-
|
|
3
|
-
test.describe('headers middleware', () => {
|
|
4
|
-
test('sets the correct security headers', async ({ request }) => {
|
|
5
|
-
if (process.env.VIO_SERVER === 'static') return // TODO: use single snapshot and all servers
|
|
6
|
-
|
|
7
|
-
const headers = (await request.get('/')).headers()
|
|
8
|
-
|
|
9
|
-
expect(headers.connection).toStrictEqual('close')
|
|
10
|
-
expect(headers['access-control-allow-origin']).toStrictEqual('*')
|
|
11
|
-
expect(
|
|
12
|
-
headers['content-security-policy'].replace(/nonce-[^']+/g, 'nonce'),
|
|
13
|
-
).toMatchSnapshot(
|
|
14
|
-
`csp-${
|
|
15
|
-
process.env.NODE_ENV === 'production' ? 'production' : 'development'
|
|
16
|
-
}.txt`,
|
|
17
|
-
)
|
|
18
|
-
expect(headers['content-type']).toStrictEqual('text/html;charset=utf-8')
|
|
19
|
-
expect(headers['cross-origin-embedder-policy']).toStrictEqual(
|
|
20
|
-
process.env.NODE_ENV === 'production' ? 'require-corp' : 'unsafe-none',
|
|
21
|
-
) // https://stackoverflow.com/questions/71904052/getting-notsameoriginafterdefaultedtosameoriginbycoep-error-with-helmet
|
|
22
|
-
expect(headers['cross-origin-opener-policy']).toStrictEqual('same-origin')
|
|
23
|
-
expect(headers['cross-origin-resource-policy']).toStrictEqual('same-origin')
|
|
24
|
-
expect('expect-ct' in headers).toBeFalsy() // deprecated (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Expect-CT)
|
|
25
|
-
expect(headers.nel).toStrictEqual(
|
|
26
|
-
'\'{"report_to":"csp-endpoint","max_age":31536000,"include_subdomains":true}\'',
|
|
27
|
-
)
|
|
28
|
-
expect(headers['origin-agent-cluster']).toStrictEqual('?1')
|
|
29
|
-
expect(headers['permissions-policy']).toStrictEqual(
|
|
30
|
-
'accelerometer=(), autoplay=(), camera=(), display-capture=(), encrypted-media=(), fullscreen=(), geolocation=(), gyroscope=(), magnetometer=(), microphone=(), midi=(), payment=(), picture-in-picture=(), publickey-credentials-get=(), screen-wake-lock=(), sync-xhr=(self), usb=(), web-share=(), xr-spatial-tracking=()',
|
|
31
|
-
)
|
|
32
|
-
expect(headers['referrer-policy']).toStrictEqual('no-referrer')
|
|
33
|
-
expect(headers['report-to']).toStrictEqual(
|
|
34
|
-
'{"group":"csp-endpoint","max_age":10886400,"endpoints":[{"url":"https://o4507259039973376.ingest.de.sentry.io/api/4507260561653840/security/?sentry_key=1e53178c1dba9b39147de4a21853a3e3"}],"include_subdomains":true}}',
|
|
35
|
-
)
|
|
36
|
-
|
|
37
|
-
if (process.env.NODE_ENV === 'production') {
|
|
38
|
-
expect(headers['strict-transport-security']).toStrictEqual(
|
|
39
|
-
'max-age=31536000; includeSubDomains; preload;',
|
|
40
|
-
)
|
|
41
|
-
} else {
|
|
42
|
-
expect('strict-transport-security' in headers).toBeFalsy()
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
expect(headers['x-content-type-options']).toStrictEqual('nosniff')
|
|
46
|
-
expect(headers['x-dns-prefetch-control']).toStrictEqual('off')
|
|
47
|
-
expect(headers['x-download-options']).toStrictEqual('noopen')
|
|
48
|
-
expect(headers['x-frame-options']).toStrictEqual('DENY')
|
|
49
|
-
expect(headers['x-permitted-cross-domain-policies']).toStrictEqual('none')
|
|
50
|
-
expect('x-powered-by' in headers).toBeFalsy()
|
|
51
|
-
expect(headers['x-xss-protection']).toStrictEqual('1; mode=block')
|
|
52
|
-
})
|
|
53
|
-
})
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
base-uri 'none'; default-src 'none'; connect-src https://cloudflareinsights.com https://*.analytics.google.com https://*.google-analytics.com https://*.googletagmanager.com 'self'; form-action 'none'; frame-ancestors 'none'; img-src https://*.google-analytics.com https://*.googletagmanager.com 'self' data:; manifest-src http://localhost:3001/site.webmanifest 'self'; style-src 'unsafe-inline' 'self'; report-to csp-endpoint; report-uri https://o4507259039973376.ingest.de.sentry.io/api/4507260561653840/security/?sentry_key=1e53178c1dba9b39147de4a21853a3e3; script-src-elem https://static.cloudflareinsights.com http://localhost:3001/cdn-cgi/scripts/ https://*.googletagmanager.com 'nonce' http://localhost:3001/_nuxt/;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
base-uri 'none'; default-src 'none'; connect-src https://cloudflareinsights.com https://*.analytics.google.com https://*.google-analytics.com https://*.googletagmanager.com 'self'; form-action 'none'; frame-ancestors 'none'; img-src https://*.google-analytics.com https://*.googletagmanager.com 'self' data:; manifest-src http://localhost:3001/site.webmanifest 'self'; style-src 'unsafe-inline' 'self'; report-to csp-endpoint; report-uri https://o4507259039973376.ingest.de.sentry.io/api/4507260561653840/security/?sentry_key=1e53178c1dba9b39147de4a21853a3e3; script-src-elem https://static.cloudflareinsights.com http://localhost:3001/cdn-cgi/scripts/ https://*.googletagmanager.com 'nonce' http://localhost:3001/_nuxt/;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
base-uri 'none'; default-src 'none'; connect-src https://cloudflareinsights.com https://*.analytics.google.com https://*.google-analytics.com https://*.googletagmanager.com 'self'; form-action 'none'; frame-ancestors 'none'; img-src https://*.google-analytics.com https://*.googletagmanager.com 'self' data:; manifest-src http://localhost:3001/site.webmanifest 'self'; style-src 'unsafe-inline' 'self'; report-to csp-endpoint; report-uri https://o4507259039973376.ingest.de.sentry.io/api/4507260561653840/security/?sentry_key=1e53178c1dba9b39147de4a21853a3e3; script-src-elem https://static.cloudflareinsights.com http://localhost:3001/cdn-cgi/scripts/ https://*.googletagmanager.com 'nonce' http://localhost:3001/_nuxt/;
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import { test, expect } from '@playwright/test'
|
|
2
|
-
import { escapeRegExp } from 'lodash-es'
|
|
3
|
-
|
|
4
|
-
import { SITE_URL } from '#tests/e2e/utils/constants'
|
|
5
|
-
|
|
6
|
-
const path = '/robots.txt'
|
|
7
|
-
|
|
8
|
-
test.describe('page load', () => {
|
|
9
|
-
test('loads the page successfully', async ({ request }) => {
|
|
10
|
-
const resp = await request.get(path)
|
|
11
|
-
expect(resp.status()).toBe(200)
|
|
12
|
-
})
|
|
13
|
-
})
|
|
14
|
-
|
|
15
|
-
test.describe('robots.txt', () => {
|
|
16
|
-
test('content', async ({ request }) => {
|
|
17
|
-
const resp = await request.get(path)
|
|
18
|
-
expect(
|
|
19
|
-
(await resp.text()).replace(
|
|
20
|
-
new RegExp(escapeRegExp(SITE_URL), 'g'),
|
|
21
|
-
'https://example.com',
|
|
22
|
-
),
|
|
23
|
-
).toMatchSnapshot(
|
|
24
|
-
`robots-txt-content-${
|
|
25
|
-
process.env.NODE_ENV === 'production' ? 'production' : 'development'
|
|
26
|
-
}.txt`,
|
|
27
|
-
)
|
|
28
|
-
})
|
|
29
|
-
})
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import { test, expect } from '@playwright/test'
|
|
2
|
-
import { escapeRegExp } from 'lodash-es'
|
|
3
|
-
|
|
4
|
-
import { SITE_URL } from '#tests/e2e/utils/constants'
|
|
5
|
-
|
|
6
|
-
const path = '/sitemap_index.xml'
|
|
7
|
-
|
|
8
|
-
test.describe('page load', () => {
|
|
9
|
-
test('loads the page successfully', async ({ request }) => {
|
|
10
|
-
const resp = await request.get(path)
|
|
11
|
-
expect(resp.status()).toBe(200)
|
|
12
|
-
})
|
|
13
|
-
})
|
|
14
|
-
|
|
15
|
-
test.describe('sitemap', () => {
|
|
16
|
-
const languages = ['en', 'de']
|
|
17
|
-
|
|
18
|
-
test('index', async ({ request }) => {
|
|
19
|
-
const resp = await request.get(path)
|
|
20
|
-
const text = await resp.text()
|
|
21
|
-
|
|
22
|
-
for (const language of languages) {
|
|
23
|
-
expect(text).toContain(`${SITE_URL}/${language}-sitemap.xml`)
|
|
24
|
-
}
|
|
25
|
-
})
|
|
26
|
-
|
|
27
|
-
test('content', async ({ request }) => {
|
|
28
|
-
for (const language of languages) {
|
|
29
|
-
const resp = await request.get(`/${language}-sitemap.xml`)
|
|
30
|
-
const text = await resp.text()
|
|
31
|
-
|
|
32
|
-
expect(
|
|
33
|
-
text
|
|
34
|
-
.replace(/\n.+<\/lastmod>/g, '')
|
|
35
|
-
.replace(
|
|
36
|
-
new RegExp(escapeRegExp(SITE_URL), 'g'),
|
|
37
|
-
'https://example.com',
|
|
38
|
-
),
|
|
39
|
-
).toMatchSnapshot(`sitemap-content-${language}.txt`)
|
|
40
|
-
}
|
|
41
|
-
})
|
|
42
|
-
})
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet type="text/xsl" href="/__sitemap__/style.xsl"?>
|
|
2
|
-
<urlset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:video="http://www.google.com/schemas/sitemap-video/1.1" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:image="http://www.google.com/schemas/sitemap-image/1.1" xmlns:news="http://www.google.com/schemas/sitemap-news/0.9" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd http://www.google.com/schemas/sitemap-image/1.1 http://www.google.com/schemas/sitemap-image/1.1/sitemap-image.xsd" xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
|
|
3
|
-
<url>
|
|
4
|
-
<loc>https://example.com/de</loc>
|
|
5
|
-
<xhtml:link rel="alternate" hreflang="en" href="https://example.com/" />
|
|
6
|
-
<xhtml:link rel="alternate" hreflang="de" href="https://example.com/de" />
|
|
7
|
-
<xhtml:link rel="alternate" hreflang="x-default" href="https://example.com/" />
|
|
8
|
-
</url>
|
|
9
|
-
<url>
|
|
10
|
-
<loc>https://example.com/de/legal-notice</loc>
|
|
11
|
-
<xhtml:link rel="alternate" hreflang="en" href="https://example.com/legal-notice" />
|
|
12
|
-
<xhtml:link rel="alternate" hreflang="de" href="https://example.com/de/legal-notice" />
|
|
13
|
-
<xhtml:link rel="alternate" hreflang="x-default" href="https://example.com/legal-notice" />
|
|
14
|
-
</url>
|
|
15
|
-
<url>
|
|
16
|
-
<loc>https://example.com/de/privacy-policy</loc>
|
|
17
|
-
<xhtml:link rel="alternate" hreflang="en" href="https://example.com/privacy-policy" />
|
|
18
|
-
<xhtml:link rel="alternate" hreflang="de" href="https://example.com/de/privacy-policy" />
|
|
19
|
-
<xhtml:link rel="alternate" hreflang="x-default" href="https://example.com/privacy-policy" />
|
|
20
|
-
</url>
|
|
21
|
-
</urlset>
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet type="text/xsl" href="/__sitemap__/style.xsl"?>
|
|
2
|
-
<urlset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:video="http://www.google.com/schemas/sitemap-video/1.1" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:image="http://www.google.com/schemas/sitemap-image/1.1" xmlns:news="http://www.google.com/schemas/sitemap-news/0.9" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd http://www.google.com/schemas/sitemap-image/1.1 http://www.google.com/schemas/sitemap-image/1.1/sitemap-image.xsd" xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
|
|
3
|
-
<url>
|
|
4
|
-
<loc>https://example.com/de</loc>
|
|
5
|
-
<xhtml:link rel="alternate" hreflang="en" href="https://example.com/" />
|
|
6
|
-
<xhtml:link rel="alternate" hreflang="de" href="https://example.com/de" />
|
|
7
|
-
<xhtml:link rel="alternate" hreflang="x-default" href="https://example.com/" />
|
|
8
|
-
</url>
|
|
9
|
-
<url>
|
|
10
|
-
<loc>https://example.com/de/legal-notice</loc>
|
|
11
|
-
<xhtml:link rel="alternate" hreflang="en" href="https://example.com/legal-notice" />
|
|
12
|
-
<xhtml:link rel="alternate" hreflang="de" href="https://example.com/de/legal-notice" />
|
|
13
|
-
<xhtml:link rel="alternate" hreflang="x-default" href="https://example.com/legal-notice" />
|
|
14
|
-
</url>
|
|
15
|
-
<url>
|
|
16
|
-
<loc>https://example.com/de/privacy-policy</loc>
|
|
17
|
-
<xhtml:link rel="alternate" hreflang="en" href="https://example.com/privacy-policy" />
|
|
18
|
-
<xhtml:link rel="alternate" hreflang="de" href="https://example.com/de/privacy-policy" />
|
|
19
|
-
<xhtml:link rel="alternate" hreflang="x-default" href="https://example.com/privacy-policy" />
|
|
20
|
-
</url>
|
|
21
|
-
</urlset>
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet type="text/xsl" href="/__sitemap__/style.xsl"?>
|
|
2
|
-
<urlset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:video="http://www.google.com/schemas/sitemap-video/1.1" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:image="http://www.google.com/schemas/sitemap-image/1.1" xmlns:news="http://www.google.com/schemas/sitemap-news/0.9" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd http://www.google.com/schemas/sitemap-image/1.1 http://www.google.com/schemas/sitemap-image/1.1/sitemap-image.xsd" xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
|
|
3
|
-
<url>
|
|
4
|
-
<loc>https://example.com/de</loc>
|
|
5
|
-
<xhtml:link rel="alternate" hreflang="en" href="https://example.com/" />
|
|
6
|
-
<xhtml:link rel="alternate" hreflang="de" href="https://example.com/de" />
|
|
7
|
-
<xhtml:link rel="alternate" hreflang="x-default" href="https://example.com/" />
|
|
8
|
-
</url>
|
|
9
|
-
<url>
|
|
10
|
-
<loc>https://example.com/de/legal-notice</loc>
|
|
11
|
-
<xhtml:link rel="alternate" hreflang="en" href="https://example.com/legal-notice" />
|
|
12
|
-
<xhtml:link rel="alternate" hreflang="de" href="https://example.com/de/legal-notice" />
|
|
13
|
-
<xhtml:link rel="alternate" hreflang="x-default" href="https://example.com/legal-notice" />
|
|
14
|
-
</url>
|
|
15
|
-
<url>
|
|
16
|
-
<loc>https://example.com/de/privacy-policy</loc>
|
|
17
|
-
<xhtml:link rel="alternate" hreflang="en" href="https://example.com/privacy-policy" />
|
|
18
|
-
<xhtml:link rel="alternate" hreflang="de" href="https://example.com/de/privacy-policy" />
|
|
19
|
-
<xhtml:link rel="alternate" hreflang="x-default" href="https://example.com/privacy-policy" />
|
|
20
|
-
</url>
|
|
21
|
-
</urlset>
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet type="text/xsl" href="/__sitemap__/style.xsl"?>
|
|
2
|
-
<urlset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:video="http://www.google.com/schemas/sitemap-video/1.1" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:image="http://www.google.com/schemas/sitemap-image/1.1" xmlns:news="http://www.google.com/schemas/sitemap-news/0.9" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd http://www.google.com/schemas/sitemap-image/1.1 http://www.google.com/schemas/sitemap-image/1.1/sitemap-image.xsd" xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
|
|
3
|
-
<url>
|
|
4
|
-
<loc>https://example.com/</loc>
|
|
5
|
-
<xhtml:link rel="alternate" hreflang="en" href="https://example.com/" />
|
|
6
|
-
<xhtml:link rel="alternate" hreflang="de" href="https://example.com/de" />
|
|
7
|
-
<xhtml:link rel="alternate" hreflang="x-default" href="https://example.com/" />
|
|
8
|
-
</url>
|
|
9
|
-
<url>
|
|
10
|
-
<loc>https://example.com/legal-notice</loc>
|
|
11
|
-
<xhtml:link rel="alternate" hreflang="en" href="https://example.com/legal-notice" />
|
|
12
|
-
<xhtml:link rel="alternate" hreflang="de" href="https://example.com/de/legal-notice" />
|
|
13
|
-
<xhtml:link rel="alternate" hreflang="x-default" href="https://example.com/legal-notice" />
|
|
14
|
-
</url>
|
|
15
|
-
<url>
|
|
16
|
-
<loc>https://example.com/privacy-policy</loc>
|
|
17
|
-
<xhtml:link rel="alternate" hreflang="en" href="https://example.com/privacy-policy" />
|
|
18
|
-
<xhtml:link rel="alternate" hreflang="de" href="https://example.com/de/privacy-policy" />
|
|
19
|
-
<xhtml:link rel="alternate" hreflang="x-default" href="https://example.com/privacy-policy" />
|
|
20
|
-
</url>
|
|
21
|
-
</urlset>
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet type="text/xsl" href="/__sitemap__/style.xsl"?>
|
|
2
|
-
<urlset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:video="http://www.google.com/schemas/sitemap-video/1.1" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:image="http://www.google.com/schemas/sitemap-image/1.1" xmlns:news="http://www.google.com/schemas/sitemap-news/0.9" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd http://www.google.com/schemas/sitemap-image/1.1 http://www.google.com/schemas/sitemap-image/1.1/sitemap-image.xsd" xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
|
|
3
|
-
<url>
|
|
4
|
-
<loc>https://example.com/</loc>
|
|
5
|
-
<xhtml:link rel="alternate" hreflang="en" href="https://example.com/" />
|
|
6
|
-
<xhtml:link rel="alternate" hreflang="de" href="https://example.com/de" />
|
|
7
|
-
<xhtml:link rel="alternate" hreflang="x-default" href="https://example.com/" />
|
|
8
|
-
</url>
|
|
9
|
-
<url>
|
|
10
|
-
<loc>https://example.com/legal-notice</loc>
|
|
11
|
-
<xhtml:link rel="alternate" hreflang="en" href="https://example.com/legal-notice" />
|
|
12
|
-
<xhtml:link rel="alternate" hreflang="de" href="https://example.com/de/legal-notice" />
|
|
13
|
-
<xhtml:link rel="alternate" hreflang="x-default" href="https://example.com/legal-notice" />
|
|
14
|
-
</url>
|
|
15
|
-
<url>
|
|
16
|
-
<loc>https://example.com/privacy-policy</loc>
|
|
17
|
-
<xhtml:link rel="alternate" hreflang="en" href="https://example.com/privacy-policy" />
|
|
18
|
-
<xhtml:link rel="alternate" hreflang="de" href="https://example.com/de/privacy-policy" />
|
|
19
|
-
<xhtml:link rel="alternate" hreflang="x-default" href="https://example.com/privacy-policy" />
|
|
20
|
-
</url>
|
|
21
|
-
</urlset>
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet type="text/xsl" href="/__sitemap__/style.xsl"?>
|
|
2
|
-
<urlset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:video="http://www.google.com/schemas/sitemap-video/1.1" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:image="http://www.google.com/schemas/sitemap-image/1.1" xmlns:news="http://www.google.com/schemas/sitemap-news/0.9" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd http://www.google.com/schemas/sitemap-image/1.1 http://www.google.com/schemas/sitemap-image/1.1/sitemap-image.xsd" xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
|
|
3
|
-
<url>
|
|
4
|
-
<loc>https://example.com/</loc>
|
|
5
|
-
<xhtml:link rel="alternate" hreflang="en" href="https://example.com/" />
|
|
6
|
-
<xhtml:link rel="alternate" hreflang="de" href="https://example.com/de" />
|
|
7
|
-
<xhtml:link rel="alternate" hreflang="x-default" href="https://example.com/" />
|
|
8
|
-
</url>
|
|
9
|
-
<url>
|
|
10
|
-
<loc>https://example.com/legal-notice</loc>
|
|
11
|
-
<xhtml:link rel="alternate" hreflang="en" href="https://example.com/legal-notice" />
|
|
12
|
-
<xhtml:link rel="alternate" hreflang="de" href="https://example.com/de/legal-notice" />
|
|
13
|
-
<xhtml:link rel="alternate" hreflang="x-default" href="https://example.com/legal-notice" />
|
|
14
|
-
</url>
|
|
15
|
-
<url>
|
|
16
|
-
<loc>https://example.com/privacy-policy</loc>
|
|
17
|
-
<xhtml:link rel="alternate" hreflang="en" href="https://example.com/privacy-policy" />
|
|
18
|
-
<xhtml:link rel="alternate" hreflang="de" href="https://example.com/de/privacy-policy" />
|
|
19
|
-
<xhtml:link rel="alternate" hreflang="x-default" href="https://example.com/privacy-policy" />
|
|
20
|
-
</url>
|
|
21
|
-
</urlset>
|