Skip to content
Snippets Groups Projects
Commit 72804ccd authored by Kerdo Kurs's avatar Kerdo Kurs
Browse files

add TDD #29

parent 6d01152e
No related branches found
No related tags found
2 merge requests!37Draft: Resolve "Implement simple search query",!35Implement tests for FR-19 and FR-20
...@@ -3,6 +3,8 @@ defmodule PropTrackrWeb.SearchControllerTest do ...@@ -3,6 +3,8 @@ defmodule PropTrackrWeb.SearchControllerTest do
alias PropTrackr.Accounts.User alias PropTrackr.Accounts.User
alias PropTrackr.Properties.Property alias PropTrackr.Properties.Property
alias PropTrackr.Repo alias PropTrackr.Repo
alias PropTrackr.Search
import Ecto.Query, only: [from: 2]
setup do setup do
user = %User{ user = %User{
...@@ -377,6 +379,81 @@ defmodule PropTrackrWeb.SearchControllerTest do ...@@ -377,6 +379,81 @@ defmodule PropTrackrWeb.SearchControllerTest do
assert get_flash(conn, :error) =~ ~r/You are not logged in/ assert get_flash(conn, :error) =~ ~r/You are not logged in/
end end
test "4.4 The last 5 searches of authenticated user should be saved", %{ conn: conn, user: user, properties: properties } do
conn = conn |> setup_session(user)
searches = Repo.all(from s in Search, where: s.user_id == ^user.id, order_by: [asc: s.inserted_at])
assert length(searches) == 0
conn = post(conn, ~p"/search", %{search: %{
type: :any,
location: "Estonia",
areas: ["Tartu", "Tallinn"],
min_price: 100.0,
max_price: 10000000.0,
min_rooms: 1,
max_rooms: 100,
}})
conn = post(conn, ~p"/search", %{search: %{
type: :any,
location: "Estonia",
areas: ["Tartu"],
min_price: 100.0,
max_price: 10000000.0,
min_rooms: 1,
max_rooms: 100,
}})
conn = post(conn, ~p"/search", %{search: %{
type: :any,
location: "Estonia",
areas: ["Tallinn"],
min_price: 100.0,
max_price: 10000000.0,
min_rooms: 1,
max_rooms: 100,
}})
conn = post(conn, ~p"/search", %{search: %{
type: :any,
location: "Estonia",
areas: ["Tartu", "Tallinn"],
min_price: 100.0,
max_price: 10000000.0,
min_rooms: 1,
max_rooms: 100,
}})
conn = post(conn, ~p"/search", %{search: %{
type: :any,
location: "Estonia",
areas: ["Tartu"],
min_price: 100.0,
max_price: 10000000.0,
min_rooms: 1,
max_rooms: 100,
}})
conn = post(conn, ~p"/search", %{search: %{
type: :any,
location: "Estonia",
areas: ["Jõgeva"],
min_price: 100.0,
max_price: 10000000.0,
min_rooms: 1,
max_rooms: 100,
}})
conn = get conn, "/search"
result = html_response(conn, 200)
assert result =~ ~r/Previous searches/
searches = Repo.all(from s in Search, where: s.user_id == ^user.id, order_by: [asc: s.inserted_at])
assert length(searches) == 5
end
defp setup_session(conn, user) do defp setup_session(conn, user) do
conn = conn |> post("/login", email: user.email, password: user.password) conn = conn |> post("/login", email: user.email, password: user.password)
conn = get conn, redirected_to(conn) conn = get conn, redirected_to(conn)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment