Leon4gr45 commited on
Commit
a00526f
·
verified ·
1 Parent(s): 4216ca0

Delete test/plausible_web/live/shields/pages_test.exs with huggingface_hub

Browse files
test/plausible_web/live/shields/pages_test.exs DELETED
@@ -1,226 +0,0 @@
1
- defmodule PlausibleWeb.Live.Shields.PagesTest do
2
- use PlausibleWeb.ConnCase, async: true
3
-
4
- import Phoenix.LiveViewTest
5
-
6
- alias Plausible.Shields
7
-
8
- setup [:create_user, :create_site, :log_in]
9
-
10
- describe "Page Rules - static" do
11
- test "renders page rules page with empty list", %{conn: conn, site: site} do
12
- conn = get(conn, "/#{site.domain}/settings/shields/pages")
13
- resp = html_response(conn, 200)
14
-
15
- assert resp =~ "Block a page"
16
- assert resp =~ "Pages block list"
17
- end
18
-
19
- test "lists page rules with remove actions", %{conn: conn, site: site} do
20
- {:ok, r1} =
21
- Shields.add_page_rule(site, %{"page_path" => "/test/1"})
22
-
23
- {:ok, r2} =
24
- Shields.add_page_rule(site, %{"page_path" => "/test/2"})
25
-
26
- conn = get(conn, "/#{site.domain}/settings/shields/pages")
27
- resp = html_response(conn, 200)
28
-
29
- assert resp =~ "/test/1"
30
- assert resp =~ "/test/2"
31
-
32
- assert remove_button_1 = find(resp, "#remove-page-rule-#{r1.id}")
33
- assert remove_button_2 = find(resp, "#remove-page-rule-#{r2.id}")
34
-
35
- assert text_of_attr(remove_button_1, "phx-click") == "remove-page-rule"
36
- assert text_of_attr(remove_button_1, "phx-value-rule-id") == r1.id
37
- assert text_of_attr(remove_button_2, "phx-click") == "remove-page-rule"
38
- assert text_of_attr(remove_button_2, "phx-value-rule-id") == r2.id
39
- end
40
-
41
- test "add rule button is rendered", %{conn: conn, site: site} do
42
- conn = get(conn, "/#{site.domain}/settings/shields/pages")
43
- resp = html_response(conn, 200)
44
-
45
- assert element_exists?(resp, ~s/button#add-page-rule[x-data]/)
46
- attr = text_of_attr(resp, ~s/button#add-page-rule/, "x-on:click")
47
-
48
- assert attr =~ "open-modal"
49
- assert attr =~ "page-rule-form-modal"
50
- end
51
-
52
- test "add rule button is not rendered when maximum reached", %{conn: conn, site: site} do
53
- for i <- 1..Shields.maximum_page_rules() do
54
- assert {:ok, _} =
55
- Shields.add_page_rule(site, %{"page_path" => "/test/#{i}"})
56
- end
57
-
58
- conn = get(conn, "/#{site.domain}/settings/shields/pages")
59
- resp = html_response(conn, 200)
60
-
61
- refute element_exists?(resp, ~s/button#add-page-rule[x-data]/)
62
- assert resp =~ "Maximum number of pages reached"
63
- assert resp =~ "You've reached the maximum number of pages you can block (30)"
64
- end
65
- end
66
-
67
- describe "Page Rules - LiveView" do
68
- test "modal contains form", %{site: site, conn: conn} do
69
- lv = get_liveview(conn, site)
70
- html = render(lv)
71
-
72
- assert element_exists?(
73
- html,
74
- ~s/form[phx-submit="save-page-rule"] input[name="page_rule\[page_path\]"]/
75
- )
76
-
77
- assert submit_button(html, ~s/form[phx-submit="save-page-rule"]/)
78
- end
79
-
80
- test "submitting a valid Page saves it", %{conn: conn, site: site} do
81
- lv = get_liveview(conn, site)
82
-
83
- lv
84
- |> element("form")
85
- |> render_submit(%{
86
- "page_rule[page_path]" => "/test/**"
87
- })
88
-
89
- html = render(lv)
90
-
91
- assert html =~ "/test/**"
92
-
93
- assert [%{page_path: "/test/**"}] = Shields.list_page_rules(site)
94
- end
95
-
96
- test "submitting invalid Page renders error", %{conn: conn, site: site} do
97
- lv = get_liveview(conn, site)
98
-
99
- lv
100
- |> element("form")
101
- |> render_submit(%{
102
- "page_rule[page_path]" => "WRONG"
103
- })
104
-
105
- html = render(lv)
106
- assert html =~ "must start with /"
107
- end
108
-
109
- test "clicking Remove deletes the rule", %{conn: conn, site: site} do
110
- {:ok, _} =
111
- Shields.add_page_rule(site, %{"page_path" => "/test/*/page"})
112
-
113
- lv = get_liveview(conn, site)
114
-
115
- html = render(lv)
116
- assert html =~ "/test/*/page"
117
-
118
- lv |> element(~s/button[phx-click="remove-page-rule"]/) |> render_click()
119
-
120
- html = render(lv)
121
- refute html =~ "/test/*/page"
122
-
123
- assert Shields.count_page_rules(site) == 0
124
- end
125
-
126
- test "conclicting rules are annotated with a warning", %{conn: conn, site: site} do
127
- lv = get_liveview(conn, site)
128
-
129
- lv
130
- |> element("form")
131
- |> render_submit(%{
132
- "page_rule[page_path]" => "/test/*"
133
- })
134
-
135
- html = render(lv)
136
- refute html =~ "This rule might be redundant"
137
-
138
- lv
139
- |> element("form")
140
- |> render_submit(%{
141
- "page_rule[page_path]" => "/test/another"
142
- })
143
-
144
- html = render(lv)
145
-
146
- assert html =~ "/test/*"
147
- assert html =~ "/test/another"
148
-
149
- assert html =~
150
- "This rule might be redundant because the following rules may match first:\n\n/test/*"
151
-
152
- broader_rule_id =
153
- site
154
- |> Shields.list_page_rules()
155
- |> Enum.find(&(&1.page_path == "/test/*"))
156
- |> Map.fetch!(:id)
157
-
158
- lv |> element(~s/button#remove-page-rule-#{broader_rule_id}/) |> render_click()
159
- html = render(lv)
160
-
161
- assert html =~ "/test/another"
162
- refute html =~ "/test/*"
163
-
164
- refute html =~
165
- "This rule might be redundant because the following rules may match first:\n\n/test/*"
166
- end
167
-
168
- test "debug - check combo box behavior", %{conn: conn, site: site} do
169
- populate_stats(site, [
170
- build(:pageview, pathname: "/blog/post1", timestamp: Date.add(Date.utc_today(), -3)),
171
- build(:pageview, pathname: "/blog/post2", timestamp: Date.add(Date.utc_today(), -3))
172
- ])
173
-
174
- opt1_selector = "li#dropdown-page_rule_page_path-modalseq0-option-1"
175
- opt2_selector = "li#dropdown-page_rule_page_path-modalseq0-option-2"
176
-
177
- lv = get_liveview(conn, site)
178
-
179
- type_into_combo(lv, "page_rule_page_path-modalseq0", "blog")
180
- html = lv |> render()
181
-
182
- assert text_of_element(html, opt1_selector) == "/blog/post1"
183
- assert text_of_element(html, opt2_selector) == "/blog/post2"
184
-
185
- lv
186
- |> element("form")
187
- |> render_submit(%{
188
- "page_rule[page_path]" => "/blog/post2"
189
- })
190
-
191
- type_into_combo(lv, "page_rule_page_path-modalseq0", "blog")
192
- html = lv |> render()
193
-
194
- assert text_of_element(html, opt1_selector) == "/blog/post1"
195
- refute element_exists?(html, opt2_selector)
196
-
197
- lv
198
- |> element("form")
199
- |> render_submit(%{
200
- "page_rule[page_path]" => "/blog/post1"
201
- })
202
-
203
- type_into_combo(lv, "page_rule_page_path-modalseq0", "blog")
204
- html = lv |> render()
205
-
206
- refute element_exists?(html, opt1_selector)
207
- refute element_exists?(html, opt2_selector)
208
- end
209
-
210
- defp type_into_combo(lv, id, text) do
211
- lv
212
- |> element("input##{id}")
213
- |> render_change(%{
214
- "_target" => ["display-#{id}"],
215
- "display-#{id}" => "#{text}"
216
- })
217
- end
218
-
219
- defp get_liveview(conn, site) do
220
- conn = assign(conn, :live_module, PlausibleWeb.Live.Shields)
221
- {:ok, lv, _html} = live(conn, "/#{site.domain}/settings/shields/pages")
222
-
223
- lv
224
- end
225
- end
226
- end