defmodule Aprsme.ApplicationTest do use ExUnit.Case, async: false describe "config_change/3" do test "returns :ok" do assert :ok = Aprsme.Application.config_change(%{}, %{}, []) end test "returns :ok with populated change maps" do assert :ok = Aprsme.Application.config_change( %{secret_key_base: "x"}, %{}, [:removed_key] ) end end describe "start/2" do test "module is loaded and exports the Application behaviour callbacks" do Code.ensure_loaded(Aprsme.Application) assert function_exported?(Aprsme.Application, :start, 2) assert function_exported?(Aprsme.Application, :config_change, 3) end end describe "module compilation" do test "Application module is loaded and has the Application behaviour" do Code.ensure_loaded!(Aprsme.Application) behaviours = Aprsme.Application.module_info(:attributes)[:behaviour] || [] assert Application in behaviours end end end