8000 test(harness): reduce setup duplication in test suite by mwoods79 · Pull Request #110 · huddlz-hq/huddlz · GitHub
[go: up one dir, main page]

Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 0 additions & 6 deletions test/features/step_definitions/create_huddl_steps.exs
Original file line number Diff line number Diff line change
Expand Up @@ -379,9 +379,6 @@ defmodule CreateHuddlSteps do
end

step "the huddl {string} should be created {int} times", %{args: [text, count]} = context do
# Wait a moment for any async operations to complete
Process.sleep(100)

huddlz =
Huddl
|> Ash.Query.filter(title == ^text)
Expand All @@ -393,9 +390,6 @@ defmodule CreateHuddlSteps do
end

step "the huddl should be created as private", context do
# Wait a moment for any async operations to complete
Process.sleep(100)

# Find the most recently created huddl using the correct actor
huddl =
Huddl
Expand Down
48 changes: 10 additions & 38 deletions test/features/step_definitions/location_autocomplete_steps.exs
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
defmodule LocationAutocompleteSteps do
use Cucumber.StepDefinition
import Mox
import Huddlz.Test.MoxHelpers
import PhoenixTest
import Phoenix.LiveViewTest

Expand Down Expand Up @@ -111,43 +111,15 @@ defmodule LocationAutocompleteSteps do
end

defp setup_autocomplete_stub(text) do
case text do
"aus" ->
stub(Huddlz.MockPlaces, :autocomplete, fn _, _token, _opts ->
{:ok,
[
%{
place_id: "p1",
display_text: "Austin, TX, USA",
main_text: "Austin",
secondary_text: "TX, USA"
}
]}
end)

"saint" ->
stub(Huddlz.MockPlaces, :autocomplete, fn _, _token, _opts ->
{:ok,
[
%{
place_id: "p2",
display_text: "Saint Augustine, FL, USA",
main_text: "Saint Augustine",
secondary_text: "FL, USA"
}
]}
end)

_ ->
stub(Huddlz.MockPlaces, :autocomplete, fn _, _token, _opts -> {:ok, []} end)
end
results =
case text do
"aus" -> [:austin]
"saint" -> [:saint_augustine]
_ -> []
end

stub_places_autocomplete(%{text => results})
end

defp setup_place_details_stub do
stub(Huddlz.MockPlaces, :place_details, fn
"p1", _token -> {:ok, %{latitude: 30.27, longitude: -97.74}}
"p2", _token -> {:ok, %{latitude: 29.89, longitude: -81.31}}
_, _token -> {:error, :not_found}
end)
end
defp setup_place_details_stub, do: stub_place_details(:defaults)
end
Original file line number Diff line number Diff line change
Expand Up @@ -217,9 +217,6 @@ defmodule PasswordAuthenticationSteps do
end

step "I should receive a password reset email for {string}", %{args: [email]} = context do
# Wait a moment for email to be sent
Process.sleep(200)

# Debug - let's see what emails were sent
# First try to assert any email was sent at all
try do
Expand Down Expand Up @@ -259,9 +256,6 @@ defmodule PasswordAuthenticationSteps do
session = context[:session] || context[:conn]
reset_link = context[:reset_link] || raise "No reset link found in context"

# Add a small delay to ensure token is fully processed
Process.sleep(100)

session = visit(session, reset_link)
{:ok, Map.merge(context, %{session: session, conn: session})}
end
Expand Down
3 changes: 0 additions & 3 deletions test/huddlz/accounts/profile_picture_test.exs
Original file line number Diff line number Diff line change
Expand Up @@ -75,9 +75,6 @@ defmodule Huddlz.Accounts.ProfilePictureTest do
actor: user
)

# Small delay to ensure different timestamps
Process.sleep(10)

