fix(portal): Ensure site can be changed when multi-site is false (#4915)

Fixes #4913
This commit is contained in:
Jamil
2024-05-08 12:04:51 -07:00
committed by GitHub
parent cba0883a35
commit dff0a33e96
3 changed files with 99 additions and 1 deletions

View File

@@ -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

View File

@@ -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,

View File

@@ -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