diff options
author | Reuben Pereira <rpereira@gitlab.com> | 2019-03-01 14:51:54 +0000 |
---|---|---|
committer | Sean McGivern <sean@gitlab.com> | 2019-03-01 14:51:54 +0000 |
commit | 43e713eb41117138c13ee4b9279321ca4331a302 (patch) | |
tree | 1f2047b2ba5279fdad38b0da18db32ba350311d8 /spec/models/error_tracking | |
parent | 4471ab81c8484d9942183bd8114a757b8630b8ec (diff) | |
download | gitlab-ce-43e713eb41117138c13ee4b9279321ca4331a302.tar.gz |
Refactor model and spec
- Move some specs into contexts
- Let get_slugs method take a parameter and return a specific slug.
- Add rescues when using Addressable::URI.
Diffstat (limited to 'spec/models/error_tracking')
-rw-r--r-- | spec/models/error_tracking/project_error_tracking_setting_spec.rb | 35 |
1 files changed, 33 insertions, 2 deletions
diff --git a/spec/models/error_tracking/project_error_tracking_setting_spec.rb b/spec/models/error_tracking/project_error_tracking_setting_spec.rb index 076ccc96041..cbde13a2c7a 100644 --- a/spec/models/error_tracking/project_error_tracking_setting_spec.rb +++ b/spec/models/error_tracking/project_error_tracking_setting_spec.rb @@ -62,11 +62,32 @@ describe ErrorTracking::ProjectErrorTrackingSetting do end context 'URL path' do - it 'fails validation with wrong path' do + it 'fails validation without api/0/projects' do subject.api_url = 'http://gitlab.com/project1/something' expect(subject).not_to be_valid - expect(subject.errors.messages[:api_url]).to include('path needs to start with /api/0/projects') + expect(subject.errors.messages[:api_url]).to include('is invalid') + end + + it 'fails validation without org and project slugs' do + subject.api_url = 'http://gitlab.com/api/0/projects/' + + expect(subject).not_to be_valid + expect(subject.errors.messages[:project]).to include('is a required field') + end + + it 'fails validation when api_url has extra parts' do + subject.api_url = 'http://gitlab.com/api/0/projects/org/proj/something' + + expect(subject).not_to be_valid + expect(subject.errors.messages[:api_url]).to include("is invalid") + end + + it 'fails validation when api_url has less parts' do + subject.api_url = 'http://gitlab.com/api/0/projects/org' + + expect(subject).not_to be_valid + expect(subject.errors.messages[:api_url]).to include("is invalid") end it 'passes validation with correct path' do @@ -275,6 +296,16 @@ describe ErrorTracking::ProjectErrorTrackingSetting do expect(api_url).to eq(':::') end + + it 'returns nil when api_host is blank' do + api_url = described_class.build_api_url_from( + api_host: '', + organization_slug: 'org-slug', + project_slug: 'proj-slug' + ) + + expect(api_url).to be_nil + end end describe '#api_host' do |