@networkpro/web 1.22.0 → 1.22.1
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/CHANGELOG.md +39 -2
- package/README.md +3 -10
- package/package.json +1 -1
- package/src/lib/pages/AboutContent.svelte +11 -12
- package/src/lib/pages/FossContent.svelte +1 -1
- package/src/lib/pages/LicenseContent.svelte +1 -1
- package/src/lib/pages/PrivacyContent.svelte +6 -3
- package/src/lib/pages/PrivacyDashboard.svelte +5 -2
- package/src/lib/pages/ServicesContent.svelte +3 -3
- package/src/lib/pages/TermsConditionsContent.svelte +1 -1
- package/src/lib/pages/TermsUseContent.svelte +3 -3
- package/tests/e2e/app.spec.js +8 -3
- package/tests/e2e/mobile.spec.js +12 -3
package/CHANGELOG.md
CHANGED
|
@@ -22,6 +22,42 @@ This project attempts to follow [Keep a Changelog](https://keepachangelog.com/en
|
|
|
22
22
|
|
|
23
23
|
---
|
|
24
24
|
|
|
25
|
+
## [1.22.1] - 2025-10-21
|
|
26
|
+
|
|
27
|
+
### Documentation
|
|
28
|
+
|
|
29
|
+
- Updated directory structure and **static/pgp** section of `README.md`.
|
|
30
|
+
|
|
31
|
+
### Changed
|
|
32
|
+
|
|
33
|
+
- Bumped project version to `v1.22.1`.
|
|
34
|
+
- Updated the text and layout of `AboutContent.svelte`.
|
|
35
|
+
- Added a link to the privacy email address in `PrivacyContent.svelte` and `PrivacyDashboard.svelte` for easier access.
|
|
36
|
+
- Updated the text of `ServicesContent.svelte`.
|
|
37
|
+
- Increased default Playwright test timeouts for navigation-sensitive suites (Desktop and Mobile) to improve stability under CI latency conditions.
|
|
38
|
+
- Implemented `Promise.all()` pattern for combined click and navigation waits, reducing flakiness in route transition tests.
|
|
39
|
+
- Updated the `'about' link'\*\* navigation tests in both Desktop and Mobile scenarios to include:
|
|
40
|
+
- Explicit `page.waitForLoadState('domcontentloaded')` calls before assertions.
|
|
41
|
+
- Extended per-suite timeouts (`90s`) using `test.setTimeout(90000)` for reliability on slower environments.
|
|
42
|
+
- Added fallback `waitForURL('\*\*/about', { timeout: 60000 })` to ensure deterministic routing checks.
|
|
43
|
+
- Adjusted test structure for consistency across device profiles and browsers.
|
|
44
|
+
- Verified local runs remain performant while increasing tolerance for **CI network latency**.
|
|
45
|
+
|
|
46
|
+
### Fixed
|
|
47
|
+
|
|
48
|
+
- Corrected `TermsUseContent.svelte` to reflect hosting by Vercel, not Netlify.
|
|
49
|
+
- Corrected license identifier syntax on the following pages:
|
|
50
|
+
- `AboutContent.svelte`
|
|
51
|
+
- `FossContent.svelte`
|
|
52
|
+
- `LicenseContent.svelte`
|
|
53
|
+
- `PrivacyContent.svelte`
|
|
54
|
+
- `PrivacyDashboard.svelte`
|
|
55
|
+
- `ServicesContent.svelte`
|
|
56
|
+
- `TermsConditionsContent.svelte`
|
|
57
|
+
- `TermsUseContent.svelte`
|
|
58
|
+
|
|
59
|
+
---
|
|
60
|
+
|
|
25
61
|
## [1.22.0] - 2025-10-20
|
|
26
62
|
|
|
27
63
|
### Added
|
|
@@ -1231,7 +1267,8 @@ This project attempts to follow [Keep a Changelog](https://keepachangelog.com/en
|
|
|
1231
1267
|
|
|
1232
1268
|
<!-- Link references -->
|
|
1233
1269
|
|
|
1234
|
-
[Unreleased]: https://github.com/netwk-pro/netwk-pro.github.io/compare/v1.22.
|
|
1270
|
+
[Unreleased]: https://github.com/netwk-pro/netwk-pro.github.io/compare/v1.22.1...HEAD
|
|
1271
|
+
[1.22.1]: https://github.com/netwk-pro/netwk-pro.github.io/releases/tag/v1.22.1
|
|
1235
1272
|
[1.22.0]: https://github.com/netwk-pro/netwk-pro.github.io/releases/tag/v1.22.0
|
|
1236
1273
|
[1.21.1]: https://github.com/netwk-pro/netwk-pro.github.io/releases/tag/v1.21.1
|
|
1237
1274
|
[1.21.0]: https://github.com/netwk-pro/netwk-pro.github.io/releases/tag/v1.21.0
|
|
@@ -1273,4 +1310,4 @@ This project attempts to follow [Keep a Changelog](https://keepachangelog.com/en
|
|
|
1273
1310
|
[1.12.3]: https://github.com/netwk-pro/netwk-pro.github.io/releases/tag/v1.12.3
|
|
1274
1311
|
[1.12.1]: https://github.com/netwk-pro/netwk-pro.github.io/releases/tag/v1.12.1
|
|
1275
1312
|
|
|
1276
|
-
<!-- cspell:ignore qrcode cryptom otphelp -->
|
|
1313
|
+
<!-- cspell:ignore qrcode cryptom otphelp domcontentloaded -->
|
package/README.md
CHANGED
|
@@ -83,7 +83,7 @@ This project follows the principles of [Keep a Changelog](https://keepachangelog
|
|
|
83
83
|
│ ├── hooks.server.js # Injects CSP headers and permissions policy
|
|
84
84
|
│ └── service-worker.js # Custom PWA service worker
|
|
85
85
|
├── static/ # Public assets served at site root
|
|
86
|
-
│ ├── pgp/ # PGP keys
|
|
86
|
+
│ ├── pgp/ # PGP keys
|
|
87
87
|
│ ├── disableSw.js # Service worker bypass (via ?nosw param)
|
|
88
88
|
│ ├── manifest.json # PWA metadata
|
|
89
89
|
│ ├── robots.txt # SEO: allow/disallow crawlers
|
|
@@ -106,26 +106,19 @@ This project follows the principles of [Keep a Changelog](https://keepachangelog
|
|
|
106
106
|
|
|
107
107
|
### 🔐 `static/pgp/` Directory Structure
|
|
108
108
|
|
|
109
|
-
This directory contains public PGP key files
|
|
109
|
+
This directory contains public PGP key files. Their corresponding QR code images are now loaded dynamically from `src/lib/img/qr`. A dynamic QR code import utility in `src/lib/images.js` allows these files to be imported directly from `$lib`.
|
|
110
110
|
|
|
111
111
|
```bash
|
|
112
112
|
static/
|
|
113
113
|
├── pgp/
|
|
114
114
|
│ ├── contact@s.neteng.pro.asc # Public key for secure email
|
|
115
|
-
│ ├── pgp-contact.png # QR code (PNG) for secure email key
|
|
116
|
-
│ ├── pgp-contact.webp # Optimized WebP version of the QR code
|
|
117
|
-
│ ├── pgp-security.png # QR code (PNG) for security contact key
|
|
118
|
-
│ ├── pgp-security.webp # WebP version of the security QR code
|
|
119
|
-
│ ├── pgp-support.png # QR code (PNG) for support key
|
|
120
|
-
│ ├── pgp-support.webp # WebP version of the support QR code
|
|
121
115
|
│ ├── security@s.neteng.pro.asc # Public key for security contact
|
|
122
116
|
│ ├── support@neteng.pro.asc # Public key for general support
|
|
123
117
|
└── ...
|
|
124
118
|
```
|
|
125
119
|
|
|
126
120
|
- `.asc` files are **excluded from service worker precaching** but served directly via the `/pgp/[key]` route.
|
|
127
|
-
- QR code images are **served
|
|
128
|
-
- **WebP versions** are also used in the `/pgp` route, while the `/about` route imports **dynamic equivalents** from `src/lib/img/qr`.
|
|
121
|
+
- QR code images—including WebP and PNG versions—are **served dynamically** from `src/lib/img/qr` using `<picture>` elements.
|
|
129
122
|
- This route does **not use fallback rendering**; only explicitly defined files are available and expected to resolve.
|
|
130
123
|
- A dynamic `[key]/+server.js` handler under `src/routes/pgp/` serves the `.asc` files with appropriate `Content-Type` and download headers.
|
|
131
124
|
|
package/package.json
CHANGED
|
@@ -73,7 +73,7 @@ This file is part of Network Pro.
|
|
|
73
73
|
*/
|
|
74
74
|
const navLinks = [
|
|
75
75
|
{
|
|
76
|
-
label: 'SPDX
|
|
76
|
+
label: 'SPDX-License-Identifier',
|
|
77
77
|
href: 'https://spdx.dev/learn/handling-license-info',
|
|
78
78
|
target: PAGE.BLANK,
|
|
79
79
|
text: 'CC-BY-4.0 OR GPL-3.0-or-later',
|
|
@@ -120,7 +120,7 @@ This file is part of Network Pro.
|
|
|
120
120
|
<p>
|
|
121
121
|
<strong>{COMPANY_INFO.NAME} ({COMPANY_INFO.APP_NAME}™)</strong>
|
|
122
122
|
<br />
|
|
123
|
-
<em>
|
|
123
|
+
<em>Security, Networking, Privacy</em>
|
|
124
124
|
</p>
|
|
125
125
|
</section>
|
|
126
126
|
|
|
@@ -144,11 +144,10 @@ This file is part of Network Pro.
|
|
|
144
144
|
|
|
145
145
|
<p>
|
|
146
146
|
At <strong>{COMPANY_INFO.NAME} ({COMPANY_INFO.APP_NAME}™)</strong>, we
|
|
147
|
-
deliver network security and engineering,
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
can be both practical and powerful.
|
|
147
|
+
deliver network security and engineering, cybersecurity, and digital privacy
|
|
148
|
+
consulting with clarity, credibility, and care. We believe that real security
|
|
149
|
+
doesn't have to come at the cost of user autonomy, and that privacy-minded
|
|
150
|
+
solutions can be both practical and powerful.
|
|
152
151
|
</p>
|
|
153
152
|
|
|
154
153
|
<p>
|
|
@@ -189,7 +188,7 @@ This file is part of Network Pro.
|
|
|
189
188
|
<p>
|
|
190
189
|
Additionally, {COMPANY_INFO.APP_NAME}™ provides
|
|
191
190
|
<a href={servLink} target={PAGE.SELF}>on-site services</a>
|
|
192
|
-
in the Greater Phoenix
|
|
191
|
+
in the Greater Phoenix Metropolitan Area (Maricopa County, AZ). Our
|
|
193
192
|
<a href={servLink} target={PAGE.SELF}>on-site services</a> are available to both
|
|
194
193
|
consumers and businesses. In addition to consulting, we offer the following services:
|
|
195
194
|
</p>
|
|
@@ -204,14 +203,14 @@ This file is part of Network Pro.
|
|
|
204
203
|
<li><strong>Add or Configure a Printer</strong></li>
|
|
205
204
|
</ul>
|
|
206
205
|
|
|
206
|
+
<div class="spacer"></div>
|
|
207
|
+
|
|
207
208
|
<p>
|
|
208
209
|
We also believe education is a core pillar of real-world security. That's why
|
|
209
210
|
we invest in raising awareness—across both technical and general audiences—on
|
|
210
211
|
best practices in digital privacy, secure design, and threat mitigation.
|
|
211
212
|
</p>
|
|
212
213
|
|
|
213
|
-
<div class="spacer"></div>
|
|
214
|
-
|
|
215
214
|
<p>
|
|
216
215
|
At {COMPANY_INFO.APP_NAME}™, we deliver robust, intentional solutions
|
|
217
216
|
for individuals and organizations that prioritize integrity — without
|
|
@@ -223,8 +222,8 @@ This file is part of Network Pro.
|
|
|
223
222
|
Ready to take the next step? <a href={contactLink} target={PAGE.BLANK}
|
|
224
223
|
>Let's connect</a>
|
|
225
224
|
to explore how we can help fortify your home or business.
|
|
226
|
-
<a href={consultLink} target={PAGE.BLANK}
|
|
227
|
-
|
|
225
|
+
<a href={consultLink} target={PAGE.BLANK}
|
|
226
|
+
>Schedule a free, initial consultation</a> today and discover what's possible.
|
|
228
227
|
</p>
|
|
229
228
|
|
|
230
229
|
<p>
|
|
@@ -61,7 +61,7 @@ This file is part of Network Pro.
|
|
|
61
61
|
rel={PAGE.REL}
|
|
62
62
|
href="https://spdx.dev/learn/handling-license-info"
|
|
63
63
|
target={PAGE.BLANK}>
|
|
64
|
-
SPDX
|
|
64
|
+
SPDX-License-Identifier
|
|
65
65
|
</a>: <code>CC-BY-4.0 OR GPL-3.0-or-later</code>
|
|
66
66
|
</span>
|
|
67
67
|
</section>
|
|
@@ -77,7 +77,7 @@ This file is part of Network Pro.
|
|
|
77
77
|
rel={PAGE.REL}
|
|
78
78
|
href="https://spdx.dev/learn/handling-license-info"
|
|
79
79
|
target={PAGE.BLANK}>
|
|
80
|
-
SPDX
|
|
80
|
+
SPDX-License-Identifier
|
|
81
81
|
</a>: <code>CC-BY-4.0 OR GPL-3.0-or-later</code>
|
|
82
82
|
</span>
|
|
83
83
|
</section>
|
|
@@ -55,7 +55,7 @@ This file is part of Network Pro.
|
|
|
55
55
|
];
|
|
56
56
|
|
|
57
57
|
/** @type {string} */
|
|
58
|
-
const effectiveDate = 'October
|
|
58
|
+
const effectiveDate = 'October 21, 2025';
|
|
59
59
|
|
|
60
60
|
/** @type {string} */
|
|
61
61
|
const classSmall = 'small-text';
|
|
@@ -112,7 +112,7 @@ This file is part of Network Pro.
|
|
|
112
112
|
rel={PAGE.REL}
|
|
113
113
|
href="https://spdx.dev/learn/handling-license-info"
|
|
114
114
|
target={PAGE.BLANK}>
|
|
115
|
-
SPDX
|
|
115
|
+
SPDX-License-Identifier
|
|
116
116
|
</a>: <code>CC-BY-4.0 OR GPL-3.0-or-later</code>
|
|
117
117
|
</span>
|
|
118
118
|
</section>
|
|
@@ -432,7 +432,10 @@ This file is part of Network Pro.
|
|
|
432
432
|
href={prightsLink}
|
|
433
433
|
target={PAGE.BLANK}>Privacy Rights Request Form</a
|
|
434
434
|
>. Alternatively, you can email us at
|
|
435
|
-
<strong
|
|
435
|
+
<strong
|
|
436
|
+
><a href={`mailto:${CONTACT.PRIVACY_LINK}`} target={PAGE.BLANK}
|
|
437
|
+
>{CONTACT.PRIVACY_LINK}</a
|
|
438
|
+
></strong>
|
|
436
439
|
with the subject line: "<strong>Privacy Rights Preferences</strong>".
|
|
437
440
|
</p>
|
|
438
441
|
{:else if link.id === 'third-party'}
|
|
@@ -87,7 +87,7 @@ This file is part of Network Pro.
|
|
|
87
87
|
rel={PAGE.REL}
|
|
88
88
|
href="https://spdx.dev/learn/handling-license-info"
|
|
89
89
|
target={PAGE.BLANK}>
|
|
90
|
-
SPDX
|
|
90
|
+
SPDX-License-Identifier
|
|
91
91
|
</a>: <code>CC-BY-4.0 OR GPL-3.0-or-later</code>
|
|
92
92
|
</span>
|
|
93
93
|
</section>
|
|
@@ -240,7 +240,10 @@ This file is part of Network Pro.
|
|
|
240
240
|
href={prightsLink}
|
|
241
241
|
target={PAGE.BLANK}>Privacy Rights Request Form</a
|
|
242
242
|
>. Alternatively, you can email us at
|
|
243
|
-
<strong
|
|
243
|
+
<strong
|
|
244
|
+
><a href={`mailto:${CONTACT.PRIVACY_LINK}`} target={PAGE.BLANK}
|
|
245
|
+
>{CONTACT.PRIVACY_LINK}</a
|
|
246
|
+
></strong>
|
|
244
247
|
with the subject line: "<strong>Privacy Rights Preferences</strong>".
|
|
245
248
|
</p>
|
|
246
249
|
</section>
|
|
@@ -44,7 +44,7 @@ This file is part of Network Pro.
|
|
|
44
44
|
* @type {{ effectiveDate: string, classSmall: string }}
|
|
45
45
|
*/
|
|
46
46
|
const constants = {
|
|
47
|
-
effectiveDate: 'October
|
|
47
|
+
effectiveDate: 'October 21, 2025',
|
|
48
48
|
classSmall: 'small-text',
|
|
49
49
|
};
|
|
50
50
|
</script>
|
|
@@ -56,7 +56,7 @@ This file is part of Network Pro.
|
|
|
56
56
|
rel={PAGE.REL}
|
|
57
57
|
href="https://spdx.dev/learn/handling-license-info"
|
|
58
58
|
target={PAGE.BLANK}>
|
|
59
|
-
SPDX
|
|
59
|
+
SPDX-License-Identifier
|
|
60
60
|
</a>: <code>CC-BY-4.0 OR GPL-3.0-or-later</code>
|
|
61
61
|
</span>
|
|
62
62
|
</section>
|
|
@@ -83,7 +83,7 @@ This file is part of Network Pro.
|
|
|
83
83
|
If you're a business seeking similar on-site solutions, we've got you covered!
|
|
84
84
|
We offer tailored services to meet the unique needs of commercial clients as
|
|
85
85
|
well. Simply <a href={consultLink} target={PAGE.BLANK}
|
|
86
|
-
>schedule a consultation</a>
|
|
86
|
+
>schedule a free, initial consultation</a>
|
|
87
87
|
or <a href={contactLink} target={PAGE.BLANK}>contact us directly</a> — we'd be
|
|
88
88
|
happy to discuss how {COMPANY_INFO.APP_NAME}™ can support your business
|
|
89
89
|
on-site.
|
|
@@ -67,7 +67,7 @@ This file is part of Network Pro.
|
|
|
67
67
|
rel={PAGE.REL}
|
|
68
68
|
href="https://spdx.dev/learn/handling-license-info"
|
|
69
69
|
target={PAGE.BLANK}>
|
|
70
|
-
SPDX
|
|
70
|
+
SPDX-License-Identifier
|
|
71
71
|
</a>: <code>CC-BY-4.0 OR GPL-3.0-or-later</code>
|
|
72
72
|
</span>
|
|
73
73
|
</section>
|
|
@@ -65,7 +65,7 @@ This file is part of Network Pro.
|
|
|
65
65
|
* @type {{ effectiveDate: string, classSmall: string }}
|
|
66
66
|
*/
|
|
67
67
|
const constants = {
|
|
68
|
-
effectiveDate: '
|
|
68
|
+
effectiveDate: 'October 21, 2025',
|
|
69
69
|
classSmall: 'small-text',
|
|
70
70
|
};
|
|
71
71
|
</script>
|
|
@@ -77,7 +77,7 @@ This file is part of Network Pro.
|
|
|
77
77
|
rel={PAGE.REL}
|
|
78
78
|
href="https://spdx.dev/learn/handling-license-info"
|
|
79
79
|
target={PAGE.BLANK}>
|
|
80
|
-
SPDX
|
|
80
|
+
SPDX-License-Identifier
|
|
81
81
|
</a>: <code>CC-BY-4.0 OR GPL-3.0-or-later</code>
|
|
82
82
|
</span>
|
|
83
83
|
</section>
|
|
@@ -142,7 +142,7 @@ This file is part of Network Pro.
|
|
|
142
142
|
These Terms of Use apply to all platforms associated with the Company,
|
|
143
143
|
including but not limited to:
|
|
144
144
|
<strong>
|
|
145
|
-
GitHub, our main website (hosted via
|
|
145
|
+
GitHub, our main website (hosted via Vercel and GitHub Pages), Stack
|
|
146
146
|
Overflow Teams, Nextcloud, communications on Discord and/or Slack, and
|
|
147
147
|
our social media presence (e.g., Facebook, Instagram, X, and similar
|
|
148
148
|
platforms).
|
package/tests/e2e/app.spec.js
CHANGED
|
@@ -11,7 +11,7 @@ This file is part of Network Pro.
|
|
|
11
11
|
* @description Runs Playwright E2E tests with desktop and root route assertions.
|
|
12
12
|
* @module tests/e2e
|
|
13
13
|
* @author Scott Lopez
|
|
14
|
-
* @updated 2025-
|
|
14
|
+
* @updated 2025-10-21
|
|
15
15
|
*/
|
|
16
16
|
|
|
17
17
|
import { expect, test } from '@playwright/test';
|
|
@@ -24,6 +24,8 @@ import {
|
|
|
24
24
|
|
|
25
25
|
// Root route should display nav bar and about link
|
|
26
26
|
test.describe('Desktop Tests', () => {
|
|
27
|
+
test.setTimeout(90_000); // increase timeout for all desktop tests
|
|
28
|
+
|
|
27
29
|
test("should display the navigation bar and 'about' link", async ({
|
|
28
30
|
page,
|
|
29
31
|
}) => {
|
|
@@ -67,12 +69,15 @@ test.describe('Desktop Tests', () => {
|
|
|
67
69
|
await page.waitForLoadState('domcontentloaded', { timeout: 60000 });
|
|
68
70
|
|
|
69
71
|
const nav = await getVisibleNav(page);
|
|
70
|
-
|
|
71
72
|
const aboutLink = nav.getByRole('link', { name: 'about' });
|
|
72
73
|
await expect(aboutLink).toBeVisible();
|
|
73
74
|
await aboutLink.click();
|
|
74
75
|
|
|
75
|
-
|
|
76
|
+
// safer wait pattern with load state
|
|
77
|
+
await Promise.all([
|
|
78
|
+
page.waitForLoadState('load'),
|
|
79
|
+
page.waitForURL('**/about', { timeout: 60000 }),
|
|
80
|
+
]);
|
|
76
81
|
await expect(page).toHaveURL(/\/about/);
|
|
77
82
|
});
|
|
78
83
|
}); // End Desktop Tests
|
package/tests/e2e/mobile.spec.js
CHANGED
|
@@ -11,7 +11,7 @@ This file is part of Network Pro.
|
|
|
11
11
|
* @description Runs Playwright E2E tests with mobile assertions.
|
|
12
12
|
* @module tests/e2e
|
|
13
13
|
* @author Scott Lopez
|
|
14
|
-
* @updated 2025-
|
|
14
|
+
* @updated 2025-10-21
|
|
15
15
|
*/
|
|
16
16
|
|
|
17
17
|
import { expect, test } from '@playwright/test';
|
|
@@ -19,6 +19,8 @@ import { getFooter, getVisibleNav, setMobileView } from './shared/helpers.js';
|
|
|
19
19
|
|
|
20
20
|
// Mobile viewport smoke tests for the root route
|
|
21
21
|
test.describe('Mobile Tests', () => {
|
|
22
|
+
test.setTimeout(90_000); // increase timeout for all desktop tests
|
|
23
|
+
|
|
22
24
|
test('should display the main description text on mobile', async ({
|
|
23
25
|
page,
|
|
24
26
|
browserName,
|
|
@@ -57,13 +59,20 @@ test.describe('Mobile Tests', () => {
|
|
|
57
59
|
|
|
58
60
|
await setMobileView(page);
|
|
59
61
|
await page.goto('/');
|
|
62
|
+
await page.waitForLoadState('domcontentloaded', { timeout: 60000 });
|
|
60
63
|
|
|
61
64
|
const nav = await getVisibleNav(page);
|
|
62
65
|
const aboutLink = nav.getByRole('link', { name: 'about' });
|
|
63
66
|
await expect(aboutLink).toBeVisible();
|
|
64
67
|
|
|
65
|
-
|
|
66
|
-
await
|
|
68
|
+
// combine click + wait in a Promise.all to ensure navigation completes
|
|
69
|
+
await Promise.all([
|
|
70
|
+
page.waitForLoadState('load'),
|
|
71
|
+
page.waitForURL('**/about', { timeout: 60000 }),
|
|
72
|
+
aboutLink.click(),
|
|
73
|
+
]);
|
|
74
|
+
|
|
75
|
+
await expect(page).toHaveURL(/\/about/);
|
|
67
76
|
});
|
|
68
77
|
|
|
69
78
|
test('should display the footer on /about (mobile)', async ({
|