Skip to content

Commit

Permalink
fix(portal): Ensure site can be changed when multi-site is false (#4915)
Browse files Browse the repository at this point in the history
Fixes #4913
  • Loading branch information
jamilbk committed May 8, 2024
1 parent cba0883 commit dff0a33
Show file tree
Hide file tree
Showing 3 changed files with 99 additions and 1 deletion.
2 changes: 1 addition & 1 deletion elixir/apps/web/lib/web/live/resources/components.ex
Original file line number Diff line number Diff line change
Expand Up @@ -292,7 +292,7 @@ defmodule Web.Resources.Components do
%Domain.Resources.Connection{} = connection ->
[connection.gateway_group_id]

{id, _attrs} ->
{_, %{"gateway_group_id" => id}} ->
[id]
end)
end
Expand Down
50 changes: 50 additions & 0 deletions elixir/apps/web/test/web/live/resources/edit_test.exs
Original file line number Diff line number Diff line change
Expand Up @@ -331,6 +331,56 @@ defmodule Web.Live.Resources.EditTest do
assert saved_resource.filters == []
end

test "maintains selection of site when multi-site is false", %{
account: account,
group: _group,
resource: resource,
identity: identity,
conn: conn
} do
Domain.Config.feature_flag_override(:multi_site_resources, false)
group2 = Fixtures.Gateways.create_group(account: account)

{:ok, lv, _html} =
conn
|> authorize_conn(identity)
|> live(~p"/#{account}/resources/#{resource}/edit")

lv
|> form("form")
|> render_change(%{"resource[connections][0][gateway_group_id]" => group2.id})

assert has_element?(
lv,
"select[name='resource[connections][0][gateway_group_id]'] option[value='#{group2.id}'][selected]"
)
end

test "maintains selection of sites when multi-site is true", %{
account: account,
group: group,
resource: resource,
identity: identity,
conn: conn
} do
group2 = Fixtures.Gateways.create_group(account: account)

{:ok, lv, _html} =
conn
|> authorize_conn(identity)
|> live(~p"/#{account}/resources/#{resource}/edit")

lv
|> form("form")
|> render_change(%{
"resource[connections][#{group.id}][enabled]" => false,
"resource[connections][#{group2.id}][enabled]" => true
})

refute has_element?(lv, "input[name='resource[connections][#{group.id}][enabled]'][checked]")
assert has_element?(lv, "input[name='resource[connections][#{group2.id}][enabled]'][checked]")
end

test "disables traffic filters form fields when traffic filters disabled", %{
account: account,
group: group,
Expand Down
48 changes: 48 additions & 0 deletions elixir/apps/web/test/web/live/resources/new_test.exs
Original file line number Diff line number Diff line change
Expand Up @@ -544,4 +544,52 @@ defmodule Web.Live.Resources.NewTest do

assert Repo.all(Domain.Resources.Resource) == []
end

test "maintains selection of site when multi-site is false", %{
account: account,
group: _group,
identity: identity,
conn: conn
} do
Domain.Config.feature_flag_override(:multi_site_resources, false)
group2 = Fixtures.Gateways.create_group(account: account)

{:ok, lv, _html} =
conn
|> authorize_conn(identity)
|> live(~p"/#{account}/resources/new")

lv
|> form("form")
|> render_change(%{"resource[connections][0][gateway_group_id]" => group2.id})

assert has_element?(
lv,
"select[name='resource[connections][0][gateway_group_id]'] option[value='#{group2.id}'][selected]"
)
end

test "maintains selection of sites when multi-site is true", %{
account: account,
group: group,
identity: identity,
conn: conn
} do
group2 = Fixtures.Gateways.create_group(account: account)

{:ok, lv, _html} =
conn
|> authorize_conn(identity)
|> live(~p"/#{account}/resources/new")

lv
|> form("form")
|> render_change(%{
"resource[connections][#{group.id}][enabled]" => false,
"resource[connections][#{group2.id}][enabled]" => true
})

refute has_element?(lv, "input[name='resource[connections][#{group.id}][enabled]'][checked]")
assert has_element?(lv, "input[name='resource[connections][#{group2.id}][enabled]'][checked]")
end
end

0 comments on commit dff0a33

Please sign in to comment.