home.spec.ts 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. import { test, expect } from '@playwright/test';
  2. test('Visit User home', async({ page }) => {
  3. await page.goto('dummy');
  4. // Open PersonalDropdown
  5. await page.getByTestId('personal-dropdown-button').click();
  6. await expect(page.getByTestId('grw-personal-dropdown-menu-user-home')).toBeVisible();
  7. // Click UserHomeMenu
  8. await page.getByTestId('grw-personal-dropdown-menu-user-home').click();
  9. await expect(page.getByTestId('grw-users-info')).toBeVisible();
  10. });
  11. test('Vist User settings', async({ page }) => {
  12. await page.goto('dummy');
  13. // Open PersonalDropdown
  14. await page.getByTestId('personal-dropdown-button').click();
  15. await expect(page.getByTestId('grw-personal-dropdown-menu-user-home')).toBeVisible();
  16. // Click UserSettingsMenu
  17. page.getByTestId('grw-personal-dropdown-menu-user-settings').click();
  18. await expect(page.getByTestId('grw-user-settings')).toBeVisible();
  19. });
  20. test('Open questionnaire modal', async({ page }) => {
  21. await page.goto('/dummy');
  22. // Open PersonalDropdown
  23. await page.getByTestId('personal-dropdown-button').click();
  24. await expect(page.getByTestId('grw-personal-dropdown-menu-user-home')).toBeVisible();
  25. // Expect the questionnaire modal to be displayed when the QuestionnaireModalToggleButton is clicked
  26. await page.getByTestId('grw-proactive-questionnaire-modal-toggle-btn').click();
  27. await expect(page.getByTestId('grw-proactive-questionnaire-modal')).toBeVisible();
  28. });
  29. test('Access User information', async({ page }) => {
  30. await page.goto('/me');
  31. // Click BasicInfoSettingUpdateButton
  32. await expect(page.getByTestId('grw-user-settings')).toBeVisible();
  33. // Expect a success toaster to be displayed when the BasicInfoSettingUpdateButton is pressed
  34. await page.getByTestId('grw-besic-info-settings-update-button').click();
  35. await expect(page.locator('.Toastify__toast')).toBeVisible();
  36. });
  37. test('Access External account', async({ page }) => {
  38. await page.goto('/me');
  39. // Click ExternalAccountsTabButton
  40. await expect(page.getByTestId('grw-user-settings')).toBeVisible();
  41. await page.getByTestId('external-accounts-tab-button').first().click();
  42. // Expect an error toaster to be displayed when the AddExternalAccountsButton is pressed
  43. await page.getByTestId('grw-external-account-add-button').click();
  44. await expect(page.getByTestId('grw-associate-modal')).toBeVisible();
  45. await page.getByTestId('add-external-account-button').click();
  46. await expect(page.locator('.Toastify__toast')).toBeVisible();
  47. await page.locator('.Toastify__close-button').click();
  48. await expect(page.locator('.Toastify__toast')).not.toBeVisible();
  49. });
  50. test('Access Password setting', async({ page }) => {
  51. await page.goto('/me');
  52. // Click PasswordSettingTabButton
  53. await expect(page.getByTestId('grw-user-settings')).toBeVisible();
  54. await page.getByTestId('password-settings-tab-button').first().click();
  55. // Expect three error toasters to be displayed when the PasswordUpdateButton is pressed
  56. await page.getByTestId('grw-password-settings-update-button').click();
  57. const toastElements = page.locator('.Toastify__toast');
  58. const toastElementsCount = await toastElements.count();
  59. for (let i = 0; i < toastElementsCount; i++) {
  60. // eslint-disable-next-line no-await-in-loop
  61. await toastElements.nth(i).click();
  62. }
  63. await expect(page.getByTestId('.Toastify__toast')).not.toBeVisible();
  64. });
  65. test('Access API setting', async({ page }) => {
  66. await page.goto('/me');
  67. // Click ApiSettingTabButton
  68. await expect(page.getByTestId('grw-user-settings')).toBeVisible();
  69. await page.getByTestId('api-settings-tab-button').first().click();
  70. // Expect a success toaster to be displayed when the UpdateApiTokenButton is clicked
  71. await page.getByTestId('grw-api-settings-update-button').click();
  72. await expect(page.locator('.Toastify__toast')).toBeVisible();
  73. });
  74. test('Access In-App Notification setting', async({ page }) => {
  75. await page.goto('/me');
  76. // Click InAppNotificationSettingTabButton
  77. await expect(page.getByTestId('grw-user-settings')).toBeVisible();
  78. await page.getByTestId('in-app-notification-settings-tab-button').first().click();
  79. // Expect a success toaster to be displayed when the InAppNotificationSettingsUpdateButton is clicked
  80. await page.getByTestId('grw-in-app-notification-settings-update-button').click();
  81. await expect(page.locator('.Toastify__toast')).toBeVisible();
  82. });
  83. test('Acccess Other setting', async({ page }) => {
  84. await page.goto('/me');
  85. // Click OtherSettingTabButton
  86. await expect(page.getByTestId('grw-user-settings')).toBeVisible();
  87. await page.getByTestId('other-settings-tab-button').first().click();
  88. // Expect a success toaster to be displayed when the QuestionnaireSettingsUpdateButton is clicked
  89. await page.getByTestId('grw-questionnaire-settings-update-btn').click();
  90. await expect(page.locator('.Toastify__toast')).toBeVisible();
  91. });