Source identity
| Field | Recorded value |
|---|---|
| Source type | GitHub source |
| Original record | Janady13/thatdeveloperguy-website / tests/browser/lobby.spec.ts |
| Date | Not specified in source |
| Repository | Janady13/thatdeveloperguy-website |
| Revision | 2bea2ebdff0e34494bff597d4fa9c8422a0c3a94 |
| Branch | main |
| Path or archive member | tests/browser/lobby.spec.ts |
| Original SHA-256 | b87193a28862de37185040174e4580c792a5c73a89995149b5bdb1d884aba690 |
| Git blob SHA | 3d40284c92a738eba8060ecca3fb03c4052eea0b |
| Reading-copy SHA-256 | b87193a28862de37185040174e4580c792a5c73a89995149b5bdb1d884aba690 |
Recovered source transcript
Download complete source text ↓70 lines · 4.0 KB
import { test, expect } from '@playwright/test';
import AxeBuilder from '@axe-core/playwright';
test('the lobby is complete HTML: title, canonical, poster and three real door links', async ({ page }) => {
await page.goto('/');
await expect(page).toHaveTitle(/ThatDeveloperGuy/);
await expect(page.locator('link[rel="canonical"]')).toHaveAttribute('href', 'https://thatdeveloperguy.com/');
await expect(page.locator('link[rel="describedby"]')).toHaveAttribute('href', '/llms.txt');
await expect(page.locator('meta[property="og:image"]')).toHaveAttribute('content', 'https://thatdeveloperguy.com/images/posters/lobby.webp');
await expect(page.locator('meta[name="twitter:card"]')).toHaveAttribute('content', 'summary_large_image');
const poster = page.locator('.scene-poster');
await expect(poster).toBeAttached();
expect(await poster.isVisible() || await page.locator('.scene-rive canvas').isVisible()).toBe(true);
const doors = page.locator('.scene-hit');
await expect(doors).toHaveCount(5);
await expect(doors.nth(0)).toHaveAttribute('href', '/capabilities/business-it');
await expect(doors.nth(1)).toHaveAttribute('href', '/government');
await expect(doors.nth(2)).toHaveAttribute('href', '/capabilities/cybersecurity');
});
test('animated routes share one full-screen HTML contract with complete semantic content', async ({ page }) => {
for (const path of ['/capabilities/business-it', '/government', '/capabilities/cybersecurity']) {
await page.goto(path);
await expect(page.locator('main > .scene')).toBeVisible();
await expect(page.locator('.site-footer')).toBeHidden();
expect(await page.locator('body').evaluate(element => getComputedStyle(element).overflow)).toBe('hidden');
await expect(page.locator('.room-semantic-content h1')).toHaveCount(1);
await expect(page.locator('.room-semantic-content a')).not.toHaveCount(0);
await expect(page.locator('link[rel="describedby"]')).toHaveAttribute('href', `${path}/llms.txt`);
}
});
test('hovering a door names it in the caption; keyboard reaches every door', async ({ page, isMobile }) => {
test.skip(isMobile, 'hover is desktop-only');
await page.goto('/');
await page.locator('.scene-hit[data-hit="door-Gov"]').hover();
await expect(page.locator('.scene-caption')).toContainText('Government Solutions');
for (let i = 0; i < 8; i++) { await page.keyboard.press('Tab'); if (await page.locator('.scene-hit:focus').count()) break; }
await expect(page.locator('.scene-hit:focus')).toHaveCount(1);
});
test('clicking the IT door navigates to the capability page, whose objects link to its sections', async ({ page }) => {
await page.goto('/');
await page.locator('.scene-hit[data-hit="door-IT"]').click();
await expect(page).toHaveURL(/\/capabilities\/business-it$/, { timeout: 5000 });
await expect(page.getByRole('heading', { level: 1 })).toContainText('IT Services');
await expect(page.locator('.scene-hit[data-hit="status"]')).toHaveAttribute('href', '#overview');
await expect(page.locator('#overview')).toBeAttached();
});
test('direct entry, refresh and back work without visiting the lobby', async ({ page }) => {
await page.goto('/capabilities/cybersecurity');
await expect(page.getByRole('heading', { level: 1 })).toContainText('Cyber Security');
await page.reload();
await expect(page.getByRole('heading', { level: 1 })).toContainText('Cyber Security');
await page.locator('.scene-hit[data-hit="return-lobby"]').click();
await expect(page).toHaveURL(/\/$/);
await page.goBack();
await expect(page).toHaveURL(/\/capabilities\/cybersecurity$/);
});
test('every published route has no axe violations', async ({ page }) => {
test.setTimeout(90_000);
for (const path of ['/', '/government', '/capabilities', '/capabilities/business-it', '/capabilities/cybersecurity', '/company', '/contact', '/privacy', '/accessibility']) {
await page.goto(path);
const results = await new AxeBuilder({ page }).analyze();
expect(results.violations, `${path}: ${JSON.stringify(results.violations, null, 1)}`).toEqual([]);
}
});