defmodule Mv.Membership.Import.ImportRunnerTest do use ExUnit.Case, async: true alias Mv.Membership.Import.ImportRunner describe "read_file_entry/2" do test "returns {:ok, content} for a readable file" do path = Path.join( System.tmp_dir!(), "import_runner_read_#{System.unique_integer([:positive])}.csv" ) File.write!(path, "email;first_name\njohn@example.com;John") on_exit(fn -> File.rm_rf(path) end) assert {:ok, "email;first_name\njohn@example.com;John"} = ImportRunner.read_file_entry(%{path: path}, %{}) end test "returns {:error, message} with a binary message when the file cannot be read" do missing_path = Path.join( System.tmp_dir!(), "import_runner_missing_#{System.unique_integer([:positive])}.csv" ) assert {:error, message} = ImportRunner.read_file_entry(%{path: missing_path}, %{}) assert is_binary(message) assert message != "" end end end