home.spec.ts 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  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('Access User information', async({ page }) => {
  21. await page.goto('/me');
  22. // Click BasicInfoSettingUpdateButton
  23. await expect(page.getByTestId('grw-user-settings')).toBeVisible();
  24. // Expect a success toaster to be displayed when the BasicInfoSettingUpdateButton is pressed
  25. await page.getByTestId('grw-besic-info-settings-update-button').click();
  26. await expect(page.locator('.Toastify__toast')).toBeVisible();
  27. });
  28. test('Access External account', async({ page }) => {
  29. await page.goto('/me');
  30. // Click ExternalAccountsTabButton
  31. await expect(page.getByTestId('grw-user-settings')).toBeVisible();
  32. await page.getByTestId('external-accounts-tab-button').first().click();
  33. // Expect an error toaster to be displayed when the AddExternalAccountsButton is pressed
  34. await page.getByTestId('grw-external-account-add-button').click();
  35. await expect(page.getByTestId('grw-associate-modal')).toBeVisible();
  36. await page.getByTestId('add-external-account-button').click();
  37. await expect(page.locator('.Toastify__toast')).toBeVisible();
  38. await page.locator('.Toastify__close-button').click();
  39. await expect(page.locator('.Toastify__toast')).not.toBeVisible();
  40. });
  41. test('Access Password setting', async({ page }) => {
  42. await page.goto('/me');
  43. // Click PasswordSettingTabButton
  44. await expect(page.getByTestId('grw-user-settings')).toBeVisible();
  45. await page.getByTestId('password-settings-tab-button').first().click();
  46. // Expect three error toasters to be displayed when the PasswordUpdateButton is pressed
  47. await page.getByTestId('grw-password-settings-update-button').click();
  48. const toastElements = page.locator('.Toastify__toast');
  49. const toastElementsCount = await toastElements.count();
  50. for (let i = 0; i < toastElementsCount; i++) {
  51. // eslint-disable-next-line no-await-in-loop
  52. await toastElements.nth(i).click();
  53. }
  54. await expect(page.getByTestId('.Toastify__toast')).not.toBeVisible();
  55. });
  56. test('Access API setting', async({ page }) => {
  57. await page.goto('/me');
  58. // Click ApiSettingTabButton
  59. await expect(page.getByTestId('grw-user-settings')).toBeVisible();
  60. await page.getByTestId('api-settings-tab-button').first().click();
  61. // Expect a success toaster to be displayed when the UpdateApiTokenButton is clicked
  62. await page.getByTestId('grw-api-settings-update-button').click();
  63. await expect(page.locator('.Toastify__toast')).toBeVisible();
  64. });
  65. test('Access Access Token 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 new Access Token is generated
  71. await page.getByTestId('btn-accesstoken-toggleform').click();
  72. await page.getByTestId('grw-accesstoken-textare-description').fill('dummy');
  73. await page.getByTestId('grw-accesstoken-create-button').click();
  74. await expect(page.locator('.Toastify__toast')).toBeVisible();
  75. await expect(page.locator('grw-accesstokne-new-token-display')).toBeVisible();
  76. // Expect a success toaster to be displayed when the Access Token is deleted
  77. await page.getByTestId('grw-accesstoken-delete-button').click();
  78. await page.getByTestId('grw-accesstoken-cancel-button-in-modal').click();
  79. await page.getByTestId('grw-accesstoken-delete-button').click();
  80. await page.getByTestId('grw-accesstoken-delete-button-in-modal').click();
  81. await expect(page.locator('.Toastify__toast')).toBeVisible();
  82. });
  83. test('Access In-App Notification setting', async({ page }) => {
  84. await page.goto('/me');
  85. // Click InAppNotificationSettingTabButton
  86. await expect(page.getByTestId('grw-user-settings')).toBeVisible();
  87. await page.getByTestId('in-app-notification-settings-tab-button').first().click();
  88. // Expect a success toaster to be displayed when the InAppNotificationSettingsUpdateButton is clicked
  89. await page.getByTestId('grw-in-app-notification-settings-update-button').click();
  90. await expect(page.locator('.Toastify__toast')).toBeVisible();
  91. });
  92. test('Acccess Other setting', async({ page }) => {
  93. await page.goto('/me');
  94. // Click OtherSettingTabButton
  95. await expect(page.getByTestId('grw-user-settings')).toBeVisible();
  96. await page.getByTestId('other-settings-tab-button').first().click();
  97. // Expect a success toaster to be displayed when the updating UI button is clicked
  98. await page.getByTestId('grw-ui-settings-update-btn').click();
  99. await expect(page.locator('.Toastify__toast')).toBeVisible();
  100. });