Leon4gr45 commited on
Commit
8f040ed
·
verified ·
1 Parent(s): eec4165

Delete test/plausible/teams/memberships/update_role_test.exs with huggingface_hub

Browse files
test/plausible/teams/memberships/update_role_test.exs DELETED
@@ -1,195 +0,0 @@
1
- defmodule Plausible.Teams.Memberships.UpdateRoleTest do
2
- use Plausible.DataCase, async: true
3
- use Plausible.Repo
4
- use Bamboo.Test
5
-
6
- alias Plausible.Teams.Memberships.UpdateRole
7
-
8
- @subject_prefix if ee?(), do: "[Plausible Analytics] ", else: "[Plausible CE] "
9
-
10
- test "updates a team member's role by user id" do
11
- user = new_user()
12
- _site = new_site(owner: user)
13
- team = team_of(user)
14
- collaborator = add_member(team, role: :editor)
15
- assert_team_membership(collaborator, team, :editor)
16
-
17
- assert {:ok, _} = UpdateRole.update(team, collaborator.id, "viewer", user)
18
-
19
- assert_team_membership(collaborator, team, :viewer)
20
- end
21
-
22
- test "owner can promote another member to owner" do
23
- user = new_user()
24
- _site = new_site(owner: user)
25
- team = team_of(user)
26
- collaborator = add_member(team, role: :editor)
27
- assert_team_membership(collaborator, team, :editor)
28
-
29
- assert {:ok, _} = UpdateRole.update(team, collaborator.id, "owner", user)
30
-
31
- assert_team_membership(collaborator, team, :owner)
32
- assert_no_emails_delivered()
33
- end
34
-
35
- test "can demote self when an owner" do
36
- user = new_user()
37
- _site = new_site(owner: user)
38
- team = team_of(user)
39
- _collaborator = add_member(team, role: :owner)
40
-
41
- assert {:ok, _} = UpdateRole.update(team, user.id, "viewer", user)
42
-
43
- assert_team_membership(user, team, :viewer)
44
- assert_no_emails_delivered()
45
- end
46
-
47
- test "can't demote self when the only owner" do
48
- user = new_user()
49
- _site = new_site(owner: user)
50
- team = team_of(user)
51
-
52
- assert {:error, :only_one_owner} = UpdateRole.update(team, user.id, "viewer", user)
53
-
54
- assert_team_membership(user, team, :owner)
55
- assert_no_emails_delivered()
56
- end
57
-
58
- test "can demote self when an admin" do
59
- user = new_user()
60
- owner = new_user()
61
- _site = new_site(owner: owner)
62
- team = team_of(owner)
63
- _admin = add_member(team, user: user, role: :admin)
64
-
65
- assert {:ok, _} = UpdateRole.update(team, user.id, "viewer", user)
66
-
67
- assert_team_membership(user, team, :viewer)
68
- assert_no_emails_delivered()
69
- end
70
-
71
- test "admin can't update role of an owner" do
72
- user = new_user()
73
- owner = new_user()
74
- _site = new_site(owner: owner)
75
- team = team_of(owner)
76
- _admin = add_member(team, user: user, role: :admin)
77
- _another_owner = add_member(team, role: :owner)
78
-
79
- assert {:error, :permission_denied} = UpdateRole.update(team, owner.id, "viewer", user)
80
-
81
- assert_team_membership(owner, team, :owner)
82
- assert_no_emails_delivered()
83
- end
84
-
85
- for role <- Plausible.Teams.Membership.roles() -- [:owner, :admin] do
86
- test "#{role} can't update role of a member" do
87
- user = new_user()
88
- owner = new_user()
89
- _site = new_site(owner: owner)
90
- team = team_of(owner)
91
- _member = add_member(team, user: user, role: unquote(role))
92
- another_member = add_member(team, role: :viewer)
93
-
94
- assert {:error, :permission_denied} =
95
- UpdateRole.update(team, another_member.id, "editor", user)
96
-
97
- assert_team_membership(another_member, team, :viewer)
98
- assert_no_emails_delivered()
99
- end
100
- end
101
-
102
- test "guest->member promotion sends out an e-mail" do
103
- user = new_user()
104
- owner = new_user()
105
- site = new_site(owner: owner)
106
- team = team_of(owner)
107
-
108
- add_guest(site, role: :viewer, user: user)
109
-
110
- assert {:ok, _} = UpdateRole.update(team, user.id, "editor", owner)
111
-
112
- assert_email_delivered_with(
113
- to: [nil: user.email],
114
- subject: @subject_prefix <> "Welcome to \"#{team.name}\" team"
115
- )
116
- end
117
-
118
- on_ee do
119
- describe "SSO user" do
120
- setup [:create_user, :create_team, :setup_sso, :provision_sso_user]
121
-
122
- test "updates an SSO member's role by user id", %{
123
- team: team,
124
- user: user,
125
- sso_integration: integration
126
- } do
127
- collaborator = add_member(team, role: :viewer)
128
-
129
- {:ok, _, _, collaborator} =
130
- new_identity(collaborator.name, collaborator.email, integration)
131
- |> Plausible.Auth.SSO.provision_user()
132
-
133
- assert {:ok, _} = UpdateRole.update(team, collaborator.id, "editor", user)
134
-
135
- assert_team_membership(collaborator, team, :editor)
136
- end
137
-
138
- test "updates an SSO member's role to owner when no Force SSO set", %{
139
- team: team,
140
- sso_integration: integration,
141
- user: user
142
- } do
143
- collaborator = add_member(team, role: :viewer)
144
-
145
- {:ok, _, _, collaborator} =
146
- new_identity(collaborator.name, collaborator.email, integration)
147
- |> Plausible.Auth.SSO.provision_user()
148
-
149
- assert {:ok, _} = UpdateRole.update(team, collaborator.id, "owner", user)
150
-
151
- assert_team_membership(collaborator, team, :owner)
152
- end
153
-
154
- test "updates an SSO member's role with Force SSO to Owner provided they have 2FA enabled",
155
- %{
156
- team: team,
157
- sso_integration: integration,
158
- user: user
159
- } do
160
- {:ok, user, _} = Plausible.Auth.TOTP.initiate(user)
161
- {:ok, user, _} = Plausible.Auth.TOTP.enable(user, :skip_verify)
162
- {:ok, team} = Plausible.Auth.SSO.set_force_sso(team, :all_but_owners)
163
- collaborator = add_member(team, role: :viewer)
164
-
165
- {:ok, _, _, collaborator} =
166
- new_identity(collaborator.name, collaborator.email, integration)
167
- |> Plausible.Auth.SSO.provision_user()
168
-
169
- {:ok, collaborator, _} = Plausible.Auth.TOTP.initiate(collaborator)
170
- {:ok, collaborator, _} = Plausible.Auth.TOTP.enable(collaborator, :skip_verify)
171
-
172
- assert {:ok, _} = UpdateRole.update(team, collaborator.id, "owner", user)
173
-
174
- assert_team_membership(collaborator, team, :owner)
175
- end
176
-
177
- test "does not update SSO member's role to Owner if they don't have 2FA enabled", %{
178
- team: team,
179
- sso_integration: integration,
180
- user: user
181
- } do
182
- {:ok, user, _} = Plausible.Auth.TOTP.initiate(user)
183
- {:ok, user, _} = Plausible.Auth.TOTP.enable(user, :skip_verify)
184
- {:ok, team} = Plausible.Auth.SSO.set_force_sso(team, :all_but_owners)
185
- collaborator = add_member(team, role: :viewer)
186
-
187
- {:ok, _, _, collaborator} =
188
- new_identity(collaborator.name, collaborator.email, integration)
189
- |> Plausible.Auth.SSO.provision_user()
190
-
191
- assert {:error, :disabled_2fa} = UpdateRole.update(team, collaborator.id, "owner", user)
192
- end
193
- end
194
- end
195
- end