aprs.me/test/aprsme/connection_prevention_test.exs

54 lines
1.6 KiB
Elixir

defmodule Aprsme.ConnectionPreventionTest do
@moduledoc """
Simple test to verify APRS connections are prevented in test environment.
"""
use ExUnit.Case, async: false
use Aprsme.DataCase
test "APRS connection is disabled in test environment" do
# Verify we're in test environment
assert Mix.env() == :test
assert Application.get_env(:aprsme, :env) == :test
# Verify APRS connection is explicitly disabled
assert Application.get_env(:aprsme, :disable_aprs_connection) == true
# Verify APRS.Is process is not running
assert Process.whereis(Aprsme.Is) == nil
end
test "APRS configuration is safe for testing" do
# Verify server configuration is neutralized
server = Application.get_env(:aprsme, :aprsme_is_server)
assert server == nil or server == "mock.aprs.test"
# Verify test credentials are used
login_id = Application.get_env(:aprsme, :aprsme_is_login_id)
assert login_id == "TEST"
# Verify no real APRS servers in config
forbidden_servers = [
"rotate.aprs2.net",
"dallas.aprs2.net",
"seattle.aprs2.net"
]
if server do
server_str = to_string(server)
refute Enum.any?(forbidden_servers, fn forbidden ->
String.contains?(server_str, forbidden)
end)
end
end
test "get_status works without external connection" do
# This should not attempt external connections
status = Aprsme.Is.get_status()
# Should return disconnected state
assert status.connected == false
assert status.uptime_seconds == 0
assert status.connected_at == nil
end
end