diff options
Diffstat (limited to 'spec/models/service_spec.rb')
-rw-r--r-- | spec/models/service_spec.rb | 171 |
1 files changed, 86 insertions, 85 deletions
diff --git a/spec/models/service_spec.rb b/spec/models/service_spec.rb index 25eecb3f909..69684623275 100644 --- a/spec/models/service_spec.rb +++ b/spec/models/service_spec.rb @@ -1,4 +1,4 @@ -require 'spec_helper' +require "spec_helper" describe Service do describe "Associations" do @@ -6,19 +6,19 @@ describe Service do it { is_expected.to have_one :service_hook } end - describe 'Validations' do + describe "Validations" do it { is_expected.to validate_presence_of(:type) } end - describe 'Scopes' do - describe '.confidential_note_hooks' do - it 'includes services where confidential_note_events is true' do + describe "Scopes" do + describe ".confidential_note_hooks" do + it "includes services where confidential_note_events is true" do create(:service, active: true, confidential_note_events: true) expect(described_class.confidential_note_hooks.count).to eq 1 end - it 'excludes services where confidential_note_events is false' do + it "excludes services where confidential_note_events is false" do create(:service, active: true, confidential_note_events: false) expect(described_class.confidential_note_hooks.count).to eq 0 @@ -27,44 +27,44 @@ describe Service do end describe "Test Button" do - describe '#can_test?' do + describe "#can_test?" do let(:service) { create(:service, project: project) } - context 'when repository is not empty' do + context "when repository is not empty" do let(:project) { create(:project, :repository) } - it 'returns true' do + it "returns true" do expect(service.can_test?).to be true end end - context 'when repository is empty' do + context "when repository is empty" do let(:project) { create(:project) } - it 'returns true' do + it "returns true" do expect(service.can_test?).to be true end end end - describe '#test' do - let(:data) { 'test' } + describe "#test" do + let(:data) { "test" } let(:service) { create(:service, project: project) } - context 'when repository is not empty' do + context "when repository is not empty" do let(:project) { create(:project, :repository) } - it 'test runs execute' do + it "test runs execute" do expect(service).to receive(:execute).with(data) service.test(data) end end - context 'when repository is empty' do + context "when repository is empty" do let(:project) { create(:project) } - it 'test runs execute' do + it "test runs execute" do expect(service).to receive(:execute).with(data) service.test(data) @@ -74,9 +74,9 @@ describe Service do end describe "Template" do - describe '.build_from_template' do - context 'when template is invalid' do - it 'sets service template to inactive when template is invalid' do + describe ".build_from_template" do + context "when template is invalid" do + it "sets service template to inactive when template is invalid" do project = create(:project) template = KubernetesService.new(template: true, active: true) template.save(validate: false) @@ -94,23 +94,24 @@ describe Service do PushoverService.create( template: true, properties: { - device: 'MyDevice', - sound: 'mic', + device: "MyDevice", + sound: "mic", priority: 4, - api_key: '123456789' - }) + api_key: "123456789", + } + ) end let(:project) { create(:project) } - describe 'is prefilled for projects pushover service' do + describe "is prefilled for projects pushover service" do it "has all fields prefilled" do - service = project.find_or_initialize_service('pushover') + service = project.find_or_initialize_service("pushover") expect(service.template).to eq(false) - expect(service.device).to eq('MyDevice') - expect(service.sound).to eq('mic') + expect(service.device).to eq("MyDevice") + expect(service.sound).to eq("mic") expect(service.priority).to eq(4) - expect(service.api_key).to eq('123456789') + expect(service.api_key).to eq("123456789") end end end @@ -121,9 +122,9 @@ describe Service do BambooService.create( project: create(:project), properties: { - bamboo_url: 'http://gitlab.com', - username: 'mic', - password: "password" + bamboo_url: "http://gitlab.com", + username: "mic", + password: "password", } ) end @@ -145,12 +146,12 @@ describe Service do end it "returns false when the property has been re-assigned the same value" do - service.bamboo_url = 'http://gitlab.com' + service.bamboo_url = "http://gitlab.com" expect(service.bamboo_url_changed?).to be_falsy end it "returns false when the property has been assigned a new value then saved" do - service.bamboo_url = 'http://example.com' + service.bamboo_url = "http://example.com" service.save expect(service.bamboo_url_changed?).to be_falsy end @@ -161,9 +162,9 @@ describe Service do BambooService.create( project: create(:project), properties: { - bamboo_url: 'http://gitlab.com', - username: 'mic', - password: "password" + bamboo_url: "http://gitlab.com", + username: "mic", + password: "password", } ) end @@ -185,12 +186,12 @@ describe Service do end it "returns true when the property has been re-assigned the same value" do - service.bamboo_url = 'http://gitlab.com' + service.bamboo_url = "http://gitlab.com" expect(service.bamboo_url_touched?).to be_truthy end it "returns false when the property has been assigned a new value then saved" do - service.bamboo_url = 'http://example.com' + service.bamboo_url = "http://example.com" service.save expect(service.bamboo_url_changed?).to be_falsy end @@ -201,9 +202,9 @@ describe Service do BambooService.create( project: create(:project), properties: { - bamboo_url: 'http://gitlab.com', - username: 'mic', - password: "password" + bamboo_url: "http://gitlab.com", + username: "mic", + password: "password", } ) end @@ -215,41 +216,41 @@ describe Service do it "returns the previous value when the property has been assigned a different value" do service.bamboo_url = "http://example.com" - expect(service.bamboo_url_was).to eq('http://gitlab.com') + expect(service.bamboo_url_was).to eq("http://gitlab.com") end it "returns initial value when the property has been re-assigned the same value" do - service.bamboo_url = 'http://gitlab.com' - expect(service.bamboo_url_was).to eq('http://gitlab.com') + service.bamboo_url = "http://gitlab.com" + expect(service.bamboo_url_was).to eq("http://gitlab.com") end it "returns initial value when the property has been assigned multiple values" do service.bamboo_url = "http://example.com" service.bamboo_url = "http://example2.com" - expect(service.bamboo_url_was).to eq('http://gitlab.com') + expect(service.bamboo_url_was).to eq("http://gitlab.com") end it "returns nil when the property has been assigned a new value then saved" do - service.bamboo_url = 'http://example.com' + service.bamboo_url = "http://example.com" service.save expect(service.bamboo_url_was).to be_nil end end - describe 'initialize service with no properties' do + describe "initialize service with no properties" do let(:service) do GitlabIssueTrackerService.create( project: create(:project), - title: 'random title' + title: "random title" ) end - it 'does not raise error' do + it "does not raise error" do expect { service }.not_to raise_error end - it 'creates the properties' do - expect(service.properties).to eq({ "title" => "random title" }) + it "creates the properties" do + expect(service.properties).to eq({"title" => "random title"}) end end @@ -260,18 +261,18 @@ describe Service do project: project, active: true, properties: { - project_url: 'http://redmine/projects/project_name_in_redmine', + project_url: "http://redmine/projects/project_name_in_redmine", issues_url: "http://redmine/#{project.id}/project_name_in_redmine/:id", - new_issue_url: 'http://redmine/projects/project_name_in_redmine/issues/new' + new_issue_url: "http://redmine/projects/project_name_in_redmine/issues/new", } ) end describe "on create" do it "updates the has_external_issue_tracker boolean" do - expect do + expect { service.save! - end.to change { service.project.has_external_issue_tracker }.from(false).to(true) + }.to change { service.project.has_external_issue_tracker }.from(false).to(true) end end @@ -279,9 +280,9 @@ describe Service do it "updates the has_external_issue_tracker boolean" do service.save! - expect do + expect { service.update(active: false) - end.to change { service.project.has_external_issue_tracker }.from(true).to(false) + }.to change { service.project.has_external_issue_tracker }.from(true).to(false) end end end @@ -289,7 +290,7 @@ describe Service do describe "#deprecated?" do let(:project) { create(:project, :repository) } - it 'should return false by default' do + it "should return false by default" do service = create(:service, project: project) expect(service.deprecated?).to be_falsy end @@ -298,32 +299,32 @@ describe Service do describe "#deprecation_message" do let(:project) { create(:project, :repository) } - it 'should be empty by default' do + it "should be empty by default" do service = create(:service, project: project) expect(service.deprecation_message).to be_nil end end - describe '.find_by_template' do + describe ".find_by_template" do let!(:kubernetes_service) { create(:kubernetes_service, template: true) } - it 'returns service template' do + it "returns service template" do expect(KubernetesService.find_by_template).to eq(kubernetes_service) end end - describe '#api_field_names' do + describe "#api_field_names" do let(:fake_service) do Class.new(Service) do def fields [ - { name: 'token' }, - { name: 'api_token' }, - { name: 'key' }, - { name: 'api_key' }, - { name: 'password' }, - { name: 'password_field' }, - { name: 'safe_field' } + {name: "token"}, + {name: "api_token"}, + {name: "key"}, + {name: "api_key"}, + {name: "password"}, + {name: "password_field"}, + {name: "safe_field"}, ] end end @@ -331,22 +332,22 @@ describe Service do let(:service) do fake_service.new(properties: [ - { token: 'token-value' }, - { api_token: 'api_token-value' }, - { key: 'key-value' }, - { api_key: 'api_key-value' }, - { password: 'password-value' }, - { password_field: 'password_field-value' }, - { safe_field: 'safe_field-value' } + {token: "token-value"}, + {api_token: "api_token-value"}, + {key: "key-value"}, + {api_key: "api_key-value"}, + {password: "password-value"}, + {password_field: "password_field-value"}, + {safe_field: "safe_field-value"}, ]) end - it 'filters out sensitive fields' do - expect(service.api_field_names).to eq(['safe_field']) + it "filters out sensitive fields" do + expect(service.api_field_names).to eq(["safe_field"]) end end - context 'logging' do + context "logging" do let(:project) { create(:project) } let(:service) { create(:service, project: project) } let(:test_message) { "test message" } @@ -356,20 +357,20 @@ describe Service do project_path: project.full_path, project_id: project.id, message: test_message, - additional_argument: 'some argument' + additional_argument: "some argument", } end - it 'logs info messages using json logger' do + it "logs info messages using json logger" do expect(Gitlab::JsonLogger).to receive(:info).with(arguments) - service.log_info(test_message, additional_argument: 'some argument') + service.log_info(test_message, additional_argument: "some argument") end - it 'logs error messages using json logger' do + it "logs error messages using json logger" do expect(Gitlab::JsonLogger).to receive(:error).with(arguments) - service.log_error(test_message, additional_argument: 'some argument') + service.log_error(test_message, additional_argument: "some argument") end end end |