From 670967c7c3cd575e24cab70fadbdcdf9c6a54f54 Mon Sep 17 00:00:00 2001 From: GHX5T-SOL Date: Wed, 20 May 2026 19:02:51 +0200 Subject: [PATCH] Show tech tags on project cards --- lib/algora_web/live/orgs_live.ex | 17 +++++++++++++ test/algora_web/live/orgs_live_test.exs | 32 +++++++++++++++++++++++++ 2 files changed, 49 insertions(+) create mode 100644 test/algora_web/live/orgs_live_test.exs diff --git a/lib/algora_web/live/orgs_live.ex b/lib/algora_web/live/orgs_live.ex index ecc7b6756..6af78126a 100644 --- a/lib/algora_web/live/orgs_live.ex +++ b/lib/algora_web/live/orgs_live.ex @@ -109,6 +109,15 @@ defmodule AlgoraWeb.OrgsLive do {org.bio} + +
+ <%= for tech <- display_tech_stack(org.tech_stack) do %> + <.tech_badge tech={tech} size="sm" /> + <% end %> +
@@ -137,4 +146,12 @@ defmodule AlgoraWeb.OrgsLive do end defp page_size, do: 9 + + defp display_tech_stack(tech_stack) do + tech_stack + |> List.wrap() + |> Enum.map(&String.trim/1) + |> Enum.reject(&(&1 == "")) + |> Enum.take(4) + end end diff --git a/test/algora_web/live/orgs_live_test.exs b/test/algora_web/live/orgs_live_test.exs new file mode 100644 index 000000000..258b5ecc8 --- /dev/null +++ b/test/algora_web/live/orgs_live_test.exs @@ -0,0 +1,32 @@ +defmodule AlgoraWeb.OrgsLiveTest do + use AlgoraWeb.ConnCase, async: false + + import Algora.Factory + import Phoenix.LiveViewTest + + test "renders project technology tags", %{conn: conn} do + user = insert(:user) + + org = + insert(:organization, + display_name: "Golem Cloud", + handle: "golem-cloud", + featured: true, + tech_stack: ["Rust", "TypeScript"], + bio: "Build and deploy durable workers" + ) + + insert(:transaction, user: org, net_amount: Money.new(1000, :USD), type: :debit, status: :succeeded) + + conn = + conn + |> Phoenix.ConnTest.init_test_session(%{}) + |> AlgoraWeb.UserAuth.put_current_user(user) + + {:ok, _view, html} = live(conn, ~p"/projects") + + assert html =~ "Golem Cloud" + assert html =~ "Rust" + assert html =~ "TypeScript" + end +end