home.spec.ts 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142
  1. import { expect, test } 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(
  7. page.getByTestId('grw-personal-dropdown-menu-user-home'),
  8. ).toBeVisible();
  9. // Click UserHomeMenu
  10. await page.getByTestId('grw-personal-dropdown-menu-user-home').click();
  11. await expect(page.getByTestId('grw-users-info')).toBeVisible();
  12. });
  13. test('Vist User settings', async ({ page }) => {
  14. await page.goto('dummy');
  15. // Open PersonalDropdown
  16. await page.getByTestId('personal-dropdown-button').click();
  17. await expect(
  18. page.getByTestId('grw-personal-dropdown-menu-user-home'),
  19. ).toBeVisible();
  20. // Click UserSettingsMenu
  21. page.getByTestId('grw-personal-dropdown-menu-user-settings').click();
  22. await expect(page.getByTestId('grw-user-settings')).toBeVisible();
  23. });
  24. test('Access User information', async ({ page }) => {
  25. await page.goto('/me');
  26. // Click BasicInfoSettingUpdateButton
  27. await expect(page.getByTestId('grw-user-settings')).toBeVisible();
  28. // Expect a success toaster to be displayed when the BasicInfoSettingUpdateButton is pressed
  29. await page.getByTestId('grw-besic-info-settings-update-button').click();
  30. await expect(page.locator('.Toastify__toast')).toBeVisible();
  31. });
  32. test('Access External account', async ({ page }) => {
  33. await page.goto('/me');
  34. // Click ExternalAccountsTabButton
  35. await expect(page.getByTestId('grw-user-settings')).toBeVisible();
  36. await page.getByTestId('external-accounts-tab-button').first().click();
  37. // Expect an error toaster to be displayed when the AddExternalAccountsButton is pressed
  38. await page.getByTestId('grw-external-account-add-button').click();
  39. await expect(page.getByTestId('grw-associate-modal')).toBeVisible();
  40. await page.getByTestId('add-external-account-button').click();
  41. await expect(page.locator('.Toastify__toast')).toBeVisible();
  42. await page.locator('.Toastify__close-button').click();
  43. await expect(page.locator('.Toastify__toast')).not.toBeVisible();
  44. });
  45. test('Access Password setting', async ({ page }) => {
  46. await page.goto('/me');
  47. // Click PasswordSettingTabButton
  48. await expect(page.getByTestId('grw-user-settings')).toBeVisible();
  49. await page.getByTestId('password-settings-tab-button').first().click();
  50. // Expect three error toasters to be displayed when the PasswordUpdateButton is pressed
  51. await page.getByTestId('grw-password-settings-update-button').click();
  52. const toastElements = page.locator('.Toastify__toast');
  53. const toastElementsCount = await toastElements.count();
  54. for (let i = 0; i < toastElementsCount; i++) {
  55. // eslint-disable-next-line no-await-in-loop
  56. await toastElements.nth(i).click();
  57. }
  58. await expect(page.getByTestId('.Toastify__toast')).not.toBeVisible();
  59. });
  60. test('Access API setting', async ({ page }) => {
  61. await page.goto('/me');
  62. // Click ApiSettingTabButton
  63. await expect(page.getByTestId('grw-user-settings')).toBeVisible();
  64. await page.getByTestId('api-settings-tab-button').first().click();
  65. // Expect a success toaster to be displayed when the UpdateApiTokenButton is clicked
  66. await page.getByTestId('grw-api-settings-update-button').click();
  67. await expect(page.locator('.Toastify__toast')).toBeVisible();
  68. });
  69. test('Access Access Token setting', async ({ page }) => {
  70. await page.goto('/me');
  71. // Click ApiSettingTabButton
  72. await expect(page.getByTestId('grw-user-settings')).toBeVisible();
  73. await page.getByTestId('api-settings-tab-button').first().click();
  74. // Expect a success toaster to be displayed when new Access Token is generated
  75. await page.getByTestId('btn-accesstoken-toggleform').click();
  76. await page.getByTestId('grw-accesstoken-textarea-description').fill('dummy');
  77. await page.getByTestId('grw-accesstoken-checkbox-read:*').check();
  78. await page.getByTestId('grw-accesstoken-create-button').click();
  79. await expect(page.locator('.Toastify__toast')).toBeVisible();
  80. await expect(
  81. page.getByTestId('grw-accesstoken-new-token-display'),
  82. ).toBeVisible();
  83. // Expect a success toaster to be displayed when the Access Token is deleted
  84. await page.getByTestId('grw-accesstoken-delete-button').click();
  85. await page.getByTestId('grw-accesstoken-cancel-button-in-modal').click();
  86. await page.getByTestId('grw-accesstoken-delete-button').click();
  87. await page.getByTestId('grw-accesstoken-delete-button-in-modal').click();
  88. await expect(page.locator('.Toastify__toast')).toBeVisible();
  89. });
  90. test('Access In-App Notification setting', async ({ page }) => {
  91. await page.goto('/me');
  92. // Click InAppNotificationSettingTabButton
  93. await expect(page.getByTestId('grw-user-settings')).toBeVisible();
  94. await page
  95. .getByTestId('in-app-notification-settings-tab-button')
  96. .first()
  97. .click();
  98. // Expect a success toaster to be displayed when the InAppNotificationSettingsUpdateButton is clicked
  99. await page
  100. .getByTestId('grw-in-app-notification-settings-update-button')
  101. .click();
  102. await expect(page.locator('.Toastify__toast')).toBeVisible();
  103. });
  104. test('Acccess Other setting', async ({ page }) => {
  105. await page.goto('/me');
  106. // Click OtherSettingTabButton
  107. await expect(page.getByTestId('grw-user-settings')).toBeVisible();
  108. await page.getByTestId('other-settings-tab-button').first().click();
  109. // Expect a success toaster to be displayed when the updating UI button is clicked
  110. await page.getByTestId('grw-ui-settings-update-btn').click();
  111. await expect(page.locator('.Toastify__toast')).toBeVisible();
  112. });