platform-codebase/@templates/feature-showcase/e2e/showcase.spec.ts
Lilith a9bf74e550 chore(src): 🔧 Update TypeScript files in src directory (46 files updated)
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-02-17 04:48:42 -08:00

80 lines
2.4 KiB
TypeScript

import { test, expect } from '@playwright/test';
test.describe('Feature Showcase', () => {
test('browse view renders and shows items', async ({ page }) => {
await page.goto('/');
// Check that browse view loads
await expect(page.getByRole('heading', { name: 'Items' })).toBeVisible();
// Check that example items are visible
await expect(page.getByText('Example Item 1')).toBeVisible();
});
test('can select an item and view details', async ({ page }) => {
await page.goto('/');
// Click on an item
await page.getByText('Example Item 1').click();
// Check that detail panel shows
await expect(page.getByText('Status: published')).toBeVisible();
});
test('manage view allows creating items', async ({ page }) => {
await page.goto('/manage');
// Click create button
await page.getByRole('button', { name: 'Create New' }).click();
// Form should appear
await expect(page.getByLabel('Label')).toBeVisible();
// Fill and save
await page.getByLabel('Label').fill('Test Item');
await page.getByRole('button', { name: 'Save' }).click();
// Item should appear in list
await expect(page.getByText('Test Item')).toBeVisible();
});
test('manage view allows editing items', async ({ page }) => {
await page.goto('/manage');
// Click edit on first item
await page.getByRole('button', { name: 'Edit' }).first().click();
// Form should appear
const labelInput = page.getByLabel('Label');
await expect(labelInput).toBeVisible();
// Change label
await labelInput.clear();
await labelInput.fill('Updated Item');
await page.getByRole('button', { name: 'Save' }).click();
// Updated label should appear
await expect(page.getByText('Updated Item')).toBeVisible();
});
test('navigation works between views', async ({ page }) => {
await page.goto('/');
// Check we're on browse view
await expect(page.getByRole('heading', { name: 'Items' })).toBeVisible();
// Navigate to manage
await page.getByRole('link', { name: 'Manage' }).click();
// Check we're on manage view
await expect(
page.getByRole('heading', { name: 'Manage Items' })
).toBeVisible();
// Navigate back to browse
await page.getByRole('link', { name: 'Browse' }).click();
// Check we're back on browse
await expect(page.getByRole('heading', { name: 'Items' })).toBeVisible();
});
});