diff options
Diffstat (limited to 'src/flagd-ui/test')
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() |
