install.spec.ts 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. import { expect, test } from '@playwright/test';
  2. test('Installer', async ({ page }) => {
  3. await page.goto('/');
  4. await page.waitForURL('/installer');
  5. // show installer form
  6. await expect(page.getByTestId('installerForm')).toBeVisible();
  7. // choose Japanese
  8. await page.getByTestId('dropdownLanguage').click();
  9. await page.getByTestId('dropdownLanguageMenu-ja_JP').click();
  10. await expect(page.getByRole('textbox', { name: 'ユーザーID' })).toBeVisible();
  11. await expect(
  12. page.getByRole('textbox', { name: 'ユーザーID' }),
  13. ).toHaveAttribute('placeholder', 'ユーザーID');
  14. // choose Chinese
  15. await page.getByTestId('dropdownLanguage').click();
  16. await page.getByTestId('dropdownLanguageMenu-zh_CN').click();
  17. await expect(page.getByRole('textbox', { name: '用户ID' })).toBeVisible();
  18. await expect(page.getByRole('textbox', { name: '用户ID' })).toHaveAttribute(
  19. 'placeholder',
  20. '用户ID',
  21. );
  22. // // choose English
  23. await page.getByTestId('dropdownLanguage').click();
  24. await page.getByTestId('dropdownLanguageMenu-en_US').click();
  25. await expect(page.getByRole('textbox', { name: 'User ID' })).toBeVisible();
  26. await expect(page.getByRole('textbox', { name: 'User ID' })).toHaveAttribute(
  27. 'placeholder',
  28. 'User ID',
  29. );
  30. await page.getByRole('textbox', { name: 'User ID' }).focus();
  31. // fill form
  32. await page.getByLabel('User ID').fill('admin');
  33. await page.getByLabel('User ID').press('Tab');
  34. await expect(page.getByRole('textbox', { name: 'Name' })).toBeFocused();
  35. await page.getByLabel('Name').fill('Admin');
  36. await page.getByLabel('Name').press('Tab');
  37. await expect(page.getByRole('textbox', { name: 'Email' })).toBeFocused();
  38. await page.getByLabel('Email').fill('admin@example.com');
  39. await page.getByLabel('Email').press('Tab');
  40. await expect(page.getByRole('textbox', { name: 'Password' })).toBeFocused();
  41. await page.getByLabel('Password').fill('adminadmin');
  42. await page.getByLabel('Password').press('Enter');
  43. await page.waitForURL('/', { timeout: 20000 });
  44. await expect(page).toHaveTitle(/\/ - GROWI/);
  45. });