feat: Add new images and rename space slugs (#13)

* feat: add new images

* update seeds

* use new images & slugs

* update tests with new slugs
This commit is contained in:
Víctor Martínez 2026-02-07 21:53:47 +01:00 committed by JasterV
commit 5e08095fa8
30 changed files with 54 additions and 48 deletions

View file

@ -37,7 +37,7 @@ defmodule SpazioSolazzoWeb.CarouselLiveComponent do
def render(assigns) do def render(assigns) do
~H""" ~H"""
<div <div
class="relative carousel w-full max-h-160" class="relative carousel w-full"
style={"height: #{@height};"} style={"height: #{@height};"}
> >
<div <div

View file

@ -6,7 +6,7 @@ defmodule SpazioSolazzoWeb.CoworkingLive do
import SpazioSolazzoWeb.LandingComponents import SpazioSolazzoWeb.LandingComponents
def mount(_params, _session, socket) do def mount(_params, _session, socket) do
{:ok, space} = BookingSystem.get_space_by_slug("coworking") {:ok, space} = BookingSystem.get_space_by_slug("arcipelago")
{:ok, assign(socket, space: space)} {:ok, assign(socket, space: space)}
end end

View file

@ -6,9 +6,10 @@
price_unit="day" price_unit="day"
capacity={@space.capacity} capacity={@space.capacity}
images={[ images={[
"https://lh3.googleusercontent.com/aida-public/AB6AXuDmh_AkVuUoICqpHk1NdLuLdi0xQBOC8Hy9PrsSNz956igHFRhbNGsB8k0vSLe2U2NW1sxRVZm_dwR27Q4Db_f21XbYkLtfiRYob-j4ran1rTBB0bQAz4QLFSO1yL_cPhDIpAyvC069mDQ33-ckZgZ_yvFsIK_-_0Jj2NEOnDie684uaR7vKuiBWlsr-JmAsPzUp7Aik7Qbzozune348nBz1bvWkBNMCpMO3JV8hrYBo1i6JlUiGSuP3-5fWXKt8dKhxPUN-amjLFgh", ~p"/images/coworking_room/01.jpg",
"https://lh3.googleusercontent.com/aida-public/AB6AXuCh5O9cz1ruQFH0Pq3MzC_1HsWrLPHbWlfYEdB2dmPi0YDn2L23R5hseUZmb19XlEju1n4a24oD6pH5qiG4SvIemrD45PfKwvNlckpOG59IYz5WYrHzroq7L4Uq9Hxl0PTzU5m8R5k625w_MrdZKidyfM6OnzNJfM5J3XftFI5A9J7wD_BDHRKxq8gxAukUCesuYX8lGm3AhQAZQTjaUY5yeobjt-NCSrlfTzxmcUmibJSTnKZuwx-li4QtFr0wQrzHVLUZYiAhA251", ~p"/images/coworking_room/02.jpg",
"https://lh3.googleusercontent.com/aida-public/AB6AXuCanfiWzXqH3fBrE6U3phirIFZo5bgKG1aa8wnXCRC12yOXkcgnGUTRhxppIk61QUdQWF9KuFAtjhDEI9AACV-pM7yXyPKbOKognCARD-qbffFtCwGLidcLkoprLnNAW12C7TeRL6gOEBas3RI7jCf30JmzMmSqCjMx3lixgrOr6qlpbHZA4Eog_P41y5zXtn9Nqlq2eB6c7RYhiOIJzXVpMmfLR_qf0HTmOnx2poDbqKcLDcCM-p4S6aAwLxC-GYBmvEfWQ4meToCL" ~p"/images/coworking_room/03.jpg",
~p"/images/coworking_room/04.jpg"
]} ]}
> >
<:title>{@space.name}</:title> <:title>{@space.name}</:title>

View file

@ -6,7 +6,7 @@ defmodule SpazioSolazzoWeb.MeetingLive do
import SpazioSolazzoWeb.LandingComponents import SpazioSolazzoWeb.LandingComponents
def mount(_params, _session, socket) do def mount(_params, _session, socket) do
{:ok, space} = BookingSystem.get_space_by_slug("meeting") {:ok, space} = BookingSystem.get_space_by_slug("media-room")
{:ok, assign(socket, space: space)} {:ok, assign(socket, space: space)}
end end

View file

@ -6,9 +6,10 @@
price_unit="hour" price_unit="hour"
capacity={@space.capacity} capacity={@space.capacity}
images={[ images={[
"https://lh3.googleusercontent.com/aida-public/AB6AXuDmh_AkVuUoICqpHk1NdLuLdi0xQBOC8Hy9PrsSNz956igHFRhbNGsB8k0vSLe2U2NW1sxRVZm_dwR27Q4Db_f21XbYkLtfiRYob-j4ran1rTBB0bQAz4QLFSO1yL_cPhDIpAyvC069mDQ33-ckZgZ_yvFsIK_-_0Jj2NEOnDie684uaR7vKuiBWlsr-JmAsPzUp7Aik7Qbzozune348nBz1bvWkBNMCpMO3JV8hrYBo1i6JlUiGSuP3-5fWXKt8dKhxPUN-amjLFgh", ~p"/images/meeting_room/01.jpg",
"https://lh3.googleusercontent.com/aida-public/AB6AXuCh5O9cz1ruQFH0Pq3MzC_1HsWrLPHbWlfYEdB2dmPi0YDn2L23R5hseUZmb19XlEju1n4a24oD6pH5qiG4SvIemrD45PfKwvNlckpOG59IYz5WYrHzroq7L4Uq9Hxl0PTzU5m8R5k625w_MrdZKidyfM6OnzNJfM5J3XftFI5A9J7wD_BDHRKxq8gxAukUCesuYX8lGm3AhQAZQTjaUY5yeobjt-NCSrlfTzxmcUmibJSTnKZuwx-li4QtFr0wQrzHVLUZYiAhA251", ~p"/images/meeting_room/02.jpg",
"https://lh3.googleusercontent.com/aida-public/AB6AXuCanfiWzXqH3fBrE6U3phirIFZo5bgKG1aa8wnXCRC12yOXkcgnGUTRhxppIk61QUdQWF9KuFAtjhDEI9AACV-pM7yXyPKbOKognCARD-qbffFtCwGLidcLkoprLnNAW12C7TeRL6gOEBas3RI7jCf30JmzMmSqCjMx3lixgrOr6qlpbHZA4Eog_P41y5zXtn9Nqlq2eB6c7RYhiOIJzXVpMmfLR_qf0HTmOnx2poDbqKcLDcCM-p4S6aAwLxC-GYBmvEfWQ4meToCL" ~p"/images/meeting_room/03.jpg",
~p"/images/meeting_room/04.jpg"
]} ]}
> >
<:title>{@space.name}</:title> <:title>{@space.name}</:title>

View file

@ -6,7 +6,7 @@ defmodule SpazioSolazzoWeb.MusicLive do
import SpazioSolazzoWeb.LandingComponents import SpazioSolazzoWeb.LandingComponents
def mount(_params, _session, socket) do def mount(_params, _session, socket) do
{:ok, space} = BookingSystem.get_space_by_slug("music") {:ok, space} = BookingSystem.get_space_by_slug("hall")
{:ok, assign(socket, space: space)} {:ok, assign(socket, space: space)}
end end

View file

@ -6,9 +6,10 @@
price_unit="hour" price_unit="hour"
capacity={@space.capacity} capacity={@space.capacity}
images={[ images={[
"https://lh3.googleusercontent.com/aida-public/AB6AXuD1wkxK48dk7i5XYX6JL-O1egrsdLjcmOg7N4EB76QtUvhzR7lZQadprIT9rLPsroUjazftFRpp_z26wb8lHaUW9XyucGlKG3qG40oT5iaKWwqVI1drNKJDJgVBkmNjw4u_D5vig_C1pf6bgGZnPaOV2tnnmlexxHJIDQYZzfg1GGwgywBvpGLz_u2_jvkbyMo3_m5roM09PjonFEfGIHxjm0vClW1DAOX45IrT87A85OdAXEu2EPyB8oW9WzmolOn4DFj22vKWSbVD", ~p"/images/music_room/01.jpg",
"https://lh3.googleusercontent.com/aida-public/AB6AXuB3fJu4mgZaw8GP1OC2SjquJZJmnRlY_OHD4fO4AAd_KHd5BYnW1i0egrskoEfK_uCdK4pQu5kMf8pF9h_KXE0wYQAROnTBTJ4YmBpHui9nv8wz44VENo2p-lA3rW8xhQhiYzlAhHJlhgOdZluVp9eYvsZxGM76QkDXMcBQz1Ka5ZfRMNgddo1RS76IPaxbQIvpOh_55uW87bAiGAvhcE8GrIi2ugpiJ64Rdou1uZLD1bPWxUvyLtpTFFLr2vfVjq7OpVYiGnLaGstS", ~p"/images/music_room/02.jpg",
"https://lh3.googleusercontent.com/aida-public/AB6AXuBVY6j_kvSUC0trHVnwvszpxZa58CpY0sGTF6m6lPQJkFlN-GnK1ofNaSn8PU1JnmPPAl7B196LoYq4SfawlDFrg2ADKKr65cOE0jq2L9w-cXrkPxE4poylrIeKX8zP1JsIS5obvU5_HAG074RjeYSWFsV5Z7wQF0ktZlYL6m462hsl-xdLQWQiBLZOHNsBf6jrZieUst9dKUlec6hzWOqcbIXuugBJW5fklJmMti9CDQynn1XZ5I5gZYEL47tW2Ku9u_zEEpfqmEKF" ~p"/images/music_room/03.jpg",
~p"/images/music_room/04.jpg"
]} ]}
> >
<:title>{@space.name}</:title> <:title>{@space.name}</:title>

View file

@ -5,14 +5,19 @@ defmodule SpazioSolazzoWeb.PageLive do
alias SpazioSolazzo.BookingSystem alias SpazioSolazzo.BookingSystem
def mount(_params, _session, socket) do def mount(_params, _session, socket) do
{:ok, coworking_space} = BookingSystem.get_space_by_slug("coworking", not_found_error?: false) {:ok, coworking_space} =
{:ok, meeting_space} = BookingSystem.get_space_by_slug("meeting", not_found_error?: false) BookingSystem.get_space_by_slug("arcipelago", not_found_error?: false)
{:ok, music_space} = BookingSystem.get_space_by_slug("music", not_found_error?: false)
{:ok, meeting_space} = BookingSystem.get_space_by_slug("media-room", not_found_error?: false)
{:ok, music_space} = BookingSystem.get_space_by_slug("hall", not_found_error?: false)
carousel_images = [ carousel_images = [
"https://lh3.googleusercontent.com/aida-public/AB6AXuApty1_MYrfkL2mpGOAKKvlxo-7B-Y6nnko3DA4UDhJ-dCSjcyOLMFy1C0xZmh1_Pu9TEEFj25GkJ74dR1Sb_x4sY9mDjecKICFvwHFgHkMFVMigsZjldl9rH34x4tZhdpWvUGCo32V1P5_0uwtXVPohKMbvIbBxr5nsPoEy_d7X4WgIMOA1Nv2bwDgkqbsG4X3noBx-riLqcnREEl3cb0kbtquJZJ6pYHfbimuNyuxtfQHzrG8KOMHe3YPoIgWt43mgPtgPL9gswni", ~p"/images/extra/outside-02.jpg",
"https://lh3.googleusercontent.com/aida-public/AB6AXuDmh_AkVuUoICqpHk1NdLuLdi0xQBOC8Hy9PrsSNz956igHFRhbNGsB8k0vSLe2U2NW1sxRVZm_dwR27Q4Db_f21XbYkLtfiRYob-j4ran1rTBB0bQAz4QLFSO1yL_cPhDIpAyvC069mDQ33-ckZgZ_yvFsIK_-_0Jj2NEOnDie684uaR7vKuiBWlsr-JmAsPzUp7Aik7Qbzozune348nBz1bvWkBNMCpMO3JV8hrYBo1i6JlUiGSuP3-5fWXKt8dKhxPUN-amjLFgh", ~p"/images/music_room/03.jpg",
"https://lh3.googleusercontent.com/aida-public/AB6AXuBBJs1jEAgwwiIvJD00kx3aA9pfI-o2fXT-eZ9dEQeHNHhvwQdVqrwsqwNvCR69rIYUNBKf-uY1dqXZSvXaXoE__slTLMqGHkUzSQSXql9PwhW3cLoMMv1wtj52qDORHy-0NE2_qbTLxm051aTxGLloQKUCIklZ0EMKxs8lvMpnLisnRZBkSMyUVcTBcQu16gZw3eDuMGUtXaTXskrQFGwDcThTCCF4TZiNAmgEk87ae3VgEwfJ2zBVeyHQ-BfMo5KHRtNl6lbzBT9N" ~p"/images/extra/chillout.jpg",
~p"/images/meeting_room/02.jpg",
~p"/images/music_room/01.jpg",
~p"/images/coworking_room/01.jpg"
] ]
{:ok, {:ok,

View file

@ -26,7 +26,7 @@
module={SpazioSolazzoWeb.CarouselLiveComponent} module={SpazioSolazzoWeb.CarouselLiveComponent}
id="home-carousel" id="home-carousel"
images={@carousel_images} images={@carousel_images}
height="650px" height="800px"
/> />
</div> </div>
</section> </section>
@ -53,7 +53,7 @@
description={@coworking_space.description} description={@coworking_space.description}
price="15" price="15"
time_unit="4 hours" time_unit="4 hours"
image_url="https://lh3.googleusercontent.com/aida-public/AB6AXuApty1_MYrfkL2mpGOAKKvlxo-7B-Y6nnko3DA4UDhJ-dCSjcyOLMFy1C0xZmh1_Pu9TEEFj25GkJ74dR1Sb_x4sY9mDjecKICFvwHFgHkMFVMigsZjldl9rH34x4tZhdpWvUGCo32V1P5_0uwtXVPohKMbvIbBxr5nsPoEy_d7X4WgIMOA1Nv2bwDgkqbsG4X3noBx-riLqcnREEl3cb0kbtquJZJ6pYHfbimuNyuxtfQHzrG8KOMHe3YPoIgWt43mgPtgPL9gswni" image_url={~p"/images/coworking_room/01.jpg"}
primary_label="Coworking" primary_label="Coworking"
primary_label_variant={:secondary} primary_label_variant={:secondary}
image_position={:left} image_position={:left}
@ -69,7 +69,7 @@
description={@meeting_space.description} description={@meeting_space.description}
price="40" price="40"
time_unit="hour" time_unit="hour"
image_url="https://lh3.googleusercontent.com/aida-public/AB6AXuDmh_AkVuUoICqpHk1NdLuLdi0xQBOC8Hy9PrsSNz956igHFRhbNGsB8k0vSLe2U2NW1sxRVZm_dwR27Q4Db_f21XbYkLtfiRYob-j4ran1rTBB0bQAz4QLFSO1yL_cPhDIpAyvC069mDQ33-ckZgZ_yvFsIK_-_0Jj2NEOnDie684uaR7vKuiBWlsr-JmAsPzUp7Aik7Qbzozune348nBz1bvWkBNMCpMO3JV8hrYBo1i6JlUiGSuP3-5fWXKt8dKhxPUN-amjLFgh" image_url={~p"/images/meeting_room/01.jpg"}
primary_label="Meeting" primary_label="Meeting"
primary_label_variant={:secondary} primary_label_variant={:secondary}
secondary_label="Up to 8 people" secondary_label="Up to 8 people"
@ -87,7 +87,7 @@
description={@music_space.description} description={@music_space.description}
price="25" price="25"
time_unit="hour" time_unit="hour"
image_url="https://lh3.googleusercontent.com/aida-public/AB6AXuBBJs1jEAgwwiIvJD00kx3aA9pfI-o2fXT-eZ9dEQeHNHhvwQdVqrwsqwNvCR69rIYUNBKf-uY1dqXZSvXaXoE__slTLMqGHkUzSQSXql9PwhW3cLoMMv1wtj52qDORHy-0NE2_qbTLxm051aTxGLloQKUCIklZ0EMKxs8lvMpnLisnRZBkSMyUVcTBcQu16gZw3eDuMGUtXaTXskrQFGwDcThTCCF4TZiNAmgEk87ae3VgEwfJ2zBVeyHQ-BfMo5KHRtNl6lbzBT9N" image_url={~p"/images/music_room/01.jpg"}
primary_label="Music" primary_label="Music"
primary_label_variant={:primary} primary_label_variant={:primary}
secondary_label="Not Soundproof" secondary_label="Not Soundproof"

View file

@ -34,9 +34,9 @@ defmodule SpazioSolazzoWeb.Router do
{SpazioSolazzoWeb.LiveUserAuth, :live_user_optional} {SpazioSolazzoWeb.LiveUserAuth, :live_user_optional}
] do ] do
live "/", PageLive live "/", PageLive
live "/coworking", CoworkingLive live "/arcipelago", CoworkingLive
live "/meeting", MeetingLive live "/media-room", MeetingLive
live "/music", MusicLive live "/hall", MusicLive
end end
ash_authentication_live_session :no_user_routes, ash_authentication_live_session :no_user_routes,

View file

@ -21,7 +21,7 @@ end
coworking = coworking =
BookingSystem.create_space!( BookingSystem.create_space!(
"Arcipelago", "Arcipelago",
"coworking", "arcipelago",
"Flexible desk spaces for remote work", "Flexible desk spaces for remote work",
10 10
) )
@ -32,7 +32,7 @@ IO.puts("✓ Created Coworking space")
meeting = meeting =
BookingSystem.create_space!( BookingSystem.create_space!(
"Media room", "Media room",
"meeting", "media-room",
"Private conference room for your meetings", "Private conference room for your meetings",
1 1
) )
@ -43,7 +43,7 @@ IO.puts("✓ Created Meeting Room space")
music = music =
BookingSystem.create_space!( BookingSystem.create_space!(
"Hall", "Hall",
"music", "hall",
"Tailored for band rehearsals.", "Tailored for band rehearsals.",
1 1
) )

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 MiB

View file

@ -1,6 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 71 48" fill="currentColor" aria-hidden="true">
<path
d="m26.371 33.477-.552-.1c-3.92-.729-6.397-3.1-7.57-6.829-.733-2.324.597-4.035 3.035-4.148 1.995-.092 3.362 1.055 4.57 2.39 1.557 1.72 2.984 3.558 4.514 5.305 2.202 2.515 4.797 4.134 8.347 3.634 3.183-.448 5.958-1.725 8.371-3.828.363-.316.761-.592 1.144-.886l-.241-.284c-2.027.63-4.093.841-6.205.735-3.195-.16-6.24-.828-8.964-2.582-2.486-1.601-4.319-3.746-5.19-6.611-.704-2.315.736-3.934 3.135-3.6.948.133 1.746.56 2.463 1.165.583.493 1.143 1.015 1.738 1.493 2.8 2.25 6.712 2.375 10.265-.068-5.842-.026-9.817-3.24-13.308-7.313-1.366-1.594-2.7-3.216-4.095-4.785-2.698-3.036-5.692-5.71-9.79-6.623C12.8-.623 7.745.14 2.893 2.361 1.926 2.804.997 3.319 0 4.149c.494 0 .763.006 1.032 0 2.446-.064 4.28 1.023 5.602 3.024.962 1.457 1.415 3.104 1.761 4.798.513 2.515.247 5.078.544 7.605.761 6.494 4.08 11.026 10.26 13.346 2.267.852 4.591 1.135 7.172.555ZM10.751 3.852c-.976.246-1.756-.148-2.56-.962 1.377-.343 2.592-.476 3.897-.528-.107.848-.607 1.306-1.336 1.49Zm32.002 37.924c-.085-.626-.62-.901-1.04-1.228-1.857-1.446-4.03-1.958-6.333-2-1.375-.026-2.735-.128-4.031-.61-.595-.22-1.26-.505-1.244-1.272.015-.78.693-1 1.31-1.184.505-.15 1.026-.247 1.6-.382-1.46-.936-2.886-1.065-4.787-.3-2.993 1.202-5.943 1.06-8.926-.017-1.684-.608-3.179-1.563-4.735-2.408l-.077.057c1.29 2.115 3.034 3.817 5.004 5.271 3.793 2.8 7.936 4.471 12.784 3.73A66.714 66.714 0 0 1 37 40.877c1.98-.16 3.866.398 5.753.899Zm-9.14-30.345c-.105-.076-.206-.266-.42-.069 1.745 2.36 3.985 4.098 6.683 5.193 4.354 1.767 8.773 2.07 13.293.51 3.51-1.21 6.033-.028 7.343 3.38.19-3.955-2.137-6.837-5.843-7.401-2.084-.318-4.01.373-5.962.94-5.434 1.575-10.485.798-15.094-2.553Zm27.085 15.425c.708.059 1.416.123 2.124.185-1.6-1.405-3.55-1.517-5.523-1.404-3.003.17-5.167 1.903-7.14 3.972-1.739 1.824-3.31 3.87-5.903 4.604.043.078.054.117.066.117.35.005.699.021 1.047.005 3.768-.17 7.317-.965 10.14-3.7.89-.86 1.685-1.817 2.544-2.71.716-.746 1.584-1.159 2.645-1.07Zm-8.753-4.67c-2.812.246-5.254 1.409-7.548 2.943-1.766 1.18-3.654 1.738-5.776 1.37-.374-.066-.75-.114-1.124-.17l-.013.156c.135.07.265.151.405.207.354.14.702.308 1.07.395 4.083.971 7.992.474 11.516-1.803 2.221-1.435 4.521-1.707 7.013-1.336.252.038.503.083.756.107.234.022.479.255.795.003-2.179-1.574-4.526-2.096-7.094-1.872Zm-10.049-9.544c1.475.051 2.943-.142 4.486-1.059-.452.04-.643.04-.827.076-2.126.424-4.033-.04-5.733-1.383-.623-.493-1.257-.974-1.889-1.457-2.503-1.914-5.374-2.555-8.514-2.5.05.154.054.26.108.315 3.417 3.455 7.371 5.836 12.369 6.008Zm24.727 17.731c-2.114-2.097-4.952-2.367-7.578-.537 1.738.078 3.043.632 4.101 1.728a13 13 0 0 0 1.182 1.106c1.6 1.29 4.311 1.352 5.896.155-1.861-.726-1.861-.726-3.601-2.452Zm-21.058 16.06c-1.858-3.46-4.981-4.24-8.59-4.008a9.667 9.667 0 0 1 2.977 1.39c.84.586 1.547 1.311 2.243 2.055 1.38 1.473 3.534 2.376 4.962 2.07-.656-.412-1.238-.848-1.592-1.507Zl-.006.006-.036-.004.021.018.012.053Za.127.127 0 0 0 .015.043c.005.008.038 0 .058-.002Zl-.008.01.005.026.024.014Z"
fill="#FD4F00"
/>
</svg>

Before

Width:  |  Height:  |  Size: 3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 MiB

View file

@ -5,21 +5,21 @@ defmodule SpazioSolazzoWeb.CoworkingLiveTest do
alias SpazioSolazzo.BookingSystem alias SpazioSolazzo.BookingSystem
setup do setup do
{:ok, space} = BookingSystem.create_space("CoworkingTest", "coworking", "desc", 10) {:ok, space} = BookingSystem.create_space("ArcipelagoTest", "arcipelago", "desc", 10)
%{space: space} %{space: space}
end end
describe "CoworkingLive landing page" do describe "CoworkingLive landing page" do
test "renders coworking landing page with space information", %{conn: conn, space: space} do test "renders coworking landing page with space information", %{conn: conn, space: space} do
{:ok, _view, html} = live(conn, "/coworking") {:ok, _view, html} = live(conn, "/arcipelago")
assert html =~ space.name assert html =~ space.name
assert html =~ "Fiber Internet" assert html =~ "Fiber Internet"
end end
test "has link to space booking page with correct space slug", %{conn: conn, space: space} do test "has link to space booking page with correct space slug", %{conn: conn, space: space} do
{:ok, view, _html} = live(conn, "/coworking") {:ok, view, _html} = live(conn, "/arcipelago")
assert has_element?(view, "a[href='/book/space/#{space.slug}']") assert has_element?(view, "a[href='/book/space/#{space.slug}']")
end end

View file

@ -5,7 +5,7 @@ defmodule SpazioSolazzoWeb.MeetingLiveTest do
alias SpazioSolazzo.BookingSystem alias SpazioSolazzo.BookingSystem
setup do setup do
{:ok, space} = BookingSystem.create_space("MeetingTest", "meeting", "desc", 1) {:ok, space} = BookingSystem.create_space("MediaRoomTest", "media-room", "desc", 1)
%{space: space} %{space: space}
end end
@ -15,13 +15,13 @@ defmodule SpazioSolazzoWeb.MeetingLiveTest do
conn: conn, conn: conn,
space: space space: space
} do } do
{:ok, _view, html} = live(conn, "/meeting") {:ok, _view, html} = live(conn, "/media-room")
assert html =~ space.name assert html =~ space.name
end end
test "has link to space booking page with correct space slug", %{conn: conn, space: space} do test "has link to space booking page with correct space slug", %{conn: conn, space: space} do
{:ok, view, _html} = live(conn, "/meeting") {:ok, view, _html} = live(conn, "/media-room")
assert has_element?(view, "a[href='/book/space/#{space.slug}']") assert has_element?(view, "a[href='/book/space/#{space.slug}']")
end end