# Create second profile picture (most recent)
{:ok, pic2} =
Accounts.create_profile_picture(
Expand Down
3 changes: 0 additions & 3 deletions test/huddlz/communities/group_image_test.exs
Original file line number Diff line number Diff line change
Expand Up @@ -80,9 +80,6 @@ defmodule Huddlz.Communities.GroupImageTest do
actor: owner
)

# Small delay to ensure different timestamps
Process.sleep(10)

# Create second image (most recent)
{:ok, img2} =
Communities.create_group_image(
Expand Down
33 changes: 18 additions & 15 deletions test/huddlz/communities/huddl_access_control_test.exs
Original file line number Diff line number Diff line change
Expand Up @@ -14,14 +14,15 @@ defmodule Huddlz.Communities.HuddlAccessControlTest do
non_member = generate(user(role: :user))
admin = generate(user(role: :admin))

group = generate(group(is_public: true, owner_id: owner.id, actor: owner))

# Add organizer and member to group
generate(
group_member(group_id: group.id, user_id: organizer.id, role: :organizer, actor: owner)
)

generate(group_member(group_id: group.id, user_id: member.id, role: :member, actor: owner))
{group, _} =
generate_group_with_members(
owner: owner,
group: [is_public: true],
members: [
%{user: organizer, role: :organizer},
%{user: member, role: :member}
]
)

%{
owner: owner,
Expand Down Expand Up @@ -405,13 +406,15 @@ defmodule Huddlz.Communities.HuddlAccessControlTest do
member = generate(user(role: :user))
admin = generate(user(role: :admin))

group = generate(group(is_public: true, owner_id: owner.id, actor: owner))

generate(
group_member(group_id: group.id, user_id: organizer.id, role: :organizer, actor: owner)
)

generate(group_member(group_id: group.id, user_id: member.id, role: :member, actor: owner))
{group, _} =
generate_group_with_members(
owner: owner,
group: [is_public: true],
members: [
%{user: organizer, role: :organizer},
%{user: member, role: :member}
]
)

huddl =
generate(
Expand Down
2 changes: 0 additions & 2 deletions test/huddlz/communities/huddl_image_test.exs
Original file line number Diff line number Diff line change
Expand Up @@ -118,8 +118,6 @@ defmodule Huddlz.Communities.HuddlImageTest do
actor: owner
)

Process.sleep(10)

# Create second image (most recent)
{:ok, img2} =
Communities.create_huddl_image(
Expand Down
4 changes: 1 addition & 3 deletions test/huddlz_web/graphql_test.exs
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,7 @@ defmodule HuddlzWeb.GraphqlTest do

describe "GraphQL HTTP authentication" do
setup do
stub(Huddlz.MockGeocoding, :geocode, fn _address ->
{:ok, %{latitude: 30.27, longitude: -97.74}}
end)
stub_geocode(%{latitude: 30.27, longitude: -97.74})

owner = generate(user(role: :user))
group = generate(group(owner_id: owner.id, is_public: true, actor: owner))
Expand Down
4 changes: 1 addition & 3 deletions test/huddlz_web/json_api_test.exs
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,7 @@ defmodule HuddlzWeb.JsonApiTest do

describe "JSON:API authentication" do
setup do
stub(Huddlz.MockGeocoding, :geocode, fn _address ->
{:ok, %{latitude: 30.27, longitude: -97.74}}
end)
stub_geocode(%{latitude: 30.27, longitude: -97.74})

owner = generate(user(role: :user))
group = generate(group(owner_id: owner.id, is_public: true, actor: owner))
Expand Down
89 changes: 16 additions & 73 deletions test/huddlz_web/live/group_live_permissions_test.exs
Original file line number Diff line number Diff line change
Expand Up @@ -12,83 +12,26 @@ defmodule HuddlzWeb.GroupLivePermissionsTest do
verified_non_member = generate(user(role: :user))
regular_non_member = generate(user(role: :user))

# Groups are automatically created with owner membership
public_group =
generate(
group(
is_public: true,
owner_id: owner.id,
name: "Public Group",
actor: owner
)
members = [
%{user: organizer, role: :organizer},
%{user: verified_member, role: :member},
%{user: regular_member, role: :member}
]

{public_group, _} =
generate_group_with_members(
owner: owner,
group: [is_public: true, name: "Public Group"],
members: members
)

private_group =
generate(
group(
is_public: false,
owner_id: owner.id,
name: "Private Group",
actor: owner
)
{private_group, _} =
generate_group_with_members(
owner: owner,
group: [is_public: false, name: "Private Group"],
members: members
)

# Add organizer and members to public group
generate(
group_member(
group_id: public_group.id,
user_id: organizer.id,
role: :organizer,
actor: owner
)
)

generate(
group_member(
group_id: public_group.id,
user_id: verified_member.id,
role: :member,
actor: owner
)
)

generate(
group_member(
group_id: public_group.id,
user_id: regular_member.id,
role: :member,
actor: owner
)
)

# Add organizer and members to private group
generate(
group_member(
group_id: private_group.id,
user_id: organizer.id,
role: :organizer,
actor: owner
)
)

generate(
group_member(
group_id: private_group.id,
user_id: verified_member.id,
role: :member,
actor: owner
)
)

generate(
group_member(
group_id: private_group.id,
user_id: regular_member.id,
role: :member,
actor: owner
)
)

%{
owner: owner,
organizer: organizer,
Expand Down
32 changes: 18 additions & 14 deletions test/huddlz_web/live/huddl_live/new_test.exs
Original file line number Diff line number Diff line change
Expand Up @@ -21,14 +21,15 @@ defmodule HuddlzWeb.HuddlLive.NewTest do
regular = generate(user(role: :user))
non_member = generate(user(role: :user))

group = generate(group(is_public: true, owner_id: owner.id, actor: owner))

# Add organizer and member to group
generate(
group_member(group_id: group.id, user_id: organizer.id, role: :organizer, actor: owner)
)

generate(group_member(group_id: group.id, user_id: member.id, role: :member, actor: owner))
{group, _} =
generate_group_with_members(
owner: owner,
group: [is_public: true],
members: [
%{user: organizer, role: :organizer},
%{user: member, role: :member}
]
)

%{
owner: owner,
Expand Down Expand Up @@ -528,13 +529,16 @@ defmodule HuddlzWeb.HuddlLive.NewTest do
owner = generate(user(role: :user))
organizer = generate(user(role: :user))
member = generate(user(role: :user))
group = generate(group(is_public: true, owner_id: owner.id, actor: owner))

generate(
group_member(group_id: group.id, user_id: organizer.id, role: :organizer, actor: owner)
)

generate(group_member(group_id: group.id, user_id: member.id, role: :member, actor: owner))
{group, _} =
generate_group_with_members(
owner: owner,
group: [is_public: true],
members: [
%{user: organizer, role: :organizer},
%{user: member, role: :member}
]
)

%{
owner: owner,
Expand Down
18 changes: 2 additions & 16 deletions test/huddlz_web/live/huddl_live_test.exs
Original file line number Diff line number Diff line change
Expand Up @@ -286,22 +286,8 @@ defmodule HuddlzWeb.HuddlLiveTest do
host: host,
public_group: public_group
} do
stub(Huddlz.MockPlaces, :autocomplete, fn
_text, _token, _opts ->
{:ok,
[
%{
place_id: "p1",
display_text: "Austin, TX, USA",
main_text: "Austin",
secondary_text: "TX, USA"
}
]}
end)

stub(Huddlz.MockPlaces, :place_details, fn "p1", _token ->
{:ok, %{latitude: 30.2672, longitude: -97.7431}}
end)
stub_places_autocomplete(%{"aus" => [:austin]})
stub_place_details(%{"p1" => %{latitude: 30.2672, longitude: -97.7431}})

generate(
huddl(
Expand Down
Loading
Loading
0