summaryrefslogtreecommitdiff
path: root/src/flagd-ui/test
diff options
context:
space:
mode:
authorSaumit <justsaumit@protonmail.com>2025-09-27 02:14:26 +0530
committerSaumit <justsaumit@protonmail.com>2025-09-27 02:14:26 +0530
commit82e03978b89938219958032efb1448cc76baa181 (patch)
tree626f3e54d52ecd49be0ed3bee30abacc0453d081 /src/flagd-ui/test
Initial snapshot - OpenTelemetry demo 2.1.3 -f
Diffstat (limited to 'src/flagd-ui/test')
-rw-r--r--src/flagd-ui/test/flagd_ui/storage_test.exs23
-rw-r--r--src/flagd-ui/test/flagd_ui_web/controllers/error_html_test.exs17
-rw-r--r--src/flagd-ui/test/flagd_ui_web/controllers/error_json_test.exs15
-rw-r--r--src/flagd-ui/test/flagd_ui_web/controllers/page_controller_test.exs11
-rw-r--r--src/flagd-ui/test/support/conn_case.ex40
-rw-r--r--src/flagd-ui/test/test_helper.exs4
6 files changed, 110 insertions, 0 deletions
diff --git a/src/flagd-ui/test/flagd_ui/storage_test.exs b/src/flagd-ui/test/flagd_ui/storage_test.exs
new file mode 100644
index 0000000..48deacd
--- /dev/null
+++ b/src/flagd-ui/test/flagd_ui/storage_test.exs
@@ -0,0 +1,23 @@
+# Copyright The OpenTelemetry Authors
+# SPDX-License-Identifier: Apache-2.0
+
+defmodule FlagdUi.StorageTest do
+ use ExUnit.Case
+
+ alias FlagdUi.Storage
+
+ describe "Storage server" do
+ test "start_link/3" do
+ {:ok, _} = start_supervised({Storage, [name: TestedStorage]})
+
+ stop_supervised(TestedStorage)
+ end
+
+ test "start_link/3 but already running" do
+ {:ok, _} = start_supervised({Storage, [name: TestedStorage]})
+ {:error, {:already_started, _}} = start_supervised({Storage, [name: TestedStorage]})
+
+ stop_supervised(TestedStorage)
+ end
+ end
+end
diff --git a/src/flagd-ui/test/flagd_ui_web/controllers/error_html_test.exs b/src/flagd-ui/test/flagd_ui_web/controllers/error_html_test.exs
new file mode 100644
index 0000000..d312683
--- /dev/null
+++ b/src/flagd-ui/test/flagd_ui_web/controllers/error_html_test.exs
@@ -0,0 +1,17 @@
+# Copyright The OpenTelemetry Authors
+# SPDX-License-Identifier: Apache-2.0
+
+defmodule FlagdUiWeb.ErrorHTMLTest do
+ use FlagdUiWeb.ConnCase, async: true
+
+ # Bring render_to_string/4 for testing custom views
+ import Phoenix.Template, only: [render_to_string: 4]
+
+ test "renders 404.html" do
+ assert render_to_string(FlagdUiWeb.ErrorHTML, "404", "html", []) == "Not Found"
+ end
+
+ test "renders 500.html" do
+ assert render_to_string(FlagdUiWeb.ErrorHTML, "500", "html", []) == "Internal Server Error"
+ end
+end
diff --git a/src/flagd-ui/test/flagd_ui_web/controllers/error_json_test.exs b/src/flagd-ui/test/flagd_ui_web/controllers/error_json_test.exs
new file mode 100644
index 0000000..eddd05e
--- /dev/null
+++ b/src/flagd-ui/test/flagd_ui_web/controllers/error_json_test.exs
@@ -0,0 +1,15 @@
+# Copyright The OpenTelemetry Authors
+# SPDX-License-Identifier: Apache-2.0
+
+defmodule FlagdUiWeb.ErrorJSONTest do
+ use FlagdUiWeb.ConnCase, async: true
+
+ test "renders 404" do
+ assert FlagdUiWeb.ErrorJSON.render("404.json", %{}) == %{errors: %{detail: "Not Found"}}
+ end
+
+ test "renders 500" do
+ assert FlagdUiWeb.ErrorJSON.render("500.json", %{}) ==
+ %{errors: %{detail: "Internal Server Error"}}
+ end
+end
diff --git a/src/flagd-ui/test/flagd_ui_web/controllers/page_controller_test.exs b/src/flagd-ui/test/flagd_ui_web/controllers/page_controller_test.exs
new file mode 100644
index 0000000..14f8f98
--- /dev/null
+++ b/src/flagd-ui/test/flagd_ui_web/controllers/page_controller_test.exs
@@ -0,0 +1,11 @@
+# Copyright The OpenTelemetry Authors
+# SPDX-License-Identifier: Apache-2.0
+
+defmodule FlagdUiWeb.PageControllerTest do
+ use FlagdUiWeb.ConnCase
+
+ test "GET /", %{conn: conn} do
+ conn = get(conn, ~p"/")
+ assert html_response(conn, 200) =~ "Flagd Configurator"
+ end
+end
diff --git a/src/flagd-ui/test/support/conn_case.ex b/src/flagd-ui/test/support/conn_case.ex
new file mode 100644
index 0000000..5eb1915
--- /dev/null
+++ b/src/flagd-ui/test/support/conn_case.ex
@@ -0,0 +1,40 @@
+# Copyright The OpenTelemetry Authors
+# SPDX-License-Identifier: Apache-2.0
+
+defmodule FlagdUiWeb.ConnCase do
+ @moduledoc """
+ This module defines the test case to be used by
+ tests that require setting up a connection.
+
+ Such tests rely on `Phoenix.ConnTest` and also
+ import other functionality to make it easier
+ to build common data structures and query the data layer.
+
+ Finally, if the test case interacts with the database,
+ we enable the SQL sandbox, so changes done to the database
+ are reverted at the end of every test. If you are using
+ PostgreSQL, you can even run database tests asynchronously
+ by setting `use FlagdUiWeb.ConnCase, async: true`, although
+ this option is not recommended for other databases.
+ """
+
+ use ExUnit.CaseTemplate
+
+ using do
+ quote do
+ # The default endpoint for testing
+ @endpoint FlagdUiWeb.Endpoint
+
+ use FlagdUiWeb, :verified_routes
+
+ # Import conveniences for testing with connections
+ import Plug.Conn
+ import Phoenix.ConnTest
+ import FlagdUiWeb.ConnCase
+ end
+ end
+
+ setup _tags do
+ {:ok, conn: Phoenix.ConnTest.build_conn()}
+ end
+end
diff --git a/src/flagd-ui/test/test_helper.exs b/src/flagd-ui/test/test_helper.exs
new file mode 100644
index 0000000..184ffde
--- /dev/null
+++ b/src/flagd-ui/test/test_helper.exs
@@ -0,0 +1,4 @@
+# Copyright The OpenTelemetry Authors
+# SPDX-License-Identifier: Apache-2.0
+
+ExUnit.start()