Skip to content

Commit 25de7fa

Browse files
committed
Add "crate deletion" acceptance tests
1 parent ea64299 commit 25de7fa

File tree

2 files changed

+83
-0
lines changed

2 files changed

+83
-0
lines changed

e2e/acceptance/crate-deletion.spec.ts

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
import { expect, test } from '@/e2e/helper';
2+
3+
test.describe('Acceptance | crate deletion', { tag: '@acceptance' }, () => {
4+
test('happy path', async ({ page, mirage }) => {
5+
await mirage.addHook(server => {
6+
let user = server.create('user');
7+
authenticateAs(user);
8+
9+
let crate = server.create('crate', { name: 'foo' });
10+
server.create('version', { crate });
11+
server.create('crate-ownership', { crate, user });
12+
});
13+
14+
await page.goto('/crates/foo');
15+
await expect(page).toHaveURL('/crates/foo');
16+
await expect(page.locator('[data-test-settings-tab] a')).toBeVisible();
17+
18+
await page.click('[data-test-settings-tab] a');
19+
await expect(page).toHaveURL('/crates/foo/settings');
20+
await expect(page.locator('[data-test-delete-button]')).toBeVisible();
21+
22+
await page.click('[data-test-delete-button]');
23+
await expect(page).toHaveURL('/crates/foo/delete');
24+
await expect(page.locator('[data-test-title]')).toHaveText('Delete the foo crate?');
25+
await expect(page.locator('[data-test-delete-button]')).toBeDisabled();
26+
27+
await page.click('[data-test-confirmation-checkbox]');
28+
await expect(page.locator('[data-test-delete-button]')).toBeEnabled();
29+
30+
await page.click('[data-test-delete-button]');
31+
await expect(page).toHaveURL('/');
32+
33+
let message = 'Crate foo has been successfully deleted.';
34+
await expect(page.locator('[data-test-notification-message="success"]')).toHaveText(message);
35+
36+
let crate = await page.evaluate(() => server.schema.crates.findBy({ name: 'foo' }));
37+
expect(crate).toBeNull();
38+
});
39+
});
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
import { click, currentURL } from '@ember/test-helpers';
2+
import { module, test } from 'qunit';
3+
4+
import { setupApplicationTest } from 'crates-io/tests/helpers';
5+
6+
import { visit } from '../helpers/visit-ignoring-abort';
7+
8+
module('Acceptance | crate deletion', function (hooks) {
9+
setupApplicationTest(hooks);
10+
11+
test('happy path', async function (assert) {
12+
let user = this.server.create('user');
13+
this.authenticateAs(user);
14+
15+
let crate = this.server.create('crate', { name: 'foo' });
16+
this.server.create('version', { crate });
17+
this.server.create('crate-ownership', { crate, user });
18+
19+
await visit('/crates/foo');
20+
assert.strictEqual(currentURL(), '/crates/foo');
21+
assert.dom('[data-test-settings-tab] a').exists();
22+
23+
await click('[data-test-settings-tab] a');
24+
assert.strictEqual(currentURL(), '/crates/foo/settings');
25+
assert.dom('[data-test-delete-button]').exists();
26+
27+
await click('[data-test-delete-button]');
28+
assert.strictEqual(currentURL(), '/crates/foo/delete');
29+
assert.dom('[data-test-title]').hasText('Delete the foo crate?');
30+
assert.dom('[data-test-delete-button]').isDisabled();
31+
32+
await click('[data-test-confirmation-checkbox]');
33+
assert.dom('[data-test-delete-button]').isEnabled();
34+
35+
await click('[data-test-delete-button]');
36+
assert.strictEqual(currentURL(), '/');
37+
38+
let message = 'Crate foo has been successfully deleted.';
39+
assert.dom('[data-test-notification-message="success"]').hasText(message);
40+
41+
crate = this.server.schema.crates.findBy({ name: 'foo' });
42+
assert.strictEqual(crate, null);
43+
});
44+
});

0 commit comments

Comments
 (0)