LocalFileCacher.TestHelpers (Local File Cacher v0.1.0-alpha.3)
View SourceAssertions and setup functions that can be used in your application's tests to ensure that
LocalFileCacher
is working correctly.
Setting up your tests
For modules that test a single endpoint
defmodule YourProject.SomeApiTest do
use ExUnit.Case
@file_cache_directory_path LocalFileCacher.get_file_cache_directory_path(
YourProject.SomeApi,
"some_endpoint"
)
setup_all do
# Delete the local file cache directory after the tests have completed
on_exit(fn -> File.rm_rf!(@file_cache_directory_path) end)
%{file_cache_directory_path: @file_cache_directory_path}
end
setup_all [{LocalFileCacher.TestHelpers, :setup_file_cache_directory}]
end
For modules that test multiple endopints
defmodule YourProject.SomeApiTest do
use ExUnit.Case
@base_file_cache_directory_path LocalFileCacher.get_file_cache_directory_path(
YourProject.SomeApi
)
@some_endpoint_file_cache_directory_path LocalFileCacher.get_file_cache_directory_path(
YourProject.SomeApi,
"some_endpoint"
)
@some_other_endpoint_file_cache_directory_path LocalFileCacher.get_file_cache_directory_path(
YourProject.SomeApi,
"some_other_endpoint"
)
setup_all do
# Create file cache directories for all endpoints in this test module
File.mkdir_p!(@some_endpoint_file_cache_directory_path)
File.mkdir_p!(@some_other_endpoint_file_cache_directory_path)
# Delete all cached files for this category after the tests have completed
on_exit(fn -> File.rm_rf!(@base_file_cache_directory_path) end)
end
end
Using the assertions in your tests
After following the setup instructions above, these assertions can be used in your tests:
test "saves data to the local file cache" do
LocalFileCacher.TestHelpers.assert_files_have_been_saved_to_local_cache(
@file_cache_directory_path,
&YourProject.SomeApi.get_some_endpoint/0
)
end
test "prunes old data from the local file cache" do
LocalFileCacher.TestHelpers.assert_old_files_are_pruned_from_local_cache(
@file_cache_directory_path,
&YourProject.SomeApi.get_some_endpoint/0
)
end
Summary
Functions
Execute a zero-arity callback
, then assert that one or more files have been saved to the
given file_cache_directory_path
.
Execute a zero-arity callback
, then assert that old files are pruned from the
given file_cache_directory_path
.
Ensure the file cache directory exists in the file system.
Functions
Execute a zero-arity callback
, then assert that one or more files have been saved to the
given file_cache_directory_path
.
Examples
iex> LocalFileCacher.TestAssertions.assert_files_have_been_saved_to_local_cache(
...> "/tmp/path/to/your/cached/files",
...> &YourProject.SomeApi.get_some_endpoint/0
...> )
:ok
Execute a zero-arity callback
, then assert that old files are pruned from the
given file_cache_directory_path
.
Examples
iex> LocalFileCacher.TestAssertions.assert_old_files_are_pruned_from_local_cache(
...> "/tmp/path/to/your/cached/files",
...> &YourProject.SomeApi.get_some_endpoint/0
...> )
:ok
Ensure the file cache directory exists in the file system.