From c7409fe3727bc07b5084b3ca1a6013cd330284da Mon Sep 17 00:00:00 2001 From: Shabeeb Khalid Date: Fri, 13 Oct 2023 00:10:23 +0300 Subject: [PATCH] test(e2e,playwright): link-ms-user component (#51888) Co-authored-by: Naomi Carrigan --- .../Challenges/ms-trophy/link-ms-user.tsx | 28 +++++--- e2e/link-ms-user.spec.ts | 72 +++++++++++++++++++ 2 files changed, 92 insertions(+), 8 deletions(-) create mode 100644 e2e/link-ms-user.spec.ts diff --git a/client/src/templates/Challenges/ms-trophy/link-ms-user.tsx b/client/src/templates/Challenges/ms-trophy/link-ms-user.tsx index d31d7ee930d..c8a2fce0d57 100644 --- a/client/src/templates/Challenges/ms-trophy/link-ms-user.tsx +++ b/client/src/templates/Challenges/ms-trophy/link-ms-user.tsx @@ -89,7 +89,9 @@ function LinkMsUser({

{t('learn.ms.link-header')}

-

{t('learn.ms.link-signin')}

+

+ {t('learn.ms.link-signin')} +

) : ( @@ -112,9 +114,11 @@ function LinkMsUser({

{t('learn.ms.link-header')}

-

{t('learn.ms.unlinked')}

+

+ {t('learn.ms.unlinked')} +

    -
  1. +
  2. -
  3. {t('learn.ms.link-li-2')}
  4. -
  5. {t('learn.ms.link-li-3')}
  6. -
  7. {t('learn.ms.link-li-4')}
  8. -
  9. +
  10. + {t('learn.ms.link-li-2')} +
  11. +
  12. + {t('learn.ms.link-li-3')} +
  13. +
  14. + {t('learn.ms.link-li-4')} +
  15. +
  16. placeholder
  17. -
  18. {t('learn.ms.link-li-6')}
  19. +
  20. + {t('learn.ms.link-li-6')} +
diff --git a/e2e/link-ms-user.spec.ts b/e2e/link-ms-user.spec.ts new file mode 100644 index 00000000000..f7c309642c3 --- /dev/null +++ b/e2e/link-ms-user.spec.ts @@ -0,0 +1,72 @@ +import { test, expect } from '@playwright/test'; +import translations from '../client/i18n/locales/english/translations.json'; + +test.beforeEach(async ({ page }) => { + await page.goto( + '/learn/foundational-c-sharp-with-microsoft/write-your-first-code-using-c-sharp/trophy-write-your-first-code-using-c-sharp' + ); +}); + +test.afterEach(async ({ page }) => { + await page.close(); +}); + +test.describe('Link MS user component (unlinked signedOut user)', () => { + test('Component has proper main heading and relevant sections', async ({ + page + }) => { + const mainHeading = page.getByRole('heading', { + name: translations.learn.ms['link-header'] + }); + await expect(mainHeading).toBeVisible(); + + const linkSignInText = page.getByTestId('link-signin-text'); + await expect(linkSignInText).toBeVisible(); + }); +}); + +test.describe('Link MS user component (unlinked signedIn user)', () => { + test.use({ storageState: 'playwright/.auth/certified-user.json' }); + + test('Component has proper main heading and relevant sections', async ({ + page + }) => { + const mainHeading = page.getByRole('heading', { + name: translations.learn.ms['link-header'] + }); + await expect(mainHeading).toBeVisible(); + + const linkSignInText = page.getByTestId('unlinked-text'); + await expect(linkSignInText).toBeVisible(); + }); + + test('Component has proper list of actions', async ({ page }) => { + const linkText1 = page.getByTestId('link-li-1-text'); + await expect(linkText1).toBeVisible(); + await expect(linkText1).toContainText( + 'Using a browser where you are logged into your Microsoft account, go to https://learn.microsoft.com/users/me/transcript' + ); + + const linkText2 = page.getByTestId('link-li-2-text'); + await expect(linkText2).toBeVisible(); + await expect(linkText2).toHaveText(translations.learn.ms['link-li-2']); + + const linkText3 = page.getByTestId('link-li-3-text'); + await expect(linkText3).toBeVisible(); + await expect(linkText3).toHaveText(translations.learn.ms['link-li-3']); + + const linkText4 = page.getByTestId('link-li-4-text'); + await expect(linkText4).toBeVisible(); + await expect(linkText4).toHaveText(translations.learn.ms['link-li-4']); + + const linkText5 = page.getByTestId('link-li-5-text'); + await expect(linkText5).toBeVisible(); + await expect(linkText5).toHaveText( + 'Paste the URL into the input below, it should look similar to this: https://learn.microsoft.com/LOCALE/users/USERNAME/transcript/ID' + ); + + const linkText6 = page.getByTestId('link-li-6-text'); + await expect(linkText6).toBeVisible(); + await expect(linkText6).toHaveText(translations.learn.ms['link-li-6']); + }); +});