Files

74 lines
3.2 KiB
TypeScript

import { expect, test } from '@playwright/test';
import { addWebsite, deleteWebsite, loginPage } from './helpers';
test.describe('Website tests', () => {
test('adds a website', async ({ page, request }) => {
const auth = await loginPage(page, request);
await page.goto('/settings/websites');
await page.getByTestId('button-website-add').click();
await expect(page.getByText(/Add website/i)).toBeVisible();
await page.getByTestId('input-name').locator('input').fill('Add test');
await page.getByTestId('input-domain').locator('input').fill('addtest.com');
await page.getByTestId('button-submit').click();
await expect(page.locator('td[label="Name"]')).toContainText('Add test');
await expect(page.locator('td[label="Domain"]')).toContainText('addtest.com');
await page.getByTestId('link-button-edit').first().click();
await expect(page.getByText(/Details/i)).toBeVisible();
const websiteId = await page.getByTestId('text-field-websiteId').locator('input').inputValue();
await deleteWebsite(request, auth, websiteId);
await page.goto('/settings/websites');
await expect(page.getByText(/Add test/i)).toHaveCount(0);
});
test('edits a website', async ({ page, request }) => {
const auth = await loginPage(page, request);
await addWebsite(request, auth, 'Update test', 'updatetest.com');
await page.goto('/settings/websites');
await page.getByTestId('link-button-edit').first().click();
await expect(page.getByText(/Details/i)).toBeVisible();
await page.getByTestId('input-name').locator('input').fill('Updated website');
await page.getByTestId('input-domain').locator('input').fill('updatedwebsite.com');
await page.getByTestId('button-submit').click();
await expect(page.getByTestId('input-name').locator('input')).toHaveValue('Updated website');
await expect(page.getByTestId('input-domain').locator('input')).toHaveValue(
'updatedwebsite.com',
);
await page.getByText(/Tracking code/i).click();
await expect(page.locator('textarea')).toContainText('/script.js');
await page.getByText(/Details/i).click();
const websiteId = await page.getByTestId('text-field-websiteId').locator('input').inputValue();
await deleteWebsite(request, auth, websiteId);
await page.goto('/settings/websites');
await expect(page.getByText(/Update test/i)).toHaveCount(0);
});
test('deletes a website', async ({ page, request }) => {
const auth = await loginPage(page, request);
await addWebsite(request, auth, 'Delete test', 'deletetest.com');
await page.goto('/settings/websites');
await page.getByTestId('link-button-edit').first().click();
await expect(page.getByText(/Data/i)).toBeVisible();
await page.getByText(/Data/i).click();
await expect(page.getByText(/All website data will be deleted./i)).toBeVisible();
await page.getByTestId('button-delete').click();
await expect(page.getByText(/Type DELETE in the box below to confirm./i)).toBeVisible();
await page.locator('input[name="confirm"]').fill('DELETE');
await page.locator('button[type="submit"]').click();
await expect(page.getByText(/Delete test/i)).toHaveCount(0);
});
});