View file

@ -5,7 +5,7 @@ defmodule SpazioSolazzoWeb.MusicLiveTest do
alias SpazioSolazzo.BookingSystem alias SpazioSolazzo.BookingSystem
setup do setup do
{:ok, space} = BookingSystem.create_space("MusicTest", "music", "desc", 1) {:ok, space} = BookingSystem.create_space("HallTest", "hall", "desc", 1)
%{space: space} %{space: space}
end end
@ -15,13 +15,13 @@ defmodule SpazioSolazzoWeb.MusicLiveTest do
conn: conn, conn: conn,
space: space space: space
} do } do
{:ok, _view, html} = live(conn, "/music") {:ok, _view, html} = live(conn, "/hall")
assert html =~ space.name assert html =~ space.name
end end
test "has link to space booking page with correct space slug", %{conn: conn, space: space} do test "has link to space booking page with correct space slug", %{conn: conn, space: space} do
{:ok, view, _html} = live(conn, "/music") {:ok, view, _html} = live(conn, "/hall")
assert has_element?(view, "a[href='/book/space/#{space.slug}']") assert has_element?(view, "a[href='/book/space/#{space.slug}']")
end end

View file

@ -5,7 +5,11 @@ defmodule SpazioSolazzoWeb.PageLiveTest do
alias SpazioSolazzo.BookingSystem alias SpazioSolazzo.BookingSystem
setup do setup do
for {name, slug} <- [{"Coworking", "coworking"}, {"Meeting", "meeting"}, {"Music", "music"}] do for {name, slug} <- [
{"Arcipelago", "arcipelago"},
{"Media Room", "media-room"},
{"Hall", "hall"}
] do
BookingSystem.create_space!(name, slug, "desc", 10) BookingSystem.create_space!(name, slug, "desc", 10)
end end
@ -17,8 +21,8 @@ defmodule SpazioSolazzoWeb.PageLiveTest do
html = render(view) html = render(view)
assert String.contains?(html, "/coworking") assert String.contains?(html, "/arcipelago")
assert String.contains?(html, "/meeting") assert String.contains?(html, "/media-room")
assert String.contains?(html, "/music") assert String.contains?(html, "/hall")
end end
end end