aboutsummaryrefslogtreecommitdiffstats
path: root/tests/functional/dashboard/delete.spec.ts
blob: ae3f0e6f992a91077b022496a3a3fb12e0d4e499 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
import { test } from '@japa/runner';
import User from 'App/Models/User';
import UserFactory from 'Database/factories/UserFactory';

test.group('Dashboard / Delete account page', () => {
  test('redirects to /user/login when accessing /user/delete as guest', async ({
    client,
  }) => {
    const response = await client.get('/user/delete');

    response.assertRedirectsTo('/user/login'); // Check if it redirects to the expected URL
  });

  test('returns a 200 opening the delete route while logged in', async ({
    client,
  }) => {
    const user = await UserFactory.create();
    const response = await client.get('/user/delete').loginAs(user);

    response.assertStatus(200);
    response.assertTextIncludes('Delete your account');
  });

  test('returns a 200 opening the delete route while logged in', async ({
    client,
    assert,
  }) => {
    const user = await UserFactory.create();
    const response = await client.post('/user/delete').loginAs(user);

    response.assertRedirectsTo('/user/login');
    // This asserts the session is deleted as well
    response.assertSessionMissing('auth_web');

    assert.isNull(await User.find(user.id));
  });
});