mini-games.spec.js 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. const { test, expect } = require('@playwright/test');
  2. const { loginAs, BASE_URL } = require('../../helpers/auth');
  3. const { assertApiSuccess, assertApiError, authHeaders } = require('../../helpers/utils');
  4. test.describe('【孩子】小游戏', function() {
  5. var auth;
  6. test.beforeAll(async function({ browser }) {
  7. auth = await loginAs(browser, 'child');
  8. });
  9. test('[场景1] 保存游戏记录 — 舒尔特方格', async function({ page }) {
  10. var resp = await page.request.post(BASE_URL + '/api/game/record', {
  11. headers: authHeaders(auth),
  12. data: { childId: 1003, gameCode: 'schulte', score: 95, completionTime: 30 },
  13. });
  14. var data = await assertApiSuccess(resp);
  15. expect(data).toBeTruthy();
  16. });
  17. test('[场景2] 保存游戏记录 — 猜数字', async function({ page }) {
  18. var resp = await page.request.post(BASE_URL + '/api/game/record', {
  19. headers: authHeaders(auth),
  20. data: { childId: 1003, gameCode: 'guess-number', score: 80, completionTime: 60 },
  21. });
  22. await assertApiSuccess(resp);
  23. });
  24. test('[场景3] 获取游戏记录历史 — 返回记录', async function({ page }) {
  25. var resp = await page.request.post(BASE_URL + '/api/game/history', {
  26. headers: authHeaders(auth),
  27. data: { childId: 1003, gameCode: 'schulte', page: 1, size: 20 },
  28. });
  29. var data = await assertApiSuccess(resp);
  30. expect(data).toBeTruthy();
  31. });
  32. test('[场景4] 获取最佳成绩 — 返回成绩', async function({ page }) {
  33. var resp = await page.request.post(BASE_URL + '/api/game/best', {
  34. headers: authHeaders(auth),
  35. data: { childId: 1003 },
  36. });
  37. var data = await assertApiSuccess(resp);
  38. expect(data).toBeTruthy();
  39. });
  40. test('[场景5] 保存游戏记录失败 — 空childId期望错误', async function({ page }) {
  41. var resp = await page.request.post(BASE_URL + '/api/game/record', {
  42. headers: authHeaders(auth),
  43. data: {},
  44. });
  45. await assertApiError(resp);
  46. });
  47. });