From 25a22b4780f7220153918a244534bddaef5cb562 Mon Sep 17 00:00:00 2001 From: Andrew Dryga Date: Wed, 21 Aug 2024 17:16:19 -0600 Subject: [PATCH] chore(portal): Test that we only render resources once in WS API (#6394) --- .../apps/api/test/api/client/channel_test.exs | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/elixir/apps/api/test/api/client/channel_test.exs b/elixir/apps/api/test/api/client/channel_test.exs index 4930fa8a1..504ecca1d 100644 --- a/elixir/apps/api/test/api/client/channel_test.exs +++ b/elixir/apps/api/test/api/client/channel_test.exs @@ -289,6 +289,40 @@ defmodule API.Client.ChannelTest do } end + test "only sends the same resource once", %{ + account: account, + actor: actor, + subject: subject, + client: client, + dns_resource: resource + } do + assert_push "init", %{} + + Fixtures.Auth.create_identity(actor: actor, account: account) + Fixtures.Auth.create_identity(actor: actor, account: account) + + second_actor_group = Fixtures.Actors.create_group(account: account) + Fixtures.Actors.create_membership(account: account, actor: actor, group: second_actor_group) + + Fixtures.Policies.create_policy( + account: account, + actor_group: second_actor_group, + resource: resource + ) + + API.Client.Socket + |> socket("client:#{client.id}", %{ + opentelemetry_ctx: OpenTelemetry.Ctx.new(), + opentelemetry_span_ctx: OpenTelemetry.Tracer.start_span("test"), + client: client, + subject: subject + }) + |> subscribe_and_join(API.Client.Channel, "client") + + assert_push "init", %{resources: resources} + assert Enum.count(resources, &(&1.address == resource.address)) == 1 + end + test "sends backwards compatible list of resources if client version is below 1.2", %{ account: account, subject: subject,