summaryrefslogtreecommitdiff
path: root/spec/models/service_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/models/service_spec.rb')
-rw-r--r--spec/models/service_spec.rb171
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