Spaces:
Running
Running
import { expect, test } from '@playwright/test'; | |
// Checkly is a tool used to monitor deployed environments, such as production or preview environments. | |
// It runs end-to-end tests with the `.check.e2e.ts` extension after each deployment to ensure that the environment is up and running. | |
// With Checkly, you can monitor your production environment and run `*.check.e2e.ts` tests regularly at a frequency of your choice. | |
// If the tests fail, Checkly will notify you via email, Slack, or other channels of your choice. | |
// On the other hand, E2E tests ending with `*.e2e.ts` are only run before deployment. | |
// You can run them locally or on CI to ensure that the application is ready for deployment. | |
// BaseURL needs to be explicitly defined in the test file. | |
// Otherwise, Checkly runtime will throw an exception: `CHECKLY_INVALID_URL: Only URL's that start with http(s)` | |
// You can't use `goto` function directly with a relative path like with other *.e2e.ts tests. | |
// Check the example at https://feedback.checklyhq.com/changelog/new-changelog-436 | |
test.describe('Sanity', () => { | |
test.describe('Static pages', () => { | |
test('should display the homepage', async ({ page, baseURL }) => { | |
await page.goto(`${baseURL}/`); | |
await expect( | |
page.getByRole('heading', { name: 'Boilerplate Code for Your Next.js Project with Tailwind CSS' }), | |
).toBeVisible(); | |
}); | |
test('should navigate to the about page', async ({ page, baseURL }) => { | |
await page.goto(`${baseURL}/`); | |
await page.getByRole('link', { name: 'About' }).click(); | |
await expect(page).toHaveURL(/about$/); | |
await expect( | |
page.getByText('Welcome to our About page', { exact: false }), | |
).toBeVisible(); | |
}); | |
test('should navigate to the portfolio page', async ({ page, baseURL }) => { | |
await page.goto(`${baseURL}/`); | |
await page.getByRole('link', { name: 'Portfolio' }).click(); | |
await expect(page).toHaveURL(/portfolio$/); | |
await expect( | |
page.locator('main').getByRole('link', { name: /^Portfolio/ }), | |
).toHaveCount(6); | |
}); | |
}); | |
}); | |