mirror of
https://github.com/Kong/insomnia
synced 2024-11-08 06:39:48 +00:00
fix: enable confirmation before deleting a test suite [INS-3286] (#6737)
This commit is contained in:
parent
e9e1d27add
commit
3eb6141603
@ -1,5 +1,6 @@
|
||||
import { test } from '../../playwright/test';
|
||||
|
||||
test.describe('design document operations', async () => {
|
||||
test('can name design documents', async ({ page }) => {
|
||||
await page.getByRole('button', { name: ' New Document' }).click();
|
||||
await page.getByPlaceholder('my-spec.yaml').fill('jurassic park');
|
||||
@ -7,3 +8,15 @@ test('can name design documents', async ({ page }) => {
|
||||
await page.getByTestId('project').click();
|
||||
await page.getByLabel('jurassic park').click();
|
||||
});
|
||||
|
||||
test('can delete a test suite with confirmation modal', async ({ page }) => {
|
||||
await page.getByRole('button', { name: ' New Document' }).click();
|
||||
await page.getByPlaceholder('my-spec.yaml').fill('jurassic park');
|
||||
await page.getByPlaceholder('my-spec.yaml').press('Enter');
|
||||
await page.getByTestId('workspace-test').click();
|
||||
await page.getByText('New test suite').click();
|
||||
await page.getByLabel('Test Suites').getByLabel('Project Actions').click();
|
||||
await page.getByRole('menuitemradio', { name: 'Delete suite' }).click();
|
||||
await page.locator('.modal__content').getByRole('button', { name: 'Delete' }).click();
|
||||
});
|
||||
});
|
||||
|
@ -445,6 +445,7 @@ const OrganizationRoute = () => {
|
||||
: ''
|
||||
} ${isPending ? 'animate-pulse' : ''} no-underline transition-colors text-center outline-none min-w-[4rem] uppercase text-[--color-font] text-xs px-[--padding-xs] py-[--padding-xxs] rounded-full`
|
||||
}
|
||||
data-testid={`workspace-${item.id}`}
|
||||
>
|
||||
{item.name}
|
||||
</NavLink>
|
||||
|
@ -30,6 +30,8 @@ import {
|
||||
import * as models from '../../models';
|
||||
import { Environment } from '../../models/environment';
|
||||
import type { UnitTestSuite } from '../../models/unit-test-suite';
|
||||
import { showModal } from '../../ui/components/modals';
|
||||
import { AskModal } from '../../ui/components/modals/ask-modal';
|
||||
import { invariant } from '../../utils/invariant';
|
||||
import { WorkspaceDropdown } from '../components/dropdowns/workspace-dropdown';
|
||||
import { WorkspaceSyncDropdown } from '../components/dropdowns/workspace-sync-dropdown';
|
||||
@ -109,7 +111,7 @@ const TestRoute: FC = () => {
|
||||
id: string;
|
||||
name: string;
|
||||
icon: IconName;
|
||||
action: (suiteId: string) => void;
|
||||
action: (suiteId: string, suiteName: string) => void;
|
||||
}[] = [
|
||||
{
|
||||
id: 'run-tests',
|
||||
@ -150,7 +152,14 @@ const TestRoute: FC = () => {
|
||||
id: 'delete-suite',
|
||||
name: 'Delete suite',
|
||||
icon: 'trash',
|
||||
action: suiteId => {
|
||||
action: (suiteId, suiteName) => {
|
||||
showModal(AskModal, {
|
||||
title: 'Delete suite',
|
||||
message: `Do you really want to delete "${suiteName}"?`,
|
||||
yesText: 'Delete',
|
||||
noText: 'Cancel',
|
||||
onDone: async (isYes: boolean) => {
|
||||
if (isYes) {
|
||||
deleteUnitTestSuiteFetcher.submit(
|
||||
{},
|
||||
{
|
||||
@ -158,6 +167,9 @@ const TestRoute: FC = () => {
|
||||
method: 'POST',
|
||||
}
|
||||
);
|
||||
}
|
||||
},
|
||||
});
|
||||
},
|
||||
},
|
||||
];
|
||||
@ -330,7 +342,7 @@ const TestRoute: FC = () => {
|
||||
</Button>
|
||||
</div>
|
||||
<GridList
|
||||
aria-label="Tets Suites"
|
||||
aria-label="Test Suites"
|
||||
items={unitTestSuites.map(suite => ({
|
||||
id: suite._id,
|
||||
key: suite._id,
|
||||
@ -388,7 +400,7 @@ const TestRoute: FC = () => {
|
||||
onAction={key => {
|
||||
testSuiteActionList
|
||||
.find(({ id }) => key === id)
|
||||
?.action(item._id);
|
||||
?.action(item._id, item.name);
|
||||
}}
|
||||
items={testSuiteActionList}
|
||||
className="border select-none text-sm min-w-max border-solid border-[--hl-sm] shadow-lg bg-[--color-bg] py-2 rounded-md overflow-y-auto max-h-[85vh] focus:outline-none"
|
||||
|
Loading…
Reference in New Issue
Block a user