generated from Java-2025Fall/final-vibevault-template
59 lines
2.0 KiB
JavaScript
59 lines
2.0 KiB
JavaScript
// tests/homepage.test.js
|
||
import { test, expect } from '@playwright/test';
|
||
|
||
test('首页加载和热门歌曲列表显示', async ({ page }) => {
|
||
// 导航到首页
|
||
await page.goto('http://localhost:3000/');
|
||
|
||
// 验证页面标题
|
||
await expect(page).toHaveTitle(/VibeVault/);
|
||
|
||
// 验证页面标题"发现音乐"
|
||
await expect(page.getByText('发现音乐')).toBeVisible();
|
||
|
||
// 验证热门歌曲标题显示
|
||
await expect(page.getByText('热门歌曲')).toBeVisible();
|
||
|
||
// 验证热门歌曲列表中有6首歌曲(林俊杰的歌曲)
|
||
const songItems = await page.locator('.songs-list .song-item').all();
|
||
expect(songItems.length).toBe(6);
|
||
|
||
// 验证第一首歌是"江南",歌手是"林俊杰"
|
||
const firstSong = songItems[0];
|
||
await expect(firstSong).toContainText('江南');
|
||
await expect(firstSong).toContainText('林俊杰');
|
||
|
||
// 点击第一首歌,验证是否跳转到播放界面
|
||
await firstSong.click();
|
||
|
||
// 验证播放界面的URL
|
||
await expect(page).toHaveURL(/songs\/1/);
|
||
|
||
// 验证播放界面显示歌曲标题
|
||
await expect(page.getByText('江南')).toBeVisible();
|
||
|
||
// 验证播放界面显示歌手名称
|
||
await expect(page.getByText('林俊杰')).toBeVisible();
|
||
|
||
// 验证播放按钮可见
|
||
await expect(page.locator('.play-btn-large')).toBeVisible();
|
||
});
|
||
|
||
test('精选推荐和热门歌单显示', async ({ page }) => {
|
||
// 导航到首页
|
||
await page.goto('http://localhost:3000/');
|
||
|
||
// 验证精选推荐标题显示
|
||
await expect(page.getByText('精选推荐')).toBeVisible();
|
||
|
||
// 验证热门歌单标题显示
|
||
await expect(page.getByText('热门歌单')).toBeVisible();
|
||
|
||
// 验证精选推荐有3个歌单
|
||
const featuredPlaylists = await page.locator('.featured-section .playlist-card').all();
|
||
expect(featuredPlaylists.length).toBe(3);
|
||
|
||
// 验证热门歌单至少有4个歌单
|
||
const popularPlaylists = await page.locator('.popular-section .playlist-card').all();
|
||
expect(popularPlaylists.length).toBeGreaterThanOrEqual(4);
|
||
}); |