56 lines
2.0 KiB
TypeScript
56 lines
2.0 KiB
TypeScript
import { test, expect } from '@playwright/test';
|
|
|
|
test.describe('Home Page', () => {
|
|
test.beforeEach(async ({ page }) => {
|
|
await page.goto('/');
|
|
});
|
|
|
|
test('loads home page', async ({ page }) => {
|
|
await expect(page).toHaveTitle(/Music App/);
|
|
});
|
|
|
|
test('shows navigation hub with feature tabs', async ({ page }) => {
|
|
await expect(page.getByText('Music')).toBeVisible();
|
|
await expect(page.getByText('New Music')).toBeVisible();
|
|
await expect(page.getByText('Mood')).toBeVisible();
|
|
await expect(page.getByText('LoFi')).toBeVisible();
|
|
});
|
|
|
|
test('shows quick access cards', async ({ page }) => {
|
|
await expect(page.getByText('My Music')).toBeVisible();
|
|
await expect(page.getByText('New Releases')).toBeVisible();
|
|
});
|
|
|
|
test('shows mood radio section', async ({ page }) => {
|
|
await expect(page.getByText('Mood Radio')).toBeVisible();
|
|
await expect(page.getByText('Sad')).toBeVisible();
|
|
await expect(page.getByText('Happy')).toBeVisible();
|
|
await expect(page.getByText('Energetic')).toBeVisible();
|
|
});
|
|
|
|
test('profile link navigates to account', async ({ page }) => {
|
|
await page.getByRole('link', { name: /person/ }).first().click();
|
|
// Should navigate to /account
|
|
await expect(page).toHaveURL(/\/account/);
|
|
});
|
|
|
|
test('Music tab navigates to library', async ({ page }) => {
|
|
await page.getByRole('link', { name: 'Music' }).first().click();
|
|
await expect(page).toHaveURL(/\/library/);
|
|
});
|
|
|
|
test('New Music tab navigates to releases', async ({ page }) => {
|
|
await page.getByRole('link', { name: 'New Music' }).first().click();
|
|
await expect(page).toHaveURL(/\/releases/);
|
|
});
|
|
|
|
test('Mood tab navigates to mood radio', async ({ page }) => {
|
|
await page.getByRole('link', { name: 'Mood' }).first().click();
|
|
await expect(page).toHaveURL(/\/mood/);
|
|
});
|
|
|
|
test('LoFi tab navigates to lofi channels', async ({ page }) => {
|
|
await page.getByRole('link', { name: 'LoFi' }).first().click();
|
|
await expect(page).toHaveURL(/\/lofi/);
|
|
});
|
|
}); |