chenzhaoyang
2025-12-17 d3e5a4b7658ece4f845bbc0c4f95acf3fbdf8a61
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
---
test_name: test_members_soft_delete
strict: false
marks:
- usefixtures:
  - django_live_url
stages:
- id: signup
  type: ref
 
- id: get_my_user
  type: ref
 
- name: get_active_organization
  request:
    method: GET
    url: '{django_live_url}/api/users/{user_pk}'
  response:
    status_code: 200
    save:
      json:
        org_pk: active_organization
 
# Test this functionality with legacy tokens, need to enable them for the org
- name: enable_legacy_api_tokens
  request:
    url: "{django_live_url}/api/jwt/settings"
    method: POST
    headers:
      content-type: application/json
    json:
      legacy_api_tokens_enabled: true
  response:
    status_code: 200
 
- type: ref
  id: get_invite_url
 
- type: ref
  id: logout
 
# signup 2 new users
- name: signup_new_user_under_active_organization
  request:
    url: "{django_live_url}{invite_url}"
    data:
      email: test_user@heartextest.com
      password: 12345678
    method: POST
  response:
    status_code: 302
 
- type: ref
  id: logout
 
- name: signup_second_new_user_under_active_organization
  request:
    url: "{django_live_url}{invite_url}"
    data:
      email: test_second_user@heartextest.com
      password: 12345678
    method: POST
  response:
    status_code: 302
 
- id: get_my_user # get user_pk to use in soft-delete
  type: ref
 
- id: get_user_token
  type: ref
 
- id: logout
  type: ref
 
- id: get_my_user_with_token
  name: Get my user with token
  request:
    headers:
      authorization: "Token {user_token}"
    url: "{django_live_url}/api/current-user/whoami"
    method: GET
  response:
    status_code: 200
 
- name: login_as_first_new_user
  request:
    url: "{django_live_url}/user/login"
    data:
      email: test_user@heartextest.com
      password: 12345678
    method: POST
  response:
    status_code: 302
 
- name: soft_delete_user_fails_without_owner_logged_in
  request:
    url: "{django_live_url}/api/organizations/{org_pk}/memberships/{user_pk}"
    method: DELETE
  response:
    status_code: 403
 
- id: logout
  type: ref
 
- id: login # as owner
  type: ref
 
- name: soft_delete_user_succeeds_as_owner
  request:
    url: "{django_live_url}/api/organizations/{org_pk}/memberships/{user_pk}"
    method: DELETE
  response:
    status_code: 204
 
- name: soft_delete_user_fails_second_deletion_attempt
  request:
    url: "{django_live_url}/api/organizations/{org_pk}/memberships/{user_pk}"
    method: DELETE
  response:
    status_code: 404
 
- id: logout
  type: ref