summaryrefslogtreecommitdiff
path: root/spec/services/namespace_settings/update_service_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/services/namespace_settings/update_service_spec.rb')
-rw-r--r--spec/services/namespace_settings/update_service_spec.rb48
1 files changed, 48 insertions, 0 deletions
diff --git a/spec/services/namespace_settings/update_service_spec.rb b/spec/services/namespace_settings/update_service_spec.rb
new file mode 100644
index 00000000000..b588bf2034d
--- /dev/null
+++ b/spec/services/namespace_settings/update_service_spec.rb
@@ -0,0 +1,48 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+RSpec.describe NamespaceSettings::UpdateService do
+ let(:user) { create(:user) }
+ let(:group) { create(:group) }
+ let(:settings) { {} }
+
+ subject(:service) { described_class.new(user, group, settings) }
+
+ describe "#execute" do
+ context "group has no namespace_settings" do
+ before do
+ group.namespace_settings.destroy!
+ end
+
+ it "builds out a new namespace_settings record" do
+ expect do
+ service.execute
+ end.to change { NamespaceSetting.count }.by(1)
+ end
+ end
+
+ context "group has a namespace_settings" do
+ before do
+ service.execute
+ end
+
+ it "doesn't create a new namespace_setting record" do
+ expect do
+ service.execute
+ end.not_to change { NamespaceSetting.count }
+ end
+ end
+
+ context "updating :default_branch_name" do
+ let(:example_branch_name) { "example_branch_name" }
+ let(:settings) { { default_branch_name: example_branch_name } }
+
+ it "changes settings" do
+ expect { service.execute }
+ .to change { group.namespace_settings.default_branch_name }
+ .from(nil).to(example_branch_name)
+ end
+ end
+ end
+end