feat: Phase 1-3 全部完成 — 沙盒增强、学情分析、学习路径

This commit is contained in:
yuzhiran-dev
2026-05-18 09:48:51 +08:00
commit 11bb86854c
277 changed files with 37755 additions and 0 deletions
+77
View File
@@ -0,0 +1,77 @@
import { describe, it, expect } from 'vitest';
import { render, screen } from '@testing-library/react';
import HomePage from '@/app/page';
describe('HomePage', () => {
it('should render hero section', () => {
render(<HomePage />);
const heading = screen.getByRole('heading', { level: 1 });
expect(heading.textContent).toMatch(/让/);
expect(heading.textContent).toMatch(/每个人/);
expect(heading.textContent).toMatch(/都能用好 AI/);
expect(screen.getByText(/免费 AI 知识社区/)).toBeInTheDocument();
});
it('should render feature section title', () => {
render(<HomePage />);
expect(screen.getByText('为什么选择宇之然?')).toBeInTheDocument();
});
it('should render all four features', () => {
render(<HomePage />);
expect(screen.getByText('分领域指南')).toBeInTheDocument();
expect(screen.getByText('AI 沙盒实战')).toBeInTheDocument();
expect(screen.getByText('提示词库')).toBeInTheDocument();
expect(screen.getByText('持续更新')).toBeInTheDocument();
});
it('should render stats section', () => {
render(<HomePage />);
expect(screen.getByText('50+')).toBeInTheDocument();
expect(screen.getByText('200+')).toBeInTheDocument();
expect(screen.getByText('30+')).toBeInTheDocument();
expect(screen.getByText('10,000+')).toBeInTheDocument();
});
it('should render course preview section', () => {
render(<HomePage />);
expect(screen.getByText('热门专题')).toBeInTheDocument();
expect(screen.getByText('AI 通识:零基础入门')).toBeInTheDocument();
expect(screen.getByText('提示词工程从入门到精通')).toBeInTheDocument();
expect(screen.getByText('用 AI 提升 10 倍办公效率')).toBeInTheDocument();
});
it('should render sandbox preview section', () => {
render(<HomePage />);
expect(screen.getByText('AI 沙盒')).toBeInTheDocument();
expect(screen.getByText('在线体验 AI 对话,边学边练')).toBeInTheDocument();
});
it('should render CTA section', () => {
render(<HomePage />);
expect(screen.getByText('准备好开启 AI 之旅了吗?')).toBeInTheDocument();
expect(screen.getByText('立即注册,免费探索所有内容')).toBeInTheDocument();
});
it('should have CTA buttons with correct links', () => {
render(<HomePage />);
const startLearning = screen.getByText('开始探索').closest('a');
expect(startLearning).toHaveAttribute('href', '/courses');
const registerBtn = screen.getAllByText('免费注册');
expect(registerBtn.length).toBeGreaterThanOrEqual(1);
});
it('should render course descriptions', () => {
render(<HomePage />);
expect(screen.getByText(/面向零基础用户/)).toBeInTheDocument();
expect(screen.getByText(/系统学习提示词编写技巧/)).toBeInTheDocument();
expect(screen.getByText(/学习使用 AI 工具/)).toBeInTheDocument();
});
it('should render sandbox with mock chat interface', () => {
render(<HomePage />);
expect(screen.getByText(/你好!我是宇之然 AI 助手/)).toBeInTheDocument();
expect(screen.getByText(/正在输入/)).toBeInTheDocument();
});
});