Init Commit
This commit is contained in:
@@ -0,0 +1,86 @@
|
||||
import { test, expect } from '@playwright/test';
|
||||
|
||||
const BASE_URL = process.env.PLAYWRIGHT_BASE_URL || 'http://localhost:1313';
|
||||
|
||||
test.describe('Hugo sections functionality', () => {
|
||||
test('articles section loads correctly', async ({ page }) => {
|
||||
await page.goto(`${BASE_URL}/articles/`);
|
||||
|
||||
// Check that section page loads
|
||||
await expect(page.locator('h1')).toContainText('Articles');
|
||||
|
||||
// Verify section content is displayed
|
||||
await expect(page.getByText('Welcome to the articles section')).toBeVisible();
|
||||
|
||||
// Check that article posts are listed
|
||||
const articleCount = await page.locator('article.post').count();
|
||||
expect(articleCount).toBeGreaterThan(0);
|
||||
});
|
||||
|
||||
test('individual article pages load correctly', async ({ page }) => {
|
||||
await page.goto(`${BASE_URL}/articles/first-article/`);
|
||||
|
||||
// Check that individual article loads
|
||||
await expect(page.locator('h1')).toContainText('First Article');
|
||||
await expect(page.getByText('This is the first article content')).toBeVisible();
|
||||
});
|
||||
|
||||
test('news section loads correctly', async ({ page }) => {
|
||||
await page.goto(`${BASE_URL}/news/`);
|
||||
|
||||
// Check that section page loads
|
||||
await expect(page.locator('h1')).toContainText('News');
|
||||
// Verify section content is displayed
|
||||
await expect(page.getByText('Latest news updates').first()).toBeVisible();
|
||||
|
||||
// Check that news posts are listed
|
||||
const newsCount = await page.locator('article.post').count();
|
||||
expect(newsCount).toBeGreaterThan(0);
|
||||
});
|
||||
|
||||
test('individual news pages load correctly', async ({ page }) => {
|
||||
await page.goto(`${BASE_URL}/news/breaking-news/`);
|
||||
|
||||
// Check that individual news item loads
|
||||
await expect(page.locator('h1')).toContainText('Breaking News');
|
||||
await expect(page.getByText('This is breaking news content')).toBeVisible();
|
||||
});
|
||||
|
||||
|
||||
test('section pagination works if applicable', async ({ page }) => {
|
||||
await page.goto(`${BASE_URL}/articles/`);
|
||||
|
||||
// Check if pagination exists and works
|
||||
const paginationExists = await page.locator('.pagination').count() > 0;
|
||||
|
||||
if (paginationExists) {
|
||||
// Test pagination if it exists
|
||||
await expect(page.locator('.pagination')).toBeVisible();
|
||||
|
||||
// Check if there's a next page link and it works
|
||||
const nextLink = page.locator('.pagination a[rel="next"]');
|
||||
if (await nextLink.count() > 0) {
|
||||
await nextLink.click();
|
||||
await expect(page.locator('h1')).toContainText('Articles');
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
test('section RSS feeds are accessible', async ({ page }) => {
|
||||
// Test articles RSS feed
|
||||
const articlesRssResponse = await page.request.get(`${BASE_URL}/articles/index.xml`);
|
||||
expect(articlesRssResponse.status()).toBe(200);
|
||||
|
||||
// Test news RSS feed
|
||||
const newsRssResponse = await page.request.get(`${BASE_URL}/news/index.xml`);
|
||||
expect(newsRssResponse.status()).toBe(200);
|
||||
});
|
||||
|
||||
test('existing blog section still works', async ({ page }) => {
|
||||
await page.goto(`${BASE_URL}/blog/`);
|
||||
|
||||
// Verify existing blog section still works
|
||||
await expect(page.locator('h1').first()).toContainText('Demo Blog');
|
||||
await expect(page.getByText('Welcome to the demo blog')).toBeVisible();
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user