Add some tests

This commit is contained in:
Kieran Eglin 2024-04-05 10:08:00 -07:00
parent a1444b69db
commit e9c14e1450
No known key found for this signature in database
GPG key ID: 193984967FCF432D
4 changed files with 41 additions and 6 deletions

View file

@ -25,7 +25,6 @@ defmodule Pinchflat.Settings do
Returns {:ok, %Setting{}} | {:error, %Ecto.Changeset{}}
"""
# TODO: test
def update_setting(%Setting{} = setting, attrs) do
setting
|> Setting.changeset(attrs)
@ -76,7 +75,6 @@ defmodule Pinchflat.Settings do
@doc """
Returns `%Ecto.Changeset{}`
"""
# TODO: test
def change_setting(%Setting{} = setting, attrs \\ %{}) do
Setting.changeset(setting, attrs)
end

View file

@ -1,12 +1,8 @@
defmodule PinchflatWeb.Settings.SettingController do
use PinchflatWeb, :controller
# import Ecto.Query, warn: false
# alias Pinchflat.Repo
alias Pinchflat.Settings
# TODO: test
def show(conn, _params) do
setting = Settings.record()
changeset = Settings.change_setting(setting)

View file

@ -24,6 +24,16 @@ defmodule Pinchflat.SettingsTest do
end
end
describe "update_setting/2" do
test "updates the setting" do
setting = Settings.record()
assert {:ok, false} = Settings.get(:onboarding)
assert {:ok, %Setting{}} = Settings.update_setting(setting, %{onboarding: true})
assert {:ok, true} = Settings.get(:onboarding)
end
end
describe "set/1" do
test "updates the setting" do
assert {:ok, true} = Settings.set(onboarding: true)
@ -60,4 +70,12 @@ defmodule Pinchflat.SettingsTest do
end
end
end
describe "change_setting/2" do
test "returns a changeset" do
setting = Settings.record()
assert %Ecto.Changeset{} = Settings.change_setting(setting, %{onboarding: true})
end
end
end

View file

@ -0,0 +1,23 @@
defmodule PinchflatWeb.SettingControllerTest do
use PinchflatWeb.ConnCase
describe "show settings" do
test "renders the page", %{conn: conn} do
conn = get(conn, ~p"/settings")
assert html_response(conn, 200) =~ "Settings"
end
end
describe "update settings" do
test "saves and redirects when data is valid", %{conn: conn} do
update_attrs = %{apprise_server: "test://server"}
conn = put(conn, ~p"/settings", setting: update_attrs)
assert redirected_to(conn) == ~p"/settings"
conn = get(conn, ~p"/settings")
assert html_response(conn, 200) =~ update_attrs[:apprise_server]
end
end
end