install.spec.ts 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. import { test, expect } 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(page.getByRole('textbox', { name: 'ユーザーID' })).toHaveAttribute('placeholder', 'ユーザーID');
  12. // choose Chinese
  13. await page.getByTestId('dropdownLanguage').click();
  14. await page.getByTestId('dropdownLanguageMenu-zh_CN').click();
  15. await expect(page.getByRole('textbox', { name: '用户ID' })).toBeVisible();
  16. await expect(page.getByRole('textbox', { name: '用户ID' })).toHaveAttribute('placeholder', '用户ID');
  17. // // choose English
  18. await page.getByTestId('dropdownLanguage').click();
  19. await page.getByTestId('dropdownLanguageMenu-en_US').click();
  20. await expect(page.getByRole('textbox', { name: 'User ID' })).toBeVisible();
  21. await expect(page.getByRole('textbox', { name: 'User ID' })).toHaveAttribute('placeholder', 'User ID');
  22. await page.getByRole('textbox', { name: 'User ID' }).focus();
  23. // fill form
  24. await page.getByLabel('User ID').fill('admin');
  25. await page.getByLabel('User ID').press('Tab');
  26. await expect(page.getByRole('textbox', { name: 'Name' })).toBeFocused();
  27. await page.getByLabel('Name').fill('Admin');
  28. await page.getByLabel('Name').press('Tab');
  29. await expect(page.getByRole('textbox', { name: 'Email' })).toBeFocused();
  30. await page.getByLabel('Email').fill('admin@example.com');
  31. await page.getByLabel('Email').press('Tab');
  32. await expect(page.getByRole('textbox', { name: 'Password' })).toBeFocused();
  33. await page.getByLabel('Password').fill('adminadmin');
  34. await page.getByLabel('Password').press('Enter');
  35. await page.waitForURL('/', { timeout: 20000 });
  36. await expect(page).toHaveTitle(/\/ - GROWI/);
  37. });