- -module(rebar_resource_SUITE).
- -compile(export_all).
- -include_lib("common_test/include/ct.hrl").
- -include_lib("eunit/include/eunit.hrl").
-
- all() -> [{group, git}, {group, pkg}, {group, hg}].
-
- groups() ->
- [{all, [], [change_type_upgrade]},
- {git, [], [{group, all}]},
- {pkg, [], [{group, all}]},
- {hg, [], [{group, all}]}].
-
- init_per_group(all, Config) ->
- State = rebar_state:resources(rebar_state:new(), [{git, rebar_git_resource},
- {pkg, rebar_pkg_resource},
- {hg, rebar_hg_resource}]),
- [{state, State} | Config];
- init_per_group(Name, Config) ->
- [{type, Name},
- {resource, {Name, "https://example.org/user/app", "vsn"}} | Config].
-
- end_per_group(_, _Config) ->
- ok.
-
- %% Changing the resource type is seen as an upgrade
- init_per_testcase(change_type_upgrade, Config) ->
- Type = ?config(type, Config),
- TypeStr = atom_to_list(Type),
- DirName = filename:join([?config(priv_dir, Config), "resource_"++TypeStr]),
- ec_file:mkdir_path(DirName),
-
- {ok, AppInfo} = rebar_app_info:new(test_app, "0.0.1", DirName),
- AppInfo1 = rebar_app_info:source(AppInfo, ?config(resource, Config)),
-
- [{app, AppInfo1} | Config].
-
- end_per_testcase(_, Config) ->
- Config.
-
- change_type_upgrade(Config) ->
- ?assert(rebar_fetch:needs_update(?config(app, Config),
- ?config(state, Config))).
|