home.spec.ts 5.6 KB

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