Source identity
| Field | Recorded value |
|---|---|
| Source type | GitHub source |
| Original record | Janady13/llms-txt-hub / apps/e2e/tests/simple.spec.ts |
| Date | Not specified in source |
| Repository | Janady13/llms-txt-hub |
| Revision | e0f4bf978d4df168369c7601d9c5f5ea89e84377 |
| Branch | main |
| Path or archive member | apps/e2e/tests/simple.spec.ts |
| Original SHA-256 | bb169e5d076b08a17438aef40aa16baa003e6b1e1470bce608dcc0e622a6cb41 |
| Git blob SHA | 3f38d77620700049ffe94d54a240c1ed9dd9366e |
| Reading-copy SHA-256 | bb169e5d076b08a17438aef40aa16baa003e6b1e1470bce608dcc0e622a6cb41 |
Recovered source transcript
Download complete source text ↓134 lines · 4.7 KB
import { expect, test } from '@playwright/test'
test.describe('Basic Page Load Tests', () => {
test.beforeEach(async ({ page }) => {
// Set a more generous timeout for navigation
page.setDefaultNavigationTimeout(45000)
page.setDefaultTimeout(30000)
})
test('homepage loads', async ({ page }) => {
const response = await page.goto('/', { waitUntil: 'domcontentloaded' })
expect(response?.status()).toBeLessThan(400)
// Basic check - page has some content
const bodyText = await page.textContent('body')
expect(bodyText).toBeTruthy()
expect(bodyText?.length).toBeGreaterThan(100)
})
test('about page loads', async ({ page }) => {
const response = await page.goto('/about', { waitUntil: 'domcontentloaded' })
expect(response?.status()).toBeLessThan(400)
// Check for about content
await expect(page.locator('text=/about/i').first()).toBeVisible()
})
test('guides page loads', async ({ page }) => {
const response = await page.goto('/guides', { waitUntil: 'domcontentloaded' })
expect(response?.status()).toBeLessThan(400)
// Check page loaded with some content
const bodyText = await page.textContent('body')
expect(bodyText).toBeTruthy()
expect(bodyText?.length).toBeGreaterThan(100)
})
test('websites page loads', async ({ page }) => {
const response = await page.goto('/websites', { waitUntil: 'domcontentloaded' })
expect(response?.status()).toBeLessThan(400)
// Check page loaded
const hasContent = await page.locator('main').first().isVisible()
expect(hasContent).toBeTruthy()
})
test('members page loads', async ({ page }) => {
const response = await page.goto('/members', { waitUntil: 'domcontentloaded' })
expect(response?.status()).toBeLessThan(400)
// Check page has content
const bodyText = await page.textContent('body')
expect(bodyText).toBeTruthy()
})
test('search functionality exists', async ({ page }) => {
await page.goto('/', { waitUntil: 'domcontentloaded' })
// Look for any search input
const searchInput = page.locator('input[type="text"], input[type="search"]').first()
const hasSearch = await searchInput.isVisible()
// Search should exist somewhere on the page
expect(hasSearch).toBeTruthy()
})
test('404 page handles non-existent routes', async ({ page }) => {
const response = await page.goto('/this-page-does-not-exist-12345', {
waitUntil: 'domcontentloaded'
})
// In dev mode, Next.js might return 200 with 404 page content
const status = response?.status()
expect(status === 404 || status === 200).toBeTruthy()
// When status is 200, verify the 404 UI is actually shown
if (status === 200) {
// Check for 404-specific content
const has404Text = await page.locator('text=/404/').first().isVisible()
const hasNotFoundHeading = await page.locator('h1:has-text("Page Not Found")').isVisible()
const hasNotFoundClass = await page.locator('.not-found').isVisible()
// At least one of these 404 indicators must be present
expect(has404Text || hasNotFoundHeading || hasNotFoundClass).toBeTruthy()
}
})
})
test.describe('Navigation Tests', () => {
test('can navigate between pages', async ({ page }) => {
// Start at homepage
await page.goto('/', { waitUntil: 'domcontentloaded' })
// Check viewport to determine if we're on mobile
const viewportSize = page.viewportSize()
const isMobile = viewportSize && viewportSize.width < 768
if (isMobile) {
// On mobile, navigation is hidden - just verify page loaded
const bodyText = await page.textContent('body')
expect(bodyText?.length).toBeGreaterThan(100)
} else {
// Click a visible navigation link in the header
const guidesLink = page.locator('header nav').getByRole('link', { name: 'Guides' })
if (await guidesLink.isVisible()) {
await guidesLink.click()
await page.waitForURL(/\/guides/)
// Check we navigated to guides page
expect(page.url()).toContain('/guides')
} else {
// Navigation link not visible, just verify page content
const bodyText = await page.textContent('body')
expect(bodyText?.length).toBeGreaterThan(100)
}
}
})
})
test.describe('Responsive Tests', () => {
test('homepage works on mobile viewport', async ({ page }) => {
// Set mobile viewport
await page.setViewportSize({ width: 375, height: 667 })
const response = await page.goto('/', { waitUntil: 'domcontentloaded' })
expect(response?.status()).toBeLessThan(400)
// Page should still have content
const bodyText = await page.textContent('body')
expect(bodyText?.length).toBeGreaterThan(100)
})
})