Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'spec/models/members/member_task_spec.rb')
-rw-r--r--spec/models/members/member_task_spec.rb124
1 files changed, 0 insertions, 124 deletions
diff --git a/spec/models/members/member_task_spec.rb b/spec/models/members/member_task_spec.rb
deleted file mode 100644
index b06aa05c255..00000000000
--- a/spec/models/members/member_task_spec.rb
+++ /dev/null
@@ -1,124 +0,0 @@
-# frozen_string_literal: true
-
-require 'spec_helper'
-
-RSpec.describe MemberTask do
- describe 'Associations' do
- it { is_expected.to belong_to(:member) }
- it { is_expected.to belong_to(:project) }
- end
-
- describe 'Validations' do
- it { is_expected.to validate_presence_of(:member) }
- it { is_expected.to validate_presence_of(:project) }
- it { is_expected.to validate_inclusion_of(:tasks).in_array(MemberTask::TASKS.values) }
-
- describe 'unique tasks validation' do
- subject do
- build(:member_task, tasks: [0, 0])
- end
-
- it 'expects the task values to be unique' do
- expect(subject).to be_invalid
- expect(subject.errors[:tasks]).to include('are not unique')
- end
- end
-
- describe 'project validations' do
- let_it_be(:project) { create(:project) }
-
- subject do
- build(:member_task, member: member, project: project, tasks_to_be_done: [:ci, :code])
- end
-
- context 'when the member source is a group' do
- let_it_be(:member) { create(:group_member) }
-
- it "expects the project to be part of the member's group projects" do
- expect(subject).to be_invalid
- expect(subject.errors[:project]).to include('is not in the member group')
- end
-
- context "when the project is part of the member's group projects" do
- let_it_be(:project) { create(:project, namespace: member.source) }
-
- it { is_expected.to be_valid }
- end
- end
-
- context 'when the member source is a project' do
- let_it_be(:member) { create(:project_member) }
-
- it "expects the project to be the member's project" do
- expect(subject).to be_invalid
- expect(subject.errors[:project]).to include('is not the member project')
- end
-
- context "when the project is the member's project" do
- let_it_be(:project) { member.source }
-
- it { is_expected.to be_valid }
- end
- end
- end
- end
-
- describe '.for_members' do
- it 'returns the member_tasks for multiple members' do
- member1 = create(:group_member)
- member_task1 = create(:member_task, member: member1)
- create(:member_task)
- expect(described_class.for_members([member1])).to match_array([member_task1])
- end
- end
-
- describe '#tasks_to_be_done' do
- subject { member_task.tasks_to_be_done }
-
- let_it_be(:member_task) { build(:member_task) }
-
- before do
- member_task[:tasks] = [0, 1]
- end
-
- it 'returns an array of symbols for the corresponding integers' do
- expect(subject).to match_array([:ci, :code])
- end
- end
-
- describe '#tasks_to_be_done=' do
- let_it_be(:member_task) { build(:member_task) }
-
- context 'when passing valid values' do
- subject { member_task[:tasks] }
-
- before do
- member_task.tasks_to_be_done = tasks
- end
-
- context 'when passing tasks as strings' do
- let_it_be(:tasks) { %w(ci code) }
-
- it 'sets an array of integers for the corresponding tasks' do
- expect(subject).to match_array([0, 1])
- end
- end
-
- context 'when passing a single task' do
- let_it_be(:tasks) { :ci }
-
- it 'sets an array of integers for the corresponding tasks' do
- expect(subject).to match_array([1])
- end
- end
-
- context 'when passing a task twice' do
- let_it_be(:tasks) { %w(ci ci) }
-
- it 'is set only once' do
- expect(subject).to match_array([1])
- end
- end
- end
- end
-end