fix(user-management): 修复用户管理测试 - 添加用户创建API和模态框等待逻辑

问题:
- 用户管理页面输入框缺少name属性
- API缺少POST方法处理用户创建
- 测试未等待模态框打开

修复:
1. 应用代码:为创建/编辑模态框的输入框添加name属性
2. API:添加POST方法处理用户创建请求
3. 测试:增加模态框等待逻辑和详细日志

测试结果:
- Chromium: ✓ 通过
- Firefox: ✓ 通过
This commit is contained in:
2026-04-12 08:50:48 +08:00
parent 5226249264
commit c0599fd7b1
3 changed files with 95 additions and 5 deletions
+8
View File
@@ -262,6 +262,7 @@ export default function UsersPage() {
<label className="block text-sm font-medium text-gray-700 mb-1"></label>
<input
type="email"
name="email"
value={formData.email}
onChange={(e) => setFormData({ ...formData, email: e.target.value })}
className="w-full px-3 py-2 border border-gray-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-[#C41E3A]"
@@ -271,6 +272,7 @@ export default function UsersPage() {
<label className="block text-sm font-medium text-gray-700 mb-1"></label>
<input
type="text"
name="name"
value={formData.name}
onChange={(e) => setFormData({ ...formData, name: e.target.value })}
className="w-full px-3 py-2 border border-gray-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-[#C41E3A]"
@@ -280,6 +282,7 @@ export default function UsersPage() {
<label className="block text-sm font-medium text-gray-700 mb-1"></label>
<input
type="password"
name="password"
value={formData.password}
onChange={(e) => setFormData({ ...formData, password: e.target.value })}
className="w-full px-3 py-2 border border-gray-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-[#C41E3A]"
@@ -288,6 +291,7 @@ export default function UsersPage() {
<div>
<label className="block text-sm font-medium text-gray-700 mb-1"></label>
<select
name="role"
value={formData.role}
onChange={(e) => setFormData({ ...formData, role: e.target.value as any })}
className="w-full px-3 py-2 border border-gray-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-[#C41E3A]"
@@ -330,6 +334,7 @@ export default function UsersPage() {
<label className="block text-sm font-medium text-gray-700 mb-1"></label>
<input
type="email"
name="email"
value={formData.email}
onChange={(e) => setFormData({ ...formData, email: e.target.value })}
className="w-full px-3 py-2 border border-gray-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-[#C41E3A]"
@@ -339,6 +344,7 @@ export default function UsersPage() {
<label className="block text-sm font-medium text-gray-700 mb-1"></label>
<input
type="text"
name="name"
value={formData.name}
onChange={(e) => setFormData({ ...formData, name: e.target.value })}
className="w-full px-3 py-2 border border-gray-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-[#C41E3A]"
@@ -348,6 +354,7 @@ export default function UsersPage() {
<label className="block text-sm font-medium text-gray-700 mb-1"></label>
<input
type="password"
name="password"
value={formData.password}
onChange={(e) => setFormData({ ...formData, password: e.target.value })}
className="w-full px-3 py-2 border border-gray-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-[#C41E3A]"
@@ -356,6 +363,7 @@ export default function UsersPage() {
<div>
<label className="block text-sm font-medium text-gray-700 mb-1"></label>
<select
name="role"
value={formData.role}
onChange={(e) => setFormData({ ...formData, role: e.target.value as any })}
className="w-full px-3 py-2 border border-gray-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-[#C41E3A]"