summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorFred Hebert <mononcqc@ferd.ca>2018-02-21 19:25:12 -0500
committerGitHub <noreply@github.com>2018-02-21 19:25:12 -0500
commit94ea0630b1b9b06459857e98f83c8b0ef5dbecc4 (patch)
tree0fbccee2040e1a152263940f8392b00109e178c9 /test
parentea79c6ad8815f6b74fc673668ba5f63f8763b2e0 (diff)
parentfee322edb91bd04fc24287f28d94c08fe0632812 (diff)
Merge pull request #1698 from campanja-forks/run-clean-hooks
fix hooks and plugins usage when cleaning build artifacts for deps
Diffstat (limited to 'test')
-rw-r--r--test/rebar_hooks_SUITE.erl27
1 files changed, 25 insertions, 2 deletions
diff --git a/test/rebar_hooks_SUITE.erl b/test/rebar_hooks_SUITE.erl
index f7fcb82..a36dbe1 100644
--- a/test/rebar_hooks_SUITE.erl
+++ b/test/rebar_hooks_SUITE.erl
@@ -12,7 +12,8 @@
run_hooks_once_profiles/1,
run_hooks_for_plugins/1,
eunit_app_hooks/1,
- deps_hook_namespace/1]).
+ deps_hook_namespace/1,
+ deps_clean_hook_namespace/1]).
-include_lib("common_test/include/ct.hrl").
-include_lib("eunit/include/eunit.hrl").
@@ -36,7 +37,7 @@ end_per_testcase(_, _Config) ->
all() ->
[build_and_clean_app, run_hooks_once, run_hooks_once_profiles,
escriptize_artifacts, run_hooks_for_plugins, deps_hook_namespace,
- eunit_app_hooks].
+ deps_clean_hook_namespace, eunit_app_hooks].
%% Test post provider hook cleans compiled project app, leaving it invalid
build_and_clean_app(Config) ->
@@ -134,6 +135,28 @@ deps_hook_namespace(Config) ->
{ok, [{dep, "some_dep"}]}
).
+deps_clean_hook_namespace(Config) ->
+ mock_git_resource:mock([{deps, [{some_dep, "0.0.1"}]}]),
+ Deps = rebar_test_utils:expand_deps(git, [{"some_dep", "0.0.1", []}]),
+ TopDeps = rebar_test_utils:top_level_deps(Deps),
+
+ RebarConfig = [
+ {deps, TopDeps},
+ {overrides, [
+ {override, some_dep, [
+ {provider_hooks, [
+ {pre, [
+ {compile, clean}
+ ]}
+ ]}
+ ]}
+ ]}
+ ],
+ rebar_test_utils:run_and_check(
+ Config, RebarConfig, ["clean"],
+ {ok, [{dep, "some_dep"}]}
+ ).
+
%% Checks that a hook that is defined on an app (not a top level hook of a project with subapps) is run
eunit_app_hooks(Config) ->
AppDir = ?config(apps, Config),