From 090fa413effa00930a083e67d0413e6dcbd09cb8 Mon Sep 17 00:00:00 2001 From: Tree Jamie Date: Wed, 14 May 2025 20:25:39 +0100 Subject: [PATCH 1/5] The broad approach to LiveView testing --- priv/static/uploads/test/.keep | 0 test/ranger_web/live/greet_live_test.exs | 28 ++++++++++++++++++++++++ 2 files changed, 28 insertions(+) delete mode 100644 priv/static/uploads/test/.keep diff --git a/priv/static/uploads/test/.keep b/priv/static/uploads/test/.keep deleted file mode 100644 index e69de29..0000000 diff --git a/test/ranger_web/live/greet_live_test.exs b/test/ranger_web/live/greet_live_test.exs index f2c6203..d7541c9 100644 --- a/test/ranger_web/live/greet_live_test.exs +++ b/test/ranger_web/live/greet_live_test.exs @@ -2,4 +2,32 @@ defmodule RangerWeb.GreetLiveTest do use RangerWeb.ConnCase import Phoenix.LiveViewTest + + test "renders disconnected state", %{conn: conn} do + disconnected = conn |> get(~p"/greet") + + assert html_response(disconnected, 200) =~ "Welcome to stateless HTTP" + end + + test "upgrades the connection", %{conn: conn} do + disconnected = conn |> get(~p"/greet") + + {:ok, _view, html} = live(disconnected) + + assert html =~ "Welcome to Testing LiveView" + end + + test "rendering connected state", %{conn: conn} do + {:ok, _view, html} = live(conn, ~p"/greet") + + assert html =~ "Welcome to Testing LiveView" + end + + test "rendering with the view", %{conn: conn} do + {:ok, view, _html} = live(conn, ~p"/greet") + + assert view.module == RangerWeb.GreetLive + assert is_pid(view.pid) + assert render(view) =~ "Welcome to Testing LiveView" + end end From 9375495341d4e3eb71a46656bda6f0234fd25194 Mon Sep 17 00:00:00 2001 From: Tree Jamie Date: Wed, 14 May 2025 20:46:29 +0100 Subject: [PATCH 2/5] Added in some testing --- .github/workflows/test.yml | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 .github/workflows/test.yml diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 0000000..46058d4 --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,30 @@ +name: Tests +on: + push +jobs: + elixir-test: + name: Test Elixir + runs-on: ubuntu-latest + strategy: + matrix: + os: [ubuntu-24.04] + otp: [27.x] + elixir: [1.18.3] + steps: + - uses: actions/checkout@v3 + + - uses: erlef/setup-beam@v1 + with: + otp-version: ${{ matrix.otp }} + elixir-version: ${{ matrix.elixir }} + + - name: Install dependencies + run: | + mix local.rebar --force + mix local.hex --force + mix deps.get + + - name: Run tests + run: | + mix compile --force -- + mix test mix test test/ranger_web/live/greet_live_test.exs \ No newline at end of file From 0258b1ca081191238f81c43e1c1aaaeafe0d388b Mon Sep 17 00:00:00 2001 From: Tree Jamie Date: Wed, 14 May 2025 20:52:53 +0100 Subject: [PATCH 3/5] Added in a postgres service --- .github/workflows/test.yml | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 46058d4..f8ca243 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -10,6 +10,21 @@ jobs: os: [ubuntu-24.04] otp: [27.x] elixir: [1.18.3] + services: + postgres: + image: postgres + env: + POSTGRES_USER: postgres + POSTGRES_PASSWORD: postgres + POSTGRES_DB: ranger_test + POSTGRES_PORT: 5432 + ports: + - 54321:5432 + options: >- + --health-cmd pg_isready + --health-interval 10s + --health-timeout 5s + --health-retries 5 steps: - uses: actions/checkout@v3 From 805f5c8f744f034fb916cf078fcc8a0c953fbf2a Mon Sep 17 00:00:00 2001 From: Tree Jamie Date: Wed, 14 May 2025 20:59:44 +0100 Subject: [PATCH 4/5] Fixed postgres port --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index f8ca243..4cede4e 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -19,7 +19,7 @@ jobs: POSTGRES_DB: ranger_test POSTGRES_PORT: 5432 ports: - - 54321:5432 + - 5432:5432 options: >- --health-cmd pg_isready --health-interval 10s From 7cc3e0a2096c0e71b279621fe5db0e555929bfa7 Mon Sep 17 00:00:00 2001 From: Tree Jamie Date: Wed, 14 May 2025 21:05:05 +0100 Subject: [PATCH 5/5] Create directories --- .github/workflows/test.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 4cede4e..b662e78 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -38,7 +38,8 @@ jobs: mix local.rebar --force mix local.hex --force mix deps.get - + - name: Prepare upload directory + run: mkdir -p priv/static/uploads/test - name: Run tests run: | mix compile --force --