diff options
Diffstat (limited to 'spec/graphql/resolvers/milestone_resolver_spec.rb')
-rw-r--r-- | spec/graphql/resolvers/milestone_resolver_spec.rb | 28 |
1 files changed, 24 insertions, 4 deletions
diff --git a/spec/graphql/resolvers/milestone_resolver_spec.rb b/spec/graphql/resolvers/milestone_resolver_spec.rb index 297130c2027..8e2c67fdc03 100644 --- a/spec/graphql/resolvers/milestone_resolver_spec.rb +++ b/spec/graphql/resolvers/milestone_resolver_spec.rb @@ -8,14 +8,14 @@ describe Resolvers::MilestoneResolver do describe '#resolve' do let_it_be(:current_user) { create(:user) } + def resolve_group_milestones(args = {}, context = { current_user: current_user }) + resolve(described_class, obj: group, args: args, ctx: context) + end + context 'for group milestones' do let_it_be(:now) { Time.now } let_it_be(:group) { create(:group, :private) } - def resolve_group_milestones(args = {}, context = { current_user: current_user }) - resolve(described_class, obj: group, args: args, ctx: context) - end - before do group.add_developer(current_user) end @@ -89,5 +89,25 @@ describe Resolvers::MilestoneResolver do end end end + + context 'when including descendant milestones in a public group' do + let_it_be(:group) { create(:group, :public) } + let(:args) { { include_descendants: true } } + + it 'finds milestones only in accessible projects and groups' do + accessible_group = create(:group, :private, parent: group) + accessible_project = create(:project, group: accessible_group) + accessible_group.add_developer(current_user) + inaccessible_group = create(:group, :private, parent: group) + inaccessible_project = create(:project, :private, group: group) + milestone1 = create(:milestone, group: group) + milestone2 = create(:milestone, group: accessible_group) + milestone3 = create(:milestone, project: accessible_project) + create(:milestone, group: inaccessible_group) + create(:milestone, project: inaccessible_project) + + expect(resolve_group_milestones(args)).to match_array([milestone1, milestone2, milestone3]) + end + end end end |