bank-name-status-toggle.spec.ts 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. import { test, expect } from '@playwright/test';
  2. test.describe('银行名称管理 - 状态切换验证', () => {
  3. test('验证状态切换功能', async ({ page }) => {
  4. test.setTimeout(90000);
  5. // 登录
  6. await page.goto('http://localhost:8080/admin/login');
  7. await page.locator('input[name="username"]').fill('admin');
  8. await page.locator('input[type="password"]').fill('admin123');
  9. await page.click('button:has-text("登录")');
  10. await page.waitForTimeout(2000);
  11. // 访问银行名称页面
  12. await page.goto('http://localhost:8080/admin/bank-names', { waitUntil: 'networkidle', timeout: 30000 });
  13. await page.waitForTimeout(2000);
  14. console.log('=== 开始验证银行名称状态切换 ===');
  15. // 获取初始状态
  16. const firstRow = page.locator('table tbody tr').first();
  17. const initialStatusText = await firstRow.locator('td').nth(3).textContent();
  18. console.log('初始状态:', initialStatusText?.trim());
  19. // 打开编辑对话框
  20. await firstRow.locator('button').first().click();
  21. await page.waitForTimeout(1000);
  22. // 查找并点击状态开关
  23. const statusSwitch = page.locator('button[role="switch"]').first();
  24. const beforeState = await statusSwitch.isChecked();
  25. console.log('开关状态(点击前):', beforeState ? '启用' : '禁用');
  26. await statusSwitch.click();
  27. await page.waitForTimeout(500);
  28. const afterState = await statusSwitch.isChecked();
  29. console.log('开关状态(点击后):', afterState ? '启用' : '禁用');
  30. expect(afterState).toBe(!beforeState);
  31. console.log('状态切换成功!');
  32. // 提交 - 使用更具体的选择器
  33. await page.locator('button:has-text("更新")').click();
  34. await page.waitForTimeout(2000);
  35. console.log('已提交更改');
  36. // 验证更新后的状态
  37. await page.goto('http://localhost:8080/admin/bank-names', { waitUntil: 'networkidle' });
  38. await page.waitForTimeout(1000);
  39. const updatedFirstRow = page.locator('table tbody tr').first();
  40. const finalStatusText = await updatedFirstRow.locator('td').nth(3).textContent();
  41. console.log('更新后状态:', finalStatusText?.trim());
  42. // 验证状态已更新
  43. const expectedStatus = !beforeState ? '启用' : '禁用';
  44. expect(finalStatusText?.trim()).toContain(expectedStatus);
  45. console.log('状态已成功更新为:', expectedStatus);
  46. // 恢复原状态
  47. await updatedFirstRow.locator('button').first().click();
  48. await page.waitForTimeout(1000);
  49. const statusSwitch2 = page.locator('button[role="switch"]').first();
  50. await statusSwitch2.click();
  51. await page.waitForTimeout(500);
  52. await page.locator('button:has-text("更新")').click();
  53. await page.waitForTimeout(2000);
  54. console.log('已恢复原状态');
  55. console.log('=== 验证完成 ===');
  56. });
  57. });