summaryrefslogtreecommitdiff
path: root/spec/services/labels/update_service_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/services/labels/update_service_spec.rb')
-rw-r--r--spec/services/labels/update_service_spec.rb51
1 files changed, 40 insertions, 11 deletions
diff --git a/spec/services/labels/update_service_spec.rb b/spec/services/labels/update_service_spec.rb
index e743bdfd0f2..24123ca22d9 100644
--- a/spec/services/labels/update_service_spec.rb
+++ b/spec/services/labels/update_service_spec.rb
@@ -2,8 +2,9 @@ require 'spec_helper'
describe Labels::UpdateService, services: true do
describe '#execute' do
- let(:group) { create(:group) }
+ let!(:group) { create(:group) }
let!(:project1) { create(:empty_project, group: group) }
+ let!(:project2) { create(:empty_project, group: group) }
let(:params) do
{
@@ -13,7 +14,7 @@ describe Labels::UpdateService, services: true do
}
end
- context 'with a group as subject' do
+ context 'with a group label' do
let(:label) { create(:label, subject: group, title: 'Bug') }
subject(:service) { described_class.new(group, double, params) }
@@ -24,28 +25,56 @@ describe Labels::UpdateService, services: true do
expect(label).to have_attributes(params)
end
- it 'updates the label from projects of the group' do
- project2 = create(:empty_project, group: group)
- create(:label, subject: project1, title: 'Bug')
- create(:label, subject: project2, title: 'Bug')
+ it 'updates the label of all projects inside the group' do
+ label1 = create(:group_label, subject: project1, title: 'Bug')
+ label2 = create(:group_label, subject: project2, title: 'Bug')
- service.execute(label)
+ service.execute(label1)
- expect(project1.labels.where(params)).not_to be_empty
- expect(project2.labels.where(params)).not_to be_empty
+ expect(label1.reload).to have_attributes(params)
+ expect(label2.reload).to have_attributes(params)
end
end
- context 'with a project as subject' do
+ context 'with a project label' do
subject(:service) { described_class.new(project1, double, params) }
it 'updates the project label' do
- label = create(:label, subject: project1)
+ label = create(:project_label, subject: project1)
service.execute(label)
expect(label).to have_attributes(params)
end
+
+ context 'inherited from a group' do
+ it 'updates the group label' do
+ label1 = create(:group_label, subject: group, title: 'Bug')
+ label2 = create(:group_label, subject: project1, title: 'Bug')
+
+ service.execute(label2)
+
+ expect(label1.reload).to have_attributes(params)
+ end
+
+ it 'updates the label of all projects inside the group' do
+ label1 = create(:group_label, subject: project1, title: 'Bug')
+ label2 = create(:group_label, subject: project2, title: 'Bug')
+
+ service.execute(label1)
+
+ expect(label1.reload).to have_attributes(params)
+ expect(label2.reload).to have_attributes(params)
+ end
+
+ it 'updates the project label' do
+ label = create(:group_label, subject: project1)
+
+ service.execute(label)
+
+ expect(label).to have_attributes(params)
+ end
+ end
end
end
end