diff options
Diffstat (limited to 'spec/models/group_spec.rb')
-rw-r--r-- | spec/models/group_spec.rb | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/spec/models/group_spec.rb b/spec/models/group_spec.rb index e88abc21ef2..f591c98071a 100644 --- a/spec/models/group_spec.rb +++ b/spec/models/group_spec.rb @@ -563,6 +563,25 @@ RSpec.describe Group do it { expect(group.ancestors.to_sql).not_to include 'traversal_ids <@' } end end + + context 'when project namespace exists in the group' do + let!(:project) { create(:project, group: group) } + let!(:project_namespace) { create(:project_namespace, project: project) } + + it 'filters out project namespace' do + expect(group.descendants.find_by_id(project_namespace.id)).to be_nil + end + + context 'when include_sti_condition is disabled' do + before do + stub_feature_flags(include_sti_condition: false) + end + + it 'raises an exception' do + expect { group.descendants.find_by_id(project_namespace.id)}.to raise_error(ActiveRecord::SubclassNotFound) + end + end + end end end @@ -718,6 +737,22 @@ RSpec.describe Group do expect(group.group_members.developers.map(&:user)).to include(user) expect(group.group_members.guests.map(&:user)).not_to include(user) end + + context 'when `tasks_to_be_done` and `tasks_project_id` are passed' do + let!(:project) { create(:project, group: group) } + + before do + stub_experiments(invite_members_for_task: true) + group.add_users([create(:user)], :developer, tasks_to_be_done: %w(ci code), tasks_project_id: project.id) + end + + it 'creates a member_task with the correct attributes', :aggregate_failures do + member = group.group_members.last + + expect(member.tasks_to_be_done).to match_array([:ci, :code]) + expect(member.member_task.project).to eq(project) + end + end end describe '#avatar_type' do |