Skip to content
Snippets Groups Projects
Commit 2d54af51 authored by mdmuradalahi's avatar mdmuradalahi
Browse files

2.2_Show_own_adv

parent f1be419f
No related branches found
No related tags found
1 merge request!1062.2_BDD_TDD
Pipeline #47074 passed
defmodule ProptrackerWeb.OwnedAdvertisementsTest do
use ProptrackerWeb.ConnCase
alias Proptracker.Accounts.{User, Advertisement}
alias Proptracker.Repo
@valid_user_attrs %{
name: "Test User",
username: "testuser",
password: "securepassword",
date_of_birth: ~D[1995-07-10],
phone_number: "123456789"
}
@valid_advertisement_attrs %{
title: "Ad Title",
pictures: ["path/to/img1.jpg"],
description: "Sample description.",
type: "sale",
price: Decimal.new("1500.00"),
square_meters: 120,
location: "Test City",
rooms: 3,
floor: 1,
total_floors: 5,
state: "available"
}
@invalid_advertisement_attrs %{
title: nil,
pictures: [],
description: nil,
type: "invalid_type",
price: Decimal.new("0.00"),
state: "invalid_state"
}
defp create_user(_) do
{:ok, user} = Repo.insert(%User{} |> User.changeset(@valid_user_attrs))
%{user: user}
end
defp create_advertisements(%{user: user}) do
valid_attrs = Map.put(@valid_advertisement_attrs, :user_id, user.id)
{:ok, ad1} = Repo.insert(Advertisement.changeset(%Advertisement{}, valid_attrs))
{:ok, ad2} = Repo.insert(Advertisement.changeset(%Advertisement{}, Map.put(valid_attrs, :title, "Second Ad")))
%{user: user, advertisements: [ad1, ad2]}
end
defp login_user(conn, user) do
post(conn, "/login", user: %{username: user.username, password: user.password})
|> recycle() # Recycle the connection for further requests
end
describe "Authenticated user viewing owned advertisements" do
setup [:create_user, :create_advertisements]
### Positive Test Case 1 ###
test "displays all owned advertisements for the authenticated user", %{conn: conn, user: user, advertisements: ads} do
conn = login_user(conn, user)
conn = get(conn, "/")
response = html_response(conn, 200)
ad_titles = Floki.find(response, ".advertisement-title")
|> Enum.map(&Floki.text(&1))
Enum.each(ads, fn ad -> assert ad.title in ad_titles end)
end
### Negative Test Case 1 ###
test "redirects to login page if user is not authenticated", %{conn: conn} do
conn = get(conn, "/advertisements")
assert redirected_to(conn) == "/login"
end
end
end
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