diff --git a/test/unit/guidance_test.rb b/test/unit/guidance_test.rb index 06d7648..a6870b8 100644 --- a/test/unit/guidance_test.rb +++ b/test/unit/guidance_test.rb @@ -17,10 +17,8 @@ assert Guidance.can_view(users(:user_one), guidances(:bbsrc_funder_guidance).id) end + test "User's organisation guidances should be viewable" do - Organisation.find_by(id: users(:user_one).organisation_id) do |org| - logger.debug "#{org.name}" - end assert Guidance.can_view(users(:user_one), guidances(:aru_institution_guidance).id) , "user_one cannot view aru_institution_guidance" assert Guidance.can_view(users(:user_two), guidances(:au_institution_guidance_1).id), "user_two cannot view au_..._1" @@ -30,6 +28,7 @@ assert Guidance.can_view(users(:user_three), guidances(:bu_institution_guidance_2).id), "user_three cannot view bu_..._2" end + test "No other organisations's guidances should be viewable" do # TOOD: add more fixtures with new types of guidances(i.e. not institution) # and add test cases @@ -73,6 +72,7 @@ end end + test "all_viewable returns all of a user's organisations's guidances" do all_viewable_guidances_one = Guidance.all_viewable(users(:user_one)) organisations(:aru).guidance_groups.each do |group| @@ -96,8 +96,34 @@ end end + test "all_viewable does not return any other organisation's guidance" do # TODO: Add in a suitable test. should we check for non-institutions? - flunk() + all_viewable_guidances = Guidance.all_viewable(users(:user_one)) + # remove all of the user's organisation + # remove all of each funder's organisations + # remove each of the dcc's organisations + # check if nill + all_viewable_guidances.delete_if do |guidance| + guidance.guidance_groups.each do |group| + if group.organisation.id == organisations(:dcc).id + return true + elsif group.organisation.organisation_type.id == organisation_types(:funder).id + return true + elsif group.organisation.id == users(:user_one).organisations.first.id + return true + end + return false + end + end + assert_nil(all_viewable_guidances, "there must not be any guidances which are not funders, DCC, or our own organisation") end end + + + + + + + +