aprs.me/test/support/mocks.ex
2025-06-21 12:26:43 -05:00

44 lines
1.2 KiB
Elixir

# Mocks are defined in test_helper.exs
# This file can be used for mock implementations or test utilities
defmodule Aprs.MockHelpers do
@moduledoc """
Helper functions for setting up mocks in tests
"""
import Mox
@doc """
Stubs the PacketsMock to return an empty list for get_packets_for_replay.
Use this in tests that don't care about historical packets but use MapLive.
"""
def stub_packets_mock do
stub(Aprs.PacketsMock, :get_packets_for_replay, fn _opts -> [] end)
end
@doc """
Sets up an expectation for PacketsMock with custom return value.
"""
def expect_packets_for_replay(packets) do
expect(Aprs.PacketsMock, :get_packets_for_replay, fn _opts -> packets end)
end
@doc """
Sets up an expectation for PacketsMock with filtering based on bounds.
"""
def expect_packets_for_replay_with_bounds(packets) do
expect(Aprs.PacketsMock, :get_packets_for_replay, fn opts ->
case opts[:bounds] do
[west, south, east, north] ->
Enum.filter(packets, fn packet ->
packet.has_position &&
packet.lat >= south && packet.lat <= north &&
packet.lon >= west && packet.lon <= east
end)
_ ->
packets
end
end)
end
end