gitea源码

example.test.e2e.ts 2.2KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. import {test, expect} from '@playwright/test';
  2. import {login_user, save_visual, load_logged_in_context} from './utils_e2e.ts';
  3. test.beforeAll(async ({browser}, workerInfo) => {
  4. await login_user(browser, workerInfo, 'user2');
  5. });
  6. test('homepage', async ({page}) => {
  7. const response = await page.goto('/');
  8. expect(response?.status()).toBe(200); // Status OK
  9. await expect(page).toHaveTitle(/^Gitea: Git with a cup of tea\s*$/);
  10. await expect(page.locator('.logo')).toHaveAttribute('src', '/assets/img/logo.svg');
  11. });
  12. test('register', async ({page}, workerInfo) => {
  13. const response = await page.goto('/user/sign_up');
  14. expect(response?.status()).toBe(200); // Status OK
  15. await page.locator('input[name=user_name]').fill(`e2e-test-${workerInfo.workerIndex}`);
  16. await page.locator('input[name=email]').fill(`e2e-test-${workerInfo.workerIndex}@test.com`);
  17. await page.locator('input[name=password]').fill('test123test123');
  18. await page.locator('input[name=retype]').fill('test123test123');
  19. await page.click('form button.ui.primary.button:visible');
  20. // Make sure we routed to the home page. Else login failed.
  21. expect(page.url()).toBe(`${workerInfo.project.use.baseURL}/`);
  22. await expect(page.locator('.secondary-nav span>img.ui.avatar')).toBeVisible();
  23. await expect(page.locator('.ui.positive.message.flash-success')).toHaveText('Account was successfully created. Welcome!');
  24. save_visual(page);
  25. });
  26. test('login', async ({page}, workerInfo) => {
  27. const response = await page.goto('/user/login');
  28. expect(response?.status()).toBe(200); // Status OK
  29. await page.locator('input[name=user_name]').fill(`user2`);
  30. await page.locator('input[name=password]').fill(`password`);
  31. await page.click('form button.ui.primary.button:visible');
  32. await page.waitForLoadState('networkidle'); // eslint-disable-line playwright/no-networkidle
  33. expect(page.url()).toBe(`${workerInfo.project.use.baseURL}/`);
  34. save_visual(page);
  35. });
  36. test('logged in user', async ({browser}, workerInfo) => {
  37. const context = await load_logged_in_context(browser, workerInfo, 'user2');
  38. const page = await context.newPage();
  39. await page.goto('/');
  40. // Make sure we routed to the home page. Else login failed.
  41. expect(page.url()).toBe(`${workerInfo.project.use.baseURL}/`);
  42. save_visual(page);
  43. });