42 lines
1.3 KiB
TypeScript
42 lines
1.3 KiB
TypeScript
import { test, expect } from '@playwright/test';
|
|
import { seedCampaign, deleteCampaign, type SeededCampaign } from '../../fixtures/api';
|
|
|
|
test.describe('Campaign delete', () => {
|
|
let campaign: SeededCampaign;
|
|
|
|
test.beforeEach(async ({ request }) => {
|
|
campaign = await seedCampaign(request);
|
|
});
|
|
|
|
test.afterEach(async ({ request }) => {
|
|
if (campaign?.id) await deleteCampaign(request, campaign.id);
|
|
});
|
|
|
|
test('deletes a campaign after accepting confirm and redirects to the list', async ({
|
|
page,
|
|
request,
|
|
}) => {
|
|
page.on('dialog', (dialog) => dialog.accept());
|
|
|
|
await page.goto(`/campaigns/${campaign.id}`);
|
|
await page.getByRole('button', { name: /^Supprimer$/i }).click();
|
|
|
|
await expect(page).toHaveURL(/\/campaigns$/);
|
|
|
|
const res = await request.get(`/api/campaigns/${campaign.id}`);
|
|
expect(res.status()).toBe(404);
|
|
});
|
|
|
|
test('keeps the campaign when confirm is dismissed', async ({ page, request }) => {
|
|
page.on('dialog', (dialog) => dialog.dismiss());
|
|
|
|
await page.goto(`/campaigns/${campaign.id}`);
|
|
await page.getByRole('button', { name: /^Supprimer$/i }).click();
|
|
|
|
await expect(page).toHaveURL(new RegExp(`/campaigns/${campaign.id}$`));
|
|
|
|
const res = await request.get(`/api/campaigns/${campaign.id}`);
|
|
expect(res.ok()).toBeTruthy();
|
|
});
|
|
});
|