feat(e2e-tests): 添加端到端测试框架及测试用例

refactor(components): 调整头部和页脚布局样式
style(hero-section): 更新徽章动画效果

docs: 添加测试框架README文档
test: 实现首页、导航和联系表单的测试用例
ci: 添加CI测试脚本和配置
This commit is contained in:
张翔
2026-02-02 19:36:33 +08:00
parent 150024b6ac
commit f14002559e
30 changed files with 6377 additions and 17 deletions
+9 -11
View File
@@ -16,17 +16,15 @@ export function Footer() {
<p className="text-gray-400 text-sm leading-relaxed mb-6">
{COMPANY_INFO.description}
</p>
<div className="flex gap-4">
{SOCIAL_LINKS.map((social) => (
<a
key={social.name}
href={social.href}
className="w-10 h-10 rounded-full bg-white/10 flex items-center justify-center hover:bg-white/20 transition-colors"
aria-label={social.name}
>
<span className="text-sm">{social.name[0]}</span>
</a>
))}
<div className="flex flex-col items-start gap-3">
<span className="text-gray-400 text-sm"></span>
<div className="w-24 h-24 bg-white rounded-lg p-2">
<img
src="/images/qrcode-wechat.png"
alt="微信公众号二维码"
className="w-full h-full object-contain"
/>
</div>
</div>
</div>
+2 -2
View File
@@ -72,12 +72,12 @@ export function Header() {
)}
>
<div className="container-custom">
<div className="flex items-center justify-between h-20">
<div className="flex items-center justify-center h-20 relative">
{/* Logo */}
<Link
href="#home"
onClick={(e) => handleNavClick(e, '#home')}
className="flex items-center"
className="flex items-center absolute left-0"
>
<img src="/logo.svg" alt={COMPANY_INFO.name} className="h-12 w-auto" />
</Link>
+9 -4
View File
@@ -29,10 +29,15 @@ export function HeroSection() {
animate={{ opacity: 1, y: 0 }}
transition={{ duration: 0.6 }}
>
<Badge variant="secondary" className="mb-8 px-4 py-2 text-sm">
<span className="w-2 h-2 rounded-full bg-green-500 mr-2 animate-pulse" />
</Badge>
<div className="inline-flex items-center gap-2 px-5 py-2.5 rounded-full bg-gradient-to-r from-slate-50 to-slate-100 border border-slate-200 shadow-sm mb-8">
<span className="relative flex h-2.5 w-2.5">
<span className="animate-ping absolute inline-flex h-full w-full rounded-full bg-emerald-400 opacity-75" />
<span className="relative inline-flex rounded-full h-2.5 w-2.5 bg-emerald-500" />
</span>
<span className="text-sm font-medium text-slate-700 tracking-wide">
</span>
</div>
</motion.div>
{/* Main Title */}