jira-ruby 1.2.0 → 2.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -5
 - data/.gitignore +3 -0
 - data/.travis.yml +5 -3
 - data/Gemfile +7 -1
 - data/Guardfile +1 -1
 - data/README.md +452 -0
 - data/Rakefile +6 -7
 - data/example.rb +23 -1
 - data/http-basic-example.rb +13 -12
 - data/jira-ruby.gemspec +13 -13
 - data/lib/jira/base.rb +53 -52
 - data/lib/jira/base_factory.rb +3 -6
 - data/lib/jira/client.rb +127 -30
 - data/lib/jira/has_many_proxy.rb +0 -1
 - data/lib/jira/http_client.rb +54 -16
 - data/lib/jira/http_error.rb +3 -5
 - data/lib/jira/jwt_client.rb +67 -0
 - data/lib/jira/oauth_client.rb +47 -17
 - data/lib/jira/request_client.rb +16 -5
 - data/lib/jira/resource/agile.rb +34 -9
 - data/lib/jira/resource/applinks.rb +5 -8
 - data/lib/jira/resource/attachment.rb +41 -3
 - data/lib/jira/resource/board.rb +91 -0
 - data/lib/jira/resource/board_configuration.rb +9 -0
 - data/lib/jira/resource/comment.rb +0 -2
 - data/lib/jira/resource/component.rb +1 -3
 - data/lib/jira/resource/createmeta.rb +12 -14
 - data/lib/jira/resource/field.rb +22 -22
 - data/lib/jira/resource/filter.rb +2 -2
 - data/lib/jira/resource/issue.rb +69 -38
 - data/lib/jira/resource/issue_picker_suggestions.rb +24 -0
 - data/lib/jira/resource/issue_picker_suggestions_issue.rb +10 -0
 - data/lib/jira/resource/issuelink.rb +3 -5
 - data/lib/jira/resource/issuelinktype.rb +0 -1
 - data/lib/jira/resource/issuetype.rb +1 -3
 - data/lib/jira/resource/priority.rb +1 -3
 - data/lib/jira/resource/project.rb +5 -7
 - data/lib/jira/resource/rapidview.rb +28 -7
 - data/lib/jira/resource/remotelink.rb +1 -4
 - data/lib/jira/resource/resolution.rb +2 -4
 - data/lib/jira/resource/serverinfo.rb +1 -2
 - data/lib/jira/resource/sprint.rb +86 -17
 - data/lib/jira/resource/sprint_report.rb +8 -0
 - data/lib/jira/resource/status.rb +1 -3
 - data/lib/jira/resource/suggested_issue.rb +9 -0
 - data/lib/jira/resource/transition.rb +2 -6
 - data/lib/jira/resource/user.rb +12 -2
 - data/lib/jira/resource/version.rb +1 -3
 - data/lib/jira/resource/watcher.rb +35 -0
 - data/lib/jira/resource/webhook.rb +3 -6
 - data/lib/jira/resource/worklog.rb +3 -5
 - data/lib/jira/version.rb +1 -1
 - data/lib/jira-ruby.rb +12 -2
 - data/lib/tasks/generate.rake +4 -4
 - data/spec/integration/attachment_spec.rb +17 -8
 - data/spec/integration/comment_spec.rb +31 -34
 - data/spec/integration/component_spec.rb +21 -24
 - data/spec/integration/field_spec.rb +15 -18
 - data/spec/integration/issue_spec.rb +45 -46
 - data/spec/integration/issuelinktype_spec.rb +8 -11
 - data/spec/integration/issuetype_spec.rb +5 -7
 - data/spec/integration/priority_spec.rb +5 -8
 - data/spec/integration/project_spec.rb +13 -20
 - data/spec/integration/rapidview_spec.rb +17 -10
 - data/spec/integration/resolution_spec.rb +7 -10
 - data/spec/integration/status_spec.rb +5 -8
 - data/spec/integration/transition_spec.rb +17 -20
 - data/spec/integration/user_spec.rb +24 -8
 - data/spec/integration/version_spec.rb +21 -25
 - data/spec/integration/watcher_spec.rb +62 -0
 - data/spec/integration/webhook.rb +8 -17
 - data/spec/integration/worklog_spec.rb +30 -34
 - data/spec/jira/base_factory_spec.rb +11 -12
 - data/spec/jira/base_spec.rb +216 -229
 - data/spec/jira/client_spec.rb +227 -159
 - data/spec/jira/has_many_proxy_spec.rb +11 -12
 - data/spec/jira/http_client_spec.rb +254 -31
 - data/spec/jira/http_error_spec.rb +7 -9
 - data/spec/jira/jwt_uri_builder_spec.rb +59 -0
 - data/spec/jira/oauth_client_spec.rb +110 -39
 - data/spec/jira/request_client_spec.rb +36 -9
 - data/spec/jira/resource/agile_spec.rb +135 -0
 - data/spec/jira/resource/attachment_spec.rb +127 -9
 - data/spec/jira/resource/board_spec.rb +224 -0
 - data/spec/jira/resource/createmeta_spec.rb +29 -32
 - data/spec/jira/resource/field_spec.rb +42 -48
 - data/spec/jira/resource/filter_spec.rb +40 -40
 - data/spec/jira/resource/issue_picker_suggestions_spec.rb +79 -0
 - data/spec/jira/resource/issue_spec.rb +88 -85
 - data/spec/jira/resource/issuelink_spec.rb +1 -1
 - data/spec/jira/resource/jira_picker_suggestions_issue_spec.rb +18 -0
 - data/spec/jira/resource/project_factory_spec.rb +2 -4
 - data/spec/jira/resource/project_spec.rb +33 -33
 - data/spec/jira/resource/sprint_spec.rb +90 -0
 - data/spec/jira/resource/user_factory_spec.rb +6 -8
 - data/spec/jira/resource/worklog_spec.rb +9 -11
 - data/spec/mock_responses/board/1.json +33 -0
 - data/spec/mock_responses/board/1_issues.json +62 -0
 - data/spec/mock_responses/empty_issues.json +8 -0
 - data/spec/mock_responses/issue/10002/watchers.json +13 -0
 - data/spec/mock_responses/issue.json +1 -1
 - data/spec/mock_responses/sprint/1_issues.json +125 -0
 - data/spec/spec_helper.rb +8 -9
 - data/spec/support/clients_helper.rb +4 -4
 - data/spec/support/shared_examples/integration.rb +60 -77
 - metadata +115 -55
 - data/.ruby-version +0 -1
 - data/README.rdoc +0 -333
 - /data/spec/mock_responses/{attachment → issue/10002/attachments}/10000.json +0 -0
 
| 
         @@ -1,94 +1,93 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            require 'spec_helper'
         
     | 
| 
       2 
2 
     | 
    
         | 
| 
       3 
3 
     | 
    
         
             
            describe JIRA::Resource::Issue do
         
     | 
| 
       4 
     | 
    
         
            -
             
     | 
| 
       5 
4 
     | 
    
         
             
              with_each_client do |site_url, client|
         
     | 
| 
       6 
5 
     | 
    
         
             
                let(:client) { client }
         
     | 
| 
       7 
6 
     | 
    
         
             
                let(:site_url) { site_url }
         
     | 
| 
       8 
7 
     | 
    
         | 
| 
       9 
     | 
    
         
            -
             
     | 
| 
       10 
     | 
    
         
            -
                let(:key) { "10002" }
         
     | 
| 
      
 8 
     | 
    
         
            +
                let(:key) { '10002' }
         
     | 
| 
       11 
9 
     | 
    
         | 
| 
       12 
10 
     | 
    
         
             
                let(:expected_attributes) do
         
     | 
| 
       13 
11 
     | 
    
         
             
                  {
         
     | 
| 
       14 
     | 
    
         
            -
                    'self'   =>  
     | 
| 
       15 
     | 
    
         
            -
                    'key'    =>  
     | 
| 
       16 
     | 
    
         
            -
                    'expand' =>  
     | 
| 
      
 12 
     | 
    
         
            +
                    'self'   => 'http://localhost:2990/jira/rest/api/2/issue/10002',
         
     | 
| 
      
 13 
     | 
    
         
            +
                    'key'    => 'SAMPLEPROJECT-1',
         
     | 
| 
      
 14 
     | 
    
         
            +
                    'expand' => 'renderedFields,names,schema,transitions,editmeta,changelog'
         
     | 
| 
       17 
15 
     | 
    
         
             
                  }
         
     | 
| 
       18 
16 
     | 
    
         
             
                end
         
     | 
| 
       19 
17 
     | 
    
         | 
| 
       20 
     | 
    
         
            -
                let(:attributes_for_post)  
     | 
| 
      
 18 
     | 
    
         
            +
                let(:attributes_for_post) do
         
     | 
| 
       21 
19 
     | 
    
         
             
                  { 'foo' => 'bar' }
         
     | 
| 
       22 
     | 
    
         
            -
                 
     | 
| 
       23 
     | 
    
         
            -
                let(:expected_attributes_from_post)  
     | 
| 
       24 
     | 
    
         
            -
                  {  
     | 
| 
       25 
     | 
    
         
            -
                 
     | 
| 
      
 20 
     | 
    
         
            +
                end
         
     | 
| 
      
 21 
     | 
    
         
            +
                let(:expected_attributes_from_post) do
         
     | 
| 
      
 22 
     | 
    
         
            +
                  { 'id' => '10005', 'key' => 'SAMPLEPROJECT-4' }
         
     | 
| 
      
 23 
     | 
    
         
            +
                end
         
     | 
| 
       26 
24 
     | 
    
         | 
| 
       27 
     | 
    
         
            -
                let(:attributes_for_put)  
     | 
| 
      
 25 
     | 
    
         
            +
                let(:attributes_for_put) do
         
     | 
| 
       28 
26 
     | 
    
         
             
                  { 'foo' => 'bar' }
         
     | 
| 
       29 
     | 
    
         
            -
                 
     | 
| 
       30 
     | 
    
         
            -
                let(:expected_attributes_from_put)  
     | 
| 
      
 27 
     | 
    
         
            +
                end
         
     | 
| 
      
 28 
     | 
    
         
            +
                let(:expected_attributes_from_put) do
         
     | 
| 
       31 
29 
     | 
    
         
             
                  { 'foo' => 'bar' }
         
     | 
| 
       32 
     | 
    
         
            -
                 
     | 
| 
      
 30 
     | 
    
         
            +
                end
         
     | 
| 
       33 
31 
     | 
    
         
             
                let(:expected_collection_length) { 11 }
         
     | 
| 
       34 
32 
     | 
    
         | 
| 
       35 
     | 
    
         
            -
                it_should_behave_like  
     | 
| 
       36 
     | 
    
         
            -
                it_should_behave_like  
     | 
| 
       37 
     | 
    
         
            -
                describe  
     | 
| 
      
 33 
     | 
    
         
            +
                it_should_behave_like 'a resource'
         
     | 
| 
      
 34 
     | 
    
         
            +
                it_should_behave_like 'a resource with a singular GET endpoint'
         
     | 
| 
      
 35 
     | 
    
         
            +
                describe 'GET all issues' do # JIRA::Resource::Issue.all uses the search endpoint
         
     | 
| 
       38 
36 
     | 
    
         
             
                  let(:client) { client }
         
     | 
| 
       39 
37 
     | 
    
         
             
                  let(:site_url) { site_url }
         
     | 
| 
       40 
38 
     | 
    
         | 
| 
       41 
     | 
    
         
            -
                  let(:expected_attributes)  
     | 
| 
      
 39 
     | 
    
         
            +
                  let(:expected_attributes) do
         
     | 
| 
       42 
40 
     | 
    
         
             
                    {
         
     | 
| 
       43 
     | 
    
         
            -
                       
     | 
| 
       44 
     | 
    
         
            -
                       
     | 
| 
       45 
     | 
    
         
            -
                       
     | 
| 
      
 41 
     | 
    
         
            +
                      'id' => '10014',
         
     | 
| 
      
 42 
     | 
    
         
            +
                      'self' => 'http://localhost:2990/jira/rest/api/2/issue/10014',
         
     | 
| 
      
 43 
     | 
    
         
            +
                      'key' => 'SAMPLEPROJECT-13'
         
     | 
| 
       46 
44 
     | 
    
         
             
                    }
         
     | 
| 
       47 
     | 
    
         
            -
                   
     | 
| 
      
 45 
     | 
    
         
            +
                  end
         
     | 
| 
       48 
46 
     | 
    
         
             
                  before(:each) do
         
     | 
| 
       49 
     | 
    
         
            -
                    stub_request(:get, site_url +  
     | 
| 
       50 
     | 
    
         
            -
             
     | 
| 
      
 47 
     | 
    
         
            +
                    stub_request(:get, site_url + '/jira/rest/api/2/search?expand=transitions.fields&maxResults=1000&startAt=0')
         
     | 
| 
      
 48 
     | 
    
         
            +
                      .to_return(status: 200, body: get_mock_response('issue.json'))
         
     | 
| 
      
 49 
     | 
    
         
            +
             
     | 
| 
      
 50 
     | 
    
         
            +
                    stub_request(:get, site_url + '/jira/rest/api/2/search?expand=transitions.fields&maxResults=1000&startAt=11')
         
     | 
| 
      
 51 
     | 
    
         
            +
                      .to_return(status: 200, body: get_mock_response('empty_issues.json'))
         
     | 
| 
       51 
52 
     | 
    
         
             
                  end
         
     | 
| 
       52 
     | 
    
         
            -
                  it_should_behave_like  
     | 
| 
      
 53 
     | 
    
         
            +
                  it_should_behave_like 'a resource with a collection GET endpoint'
         
     | 
| 
       53 
54 
     | 
    
         
             
                end
         
     | 
| 
       54 
     | 
    
         
            -
                it_should_behave_like  
     | 
| 
       55 
     | 
    
         
            -
                it_should_behave_like  
     | 
| 
       56 
     | 
    
         
            -
                it_should_behave_like  
     | 
| 
       57 
     | 
    
         
            -
                it_should_behave_like  
     | 
| 
      
 55 
     | 
    
         
            +
                it_should_behave_like 'a resource with a DELETE endpoint'
         
     | 
| 
      
 56 
     | 
    
         
            +
                it_should_behave_like 'a resource with a POST endpoint'
         
     | 
| 
      
 57 
     | 
    
         
            +
                it_should_behave_like 'a resource with a PUT endpoint'
         
     | 
| 
      
 58 
     | 
    
         
            +
                it_should_behave_like 'a resource with a PUT endpoint that rejects invalid fields'
         
     | 
| 
       58 
59 
     | 
    
         | 
| 
       59 
     | 
    
         
            -
                describe  
     | 
| 
      
 60 
     | 
    
         
            +
                describe 'errors' do
         
     | 
| 
       60 
61 
     | 
    
         
             
                  before(:each) do
         
     | 
| 
       61 
62 
     | 
    
         
             
                    stub_request(:get,
         
     | 
| 
       62 
     | 
    
         
            -
             
     | 
| 
       63 
     | 
    
         
            -
             
     | 
| 
       64 
     | 
    
         
            -
                    stub_request(:put, site_url +  
     | 
| 
       65 
     | 
    
         
            -
             
     | 
| 
       66 
     | 
    
         
            -
             
     | 
| 
      
 63 
     | 
    
         
            +
                                 site_url + '/jira/rest/api/2/issue/10002')
         
     | 
| 
      
 64 
     | 
    
         
            +
                      .to_return(status: 200, body: get_mock_response('issue/10002.json'))
         
     | 
| 
      
 65 
     | 
    
         
            +
                    stub_request(:put, site_url + '/jira/rest/api/2/issue/10002')
         
     | 
| 
      
 66 
     | 
    
         
            +
                      .with(body: '{"missing":"fields and update"}')
         
     | 
| 
      
 67 
     | 
    
         
            +
                      .to_return(status: 400, body: get_mock_response('issue/10002.put.missing_field_update.json'))
         
     | 
| 
       67 
68 
     | 
    
         
             
                  end
         
     | 
| 
       68 
69 
     | 
    
         | 
| 
       69 
     | 
    
         
            -
                  it  
     | 
| 
      
 70 
     | 
    
         
            +
                  it 'fails to save when fields and update are missing' do
         
     | 
| 
       70 
71 
     | 
    
         
             
                    subject = client.Issue.build('id' => '10002')
         
     | 
| 
       71 
72 
     | 
    
         
             
                    subject.fetch
         
     | 
| 
       72 
73 
     | 
    
         
             
                    expect(subject.save('missing' => 'fields and update')).to be_falsey
         
     | 
| 
       73 
74 
     | 
    
         
             
                  end
         
     | 
| 
       74 
     | 
    
         
            -
             
     | 
| 
       75 
75 
     | 
    
         
             
                end
         
     | 
| 
       76 
76 
     | 
    
         | 
| 
       77 
     | 
    
         
            -
                describe  
     | 
| 
      
 77 
     | 
    
         
            +
                describe 'GET jql issues' do # JIRA::Resource::Issue.jql uses the search endpoint
         
     | 
| 
       78 
78 
     | 
    
         
             
                  jql_query_string = "PROJECT = 'SAMPLEPROJECT'"
         
     | 
| 
       79 
79 
     | 
    
         
             
                  let(:client) { client }
         
     | 
| 
       80 
80 
     | 
    
         
             
                  let(:site_url) { site_url }
         
     | 
| 
       81 
81 
     | 
    
         
             
                  let(:jql_query_string) { jql_query_string }
         
     | 
| 
       82 
82 
     | 
    
         | 
| 
       83 
     | 
    
         
            -
                  let(:expected_attributes)  
     | 
| 
      
 83 
     | 
    
         
            +
                  let(:expected_attributes) do
         
     | 
| 
       84 
84 
     | 
    
         
             
                    {
         
     | 
| 
       85 
     | 
    
         
            -
                       
     | 
| 
       86 
     | 
    
         
            -
                       
     | 
| 
       87 
     | 
    
         
            -
                       
     | 
| 
      
 85 
     | 
    
         
            +
                      'id' => '10014',
         
     | 
| 
      
 86 
     | 
    
         
            +
                      'self' => 'http://localhost:2990/jira/rest/api/2/issue/10014',
         
     | 
| 
      
 87 
     | 
    
         
            +
                      'key' => 'SAMPLEPROJECT-13'
         
     | 
| 
       88 
88 
     | 
    
         
             
                    }
         
     | 
| 
       89 
     | 
    
         
            -
                   
     | 
| 
       90 
     | 
    
         
            -
                  it_should_behave_like  
     | 
| 
      
 89 
     | 
    
         
            +
                  end
         
     | 
| 
      
 90 
     | 
    
         
            +
                  it_should_behave_like 'a resource with JQL inputs and a collection GET endpoint'
         
     | 
| 
       91 
91 
     | 
    
         
             
                end
         
     | 
| 
       92 
     | 
    
         
            -
             
     | 
| 
       93 
92 
     | 
    
         
             
              end
         
     | 
| 
       94 
93 
     | 
    
         
             
            end
         
     | 
| 
         @@ -1,29 +1,26 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            require 'spec_helper'
         
     | 
| 
       2 
2 
     | 
    
         | 
| 
       3 
3 
     | 
    
         
             
            describe JIRA::Resource::Issuelinktype do
         
     | 
| 
       4 
     | 
    
         
            -
             
     | 
| 
       5 
4 
     | 
    
         
             
              with_each_client do |site_url, client|
         
     | 
| 
       6 
5 
     | 
    
         
             
                let(:client) { client }
         
     | 
| 
       7 
6 
     | 
    
         
             
                let(:site_url) { site_url }
         
     | 
| 
       8 
7 
     | 
    
         | 
| 
       9 
     | 
    
         
            -
             
     | 
| 
       10 
     | 
    
         
            -
                let(:key) { "10000" }
         
     | 
| 
      
 8 
     | 
    
         
            +
                let(:key) { '10000' }
         
     | 
| 
       11 
9 
     | 
    
         | 
| 
       12 
10 
     | 
    
         
             
                let(:expected_attributes) do
         
     | 
| 
       13 
11 
     | 
    
         
             
                  {
         
     | 
| 
       14 
12 
     | 
    
         
             
                    'id' => key,
         
     | 
| 
       15 
     | 
    
         
            -
                     
     | 
| 
       16 
     | 
    
         
            -
                     
     | 
| 
       17 
     | 
    
         
            -
                     
     | 
| 
       18 
     | 
    
         
            -
                     
     | 
| 
      
 13 
     | 
    
         
            +
                    'self' => 'http://localhost:2990/jira/rest/api/2/issueLinkType/10000',
         
     | 
| 
      
 14 
     | 
    
         
            +
                    'name' => 'Blocks',
         
     | 
| 
      
 15 
     | 
    
         
            +
                    'inward' => 'is blocked by',
         
     | 
| 
      
 16 
     | 
    
         
            +
                    'outward' => 'blocks'
         
     | 
| 
       19 
17 
     | 
    
         
             
                  }
         
     | 
| 
       20 
18 
     | 
    
         
             
                end
         
     | 
| 
       21 
19 
     | 
    
         | 
| 
       22 
20 
     | 
    
         
             
                let(:expected_collection_length) { 3 }
         
     | 
| 
       23 
21 
     | 
    
         | 
| 
       24 
     | 
    
         
            -
                it_should_behave_like  
     | 
| 
       25 
     | 
    
         
            -
                it_should_behave_like  
     | 
| 
       26 
     | 
    
         
            -
                it_should_behave_like  
     | 
| 
       27 
     | 
    
         
            -
             
     | 
| 
      
 22 
     | 
    
         
            +
                it_should_behave_like 'a resource'
         
     | 
| 
      
 23 
     | 
    
         
            +
                it_should_behave_like 'a resource with a collection GET endpoint'
         
     | 
| 
      
 24 
     | 
    
         
            +
                it_should_behave_like 'a resource with a singular GET endpoint'
         
     | 
| 
       28 
25 
     | 
    
         
             
              end
         
     | 
| 
       29 
26 
     | 
    
         
             
            end
         
     | 
| 
         @@ -1,16 +1,15 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            require 'spec_helper'
         
     | 
| 
       2 
2 
     | 
    
         | 
| 
       3 
3 
     | 
    
         
             
            describe JIRA::Resource::Issuetype do
         
     | 
| 
       4 
     | 
    
         
            -
             
     | 
| 
       5 
4 
     | 
    
         
             
              with_each_client do |site_url, client|
         
     | 
| 
       6 
5 
     | 
    
         
             
                let(:client) { client }
         
     | 
| 
       7 
6 
     | 
    
         
             
                let(:site_url) { site_url }
         
     | 
| 
       8 
7 
     | 
    
         | 
| 
       9 
     | 
    
         
            -
                let(:key) {  
     | 
| 
      
 8 
     | 
    
         
            +
                let(:key) { '5' }
         
     | 
| 
       10 
9 
     | 
    
         | 
| 
       11 
10 
     | 
    
         
             
                let(:expected_attributes) do
         
     | 
| 
       12 
11 
     | 
    
         
             
                  {
         
     | 
| 
       13 
     | 
    
         
            -
                    'self' =>  
     | 
| 
      
 12 
     | 
    
         
            +
                    'self' => 'http://localhost:2990/jira/rest/api/2/issuetype/5',
         
     | 
| 
       14 
13 
     | 
    
         
             
                    'id' => key,
         
     | 
| 
       15 
14 
     | 
    
         
             
                    'name' => 'Sub-task'
         
     | 
| 
       16 
15 
     | 
    
         
             
                  }
         
     | 
| 
         @@ -18,9 +17,8 @@ describe JIRA::Resource::Issuetype do 
     | 
|
| 
       18 
17 
     | 
    
         | 
| 
       19 
18 
     | 
    
         
             
                let(:expected_collection_length) { 5 }
         
     | 
| 
       20 
19 
     | 
    
         | 
| 
       21 
     | 
    
         
            -
                it_should_behave_like  
     | 
| 
       22 
     | 
    
         
            -
                it_should_behave_like  
     | 
| 
       23 
     | 
    
         
            -
                it_should_behave_like  
     | 
| 
       24 
     | 
    
         
            -
             
     | 
| 
      
 20 
     | 
    
         
            +
                it_should_behave_like 'a resource'
         
     | 
| 
      
 21 
     | 
    
         
            +
                it_should_behave_like 'a resource with a collection GET endpoint'
         
     | 
| 
      
 22 
     | 
    
         
            +
                it_should_behave_like 'a resource with a singular GET endpoint'
         
     | 
| 
       25 
23 
     | 
    
         
             
              end
         
     | 
| 
       26 
24 
     | 
    
         
             
            end
         
     | 
| 
         @@ -1,17 +1,15 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            require 'spec_helper'
         
     | 
| 
       2 
2 
     | 
    
         | 
| 
       3 
3 
     | 
    
         
             
            describe JIRA::Resource::Priority do
         
     | 
| 
       4 
     | 
    
         
            -
             
     | 
| 
       5 
4 
     | 
    
         
             
              with_each_client do |site_url, client|
         
     | 
| 
       6 
5 
     | 
    
         
             
                let(:client) { client }
         
     | 
| 
       7 
6 
     | 
    
         
             
                let(:site_url) { site_url }
         
     | 
| 
       8 
7 
     | 
    
         | 
| 
       9 
     | 
    
         
            -
             
     | 
| 
       10 
     | 
    
         
            -
                let(:key) { "1" }
         
     | 
| 
      
 8 
     | 
    
         
            +
                let(:key) { '1' }
         
     | 
| 
       11 
9 
     | 
    
         | 
| 
       12 
10 
     | 
    
         
             
                let(:expected_attributes) do
         
     | 
| 
       13 
11 
     | 
    
         
             
                  {
         
     | 
| 
       14 
     | 
    
         
            -
                    'self' =>  
     | 
| 
      
 12 
     | 
    
         
            +
                    'self' => 'http://localhost:2990/jira/rest/api/2/priority/1',
         
     | 
| 
       15 
13 
     | 
    
         
             
                    'id' => key,
         
     | 
| 
       16 
14 
     | 
    
         
             
                    'name' => 'Blocker'
         
     | 
| 
       17 
15 
     | 
    
         
             
                  }
         
     | 
| 
         @@ -19,9 +17,8 @@ describe JIRA::Resource::Priority do 
     | 
|
| 
       19 
17 
     | 
    
         | 
| 
       20 
18 
     | 
    
         
             
                let(:expected_collection_length) { 5 }
         
     | 
| 
       21 
19 
     | 
    
         | 
| 
       22 
     | 
    
         
            -
                it_should_behave_like  
     | 
| 
       23 
     | 
    
         
            -
                it_should_behave_like  
     | 
| 
       24 
     | 
    
         
            -
                it_should_behave_like  
     | 
| 
       25 
     | 
    
         
            -
             
     | 
| 
      
 20 
     | 
    
         
            +
                it_should_behave_like 'a resource'
         
     | 
| 
      
 21 
     | 
    
         
            +
                it_should_behave_like 'a resource with a collection GET endpoint'
         
     | 
| 
      
 22 
     | 
    
         
            +
                it_should_behave_like 'a resource with a singular GET endpoint'
         
     | 
| 
       26 
23 
     | 
    
         
             
              end
         
     | 
| 
       27 
24 
     | 
    
         
             
            end
         
     | 
| 
         @@ -1,33 +1,30 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            require 'spec_helper'
         
     | 
| 
       2 
2 
     | 
    
         | 
| 
       3 
3 
     | 
    
         
             
            describe JIRA::Resource::Project do
         
     | 
| 
       4 
     | 
    
         
            -
             
     | 
| 
       5 
4 
     | 
    
         
             
              with_each_client do |site_url, client|
         
     | 
| 
       6 
5 
     | 
    
         
             
                let(:client) { client }
         
     | 
| 
       7 
6 
     | 
    
         
             
                let(:site_url) { site_url }
         
     | 
| 
       8 
7 
     | 
    
         | 
| 
       9 
     | 
    
         
            -
             
     | 
| 
       10 
     | 
    
         
            -
                let(:key) { "SAMPLEPROJECT" }
         
     | 
| 
      
 8 
     | 
    
         
            +
                let(:key) { 'SAMPLEPROJECT' }
         
     | 
| 
       11 
9 
     | 
    
         | 
| 
       12 
10 
     | 
    
         
             
                let(:expected_attributes) do
         
     | 
| 
       13 
11 
     | 
    
         
             
                  {
         
     | 
| 
       14 
     | 
    
         
            -
                    'self'   =>  
     | 
| 
      
 12 
     | 
    
         
            +
                    'self'   => 'http://localhost:2990/jira/rest/api/2/project/SAMPLEPROJECT',
         
     | 
| 
       15 
13 
     | 
    
         
             
                    'key'    => key,
         
     | 
| 
       16 
     | 
    
         
            -
                    'name'   =>  
     | 
| 
      
 14 
     | 
    
         
            +
                    'name'   => 'Sample Project for Developing RoR RESTful API'
         
     | 
| 
       17 
15 
     | 
    
         
             
                  }
         
     | 
| 
       18 
16 
     | 
    
         
             
                end
         
     | 
| 
       19 
17 
     | 
    
         | 
| 
       20 
18 
     | 
    
         
             
                let(:expected_collection_length) { 1 }
         
     | 
| 
       21 
19 
     | 
    
         | 
| 
       22 
     | 
    
         
            -
                it_should_behave_like  
     | 
| 
       23 
     | 
    
         
            -
                it_should_behave_like  
     | 
| 
       24 
     | 
    
         
            -
                it_should_behave_like  
     | 
| 
      
 20 
     | 
    
         
            +
                it_should_behave_like 'a resource'
         
     | 
| 
      
 21 
     | 
    
         
            +
                it_should_behave_like 'a resource with a collection GET endpoint'
         
     | 
| 
      
 22 
     | 
    
         
            +
                it_should_behave_like 'a resource with a singular GET endpoint'
         
     | 
| 
       25 
23 
     | 
    
         | 
| 
       26 
     | 
    
         
            -
                describe  
     | 
| 
       27 
     | 
    
         
            -
             
     | 
| 
       28 
     | 
    
         
            -
             
     | 
| 
       29 
     | 
    
         
            -
             
     | 
| 
       30 
     | 
    
         
            -
                      to_return(:status => 200, :body => get_mock_response('project/SAMPLEPROJECT.issues.json'))
         
     | 
| 
      
 24 
     | 
    
         
            +
                describe 'issues' do
         
     | 
| 
      
 25 
     | 
    
         
            +
                  it 'returns all the issues' do
         
     | 
| 
      
 26 
     | 
    
         
            +
                    stub_request(:get, site_url + '/jira/rest/api/2/search?jql=project="SAMPLEPROJECT"')
         
     | 
| 
      
 27 
     | 
    
         
            +
                      .to_return(status: 200, body: get_mock_response('project/SAMPLEPROJECT.issues.json'))
         
     | 
| 
       31 
28 
     | 
    
         
             
                    subject = client.Project.build('key' => key)
         
     | 
| 
       32 
29 
     | 
    
         
             
                    issues = subject.issues
         
     | 
| 
       33 
30 
     | 
    
         
             
                    expect(issues.length).to eq(11)
         
     | 
| 
         @@ -35,22 +32,18 @@ describe JIRA::Resource::Project do 
     | 
|
| 
       35 
32 
     | 
    
         
             
                      expect(issue.class).to eq(JIRA::Resource::Issue)
         
     | 
| 
       36 
33 
     | 
    
         
             
                      expect(issue.expanded?).to be_falsey
         
     | 
| 
       37 
34 
     | 
    
         
             
                    end
         
     | 
| 
       38 
     | 
    
         
            -
             
     | 
| 
       39 
35 
     | 
    
         
             
                  end
         
     | 
| 
       40 
     | 
    
         
            -
             
     | 
| 
       41 
36 
     | 
    
         
             
                end
         
     | 
| 
       42 
37 
     | 
    
         | 
| 
       43 
     | 
    
         
            -
                it  
     | 
| 
       44 
     | 
    
         
            -
             
     | 
| 
       45 
     | 
    
         
            -
             
     | 
| 
       46 
     | 
    
         
            -
                    to_return(:status => 200, :body => get_mock_response('project/SAMPLEPROJECT.json'))
         
     | 
| 
      
 38 
     | 
    
         
            +
                it 'returns a collection of components' do
         
     | 
| 
      
 39 
     | 
    
         
            +
                  stub_request(:get, site_url + described_class.singular_path(client, key))
         
     | 
| 
      
 40 
     | 
    
         
            +
                    .to_return(status: 200, body: get_mock_response('project/SAMPLEPROJECT.json'))
         
     | 
| 
       47 
41 
     | 
    
         | 
| 
       48 
42 
     | 
    
         
             
                  subject = client.Project.find(key)
         
     | 
| 
       49 
43 
     | 
    
         
             
                  expect(subject.components.length).to eq(2)
         
     | 
| 
       50 
44 
     | 
    
         
             
                  subject.components.each do |component|
         
     | 
| 
       51 
45 
     | 
    
         
             
                    expect(component.class).to eq(JIRA::Resource::Component)
         
     | 
| 
       52 
46 
     | 
    
         
             
                  end
         
     | 
| 
       53 
     | 
    
         
            -
             
     | 
| 
       54 
47 
     | 
    
         
             
                end
         
     | 
| 
       55 
48 
     | 
    
         
             
              end
         
     | 
| 
       56 
49 
     | 
    
         
             
            end
         
     | 
| 
         @@ -1,7 +1,6 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            require 'spec_helper'
         
     | 
| 
       2 
2 
     | 
    
         | 
| 
       3 
3 
     | 
    
         
             
            describe JIRA::Resource::RapidView do
         
     | 
| 
       4 
     | 
    
         
            -
             
     | 
| 
       5 
4 
     | 
    
         
             
              with_each_client do |site_url, client|
         
     | 
| 
       6 
5 
     | 
    
         
             
                let(:client) { client }
         
     | 
| 
       7 
6 
     | 
    
         
             
                let(:site_url) { site_url }
         
     | 
| 
         @@ -10,14 +9,14 @@ describe JIRA::Resource::RapidView do 
     | 
|
| 
       10 
9 
     | 
    
         | 
| 
       11 
10 
     | 
    
         
             
                let(:expected_collection_length) { 1 }
         
     | 
| 
       12 
11 
     | 
    
         | 
| 
       13 
     | 
    
         
            -
                let(:expected_attributes)  
     | 
| 
      
 12 
     | 
    
         
            +
                let(:expected_attributes) do
         
     | 
| 
       14 
13 
     | 
    
         
             
                  {
         
     | 
| 
       15 
14 
     | 
    
         
             
                    'id' => 1,
         
     | 
| 
       16 
15 
     | 
    
         
             
                    'name' => 'SAMPLEPROJECT',
         
     | 
| 
       17 
16 
     | 
    
         
             
                    'canEdit' => true,
         
     | 
| 
       18 
17 
     | 
    
         
             
                    'sprintSupportEnabled' => true
         
     | 
| 
       19 
18 
     | 
    
         
             
                  }
         
     | 
| 
       20 
     | 
    
         
            -
                 
     | 
| 
      
 19 
     | 
    
         
            +
                end
         
     | 
| 
       21 
20 
     | 
    
         | 
| 
       22 
21 
     | 
    
         
             
                it_should_behave_like 'a resource'
         
     | 
| 
       23 
22 
     | 
    
         
             
                # TODO@Anton: Add json file
         
     | 
| 
         @@ -28,8 +27,8 @@ describe JIRA::Resource::RapidView do 
     | 
|
| 
       28 
27 
     | 
    
         
             
                  let(:site_url) { site_url }
         
     | 
| 
       29 
28 
     | 
    
         | 
| 
       30 
29 
     | 
    
         
             
                  before(:each) do
         
     | 
| 
       31 
     | 
    
         
            -
                    stub_request(:get, site_url + '/jira/rest/greenhopper/1.0/rapidview') 
     | 
| 
       32 
     | 
    
         
            -
             
     | 
| 
      
 30 
     | 
    
         
            +
                    stub_request(:get, site_url + '/jira/rest/greenhopper/1.0/rapidview')
         
     | 
| 
      
 31 
     | 
    
         
            +
                      .to_return(status: 200, body: get_mock_response('rapidview.json'))
         
     | 
| 
       33 
32 
     | 
    
         
             
                  end
         
     | 
| 
       34 
33 
     | 
    
         
             
                  it_should_behave_like 'a resource with a collection GET endpoint'
         
     | 
| 
       35 
34 
     | 
    
         
             
                end
         
     | 
| 
         @@ -41,16 +40,24 @@ describe JIRA::Resource::RapidView do 
     | 
|
| 
       41 
40 
     | 
    
         
             
                      site_url +
         
     | 
| 
       42 
41 
     | 
    
         
             
                      '/jira/rest/greenhopper/1.0/xboard/plan/backlog/data?rapidViewId=1'
         
     | 
| 
       43 
42 
     | 
    
         
             
                    ).to_return(
         
     | 
| 
       44 
     | 
    
         
            -
                      : 
     | 
| 
       45 
     | 
    
         
            -
                      : 
     | 
| 
      
 43 
     | 
    
         
            +
                      status: 200,
         
     | 
| 
      
 44 
     | 
    
         
            +
                      body: get_mock_response('rapidview/SAMPLEPROJECT.issues.json')
         
     | 
| 
      
 45 
     | 
    
         
            +
                    )
         
     | 
| 
      
 46 
     | 
    
         
            +
             
     | 
| 
      
 47 
     | 
    
         
            +
                    stub_request(
         
     | 
| 
      
 48 
     | 
    
         
            +
                      :get,
         
     | 
| 
      
 49 
     | 
    
         
            +
                      site_url + '/jira/rest/api/2/search?jql=id IN(10001, 10000)'
         
     | 
| 
      
 50 
     | 
    
         
            +
                    ).to_return(
         
     | 
| 
      
 51 
     | 
    
         
            +
                      status: 200,
         
     | 
| 
      
 52 
     | 
    
         
            +
                      body: get_mock_response('rapidview/SAMPLEPROJECT.issues.full.json')
         
     | 
| 
       46 
53 
     | 
    
         
             
                    )
         
     | 
| 
       47 
54 
     | 
    
         | 
| 
       48 
55 
     | 
    
         
             
                    stub_request(
         
     | 
| 
       49 
56 
     | 
    
         
             
                      :get,
         
     | 
| 
       50 
     | 
    
         
            -
                      site_url + '/jira/rest/api/2/search?jql=id IN(10000, 10001)'
         
     | 
| 
      
 57 
     | 
    
         
            +
                      site_url + '/jira/rest/api/2/search?jql=id IN(10000, 10001) AND sprint IS NOT EMPTY'
         
     | 
| 
       51 
58 
     | 
    
         
             
                    ).to_return(
         
     | 
| 
       52 
     | 
    
         
            -
                      : 
     | 
| 
       53 
     | 
    
         
            -
                      : 
     | 
| 
      
 59 
     | 
    
         
            +
                      status: 200,
         
     | 
| 
      
 60 
     | 
    
         
            +
                      body: get_mock_response('rapidview/SAMPLEPROJECT.issues.full.json')
         
     | 
| 
       54 
61 
     | 
    
         
             
                    )
         
     | 
| 
       55 
62 
     | 
    
         | 
| 
       56 
63 
     | 
    
         
             
                    subject = client.RapidView.build('id' => 1)
         
     | 
| 
         @@ -1,29 +1,26 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            require 'spec_helper'
         
     | 
| 
       2 
2 
     | 
    
         | 
| 
       3 
3 
     | 
    
         
             
            describe JIRA::Resource::Resolution do
         
     | 
| 
       4 
     | 
    
         
            -
             
     | 
| 
       5 
4 
     | 
    
         
             
              with_each_client do |site_url, client|
         
     | 
| 
       6 
5 
     | 
    
         
             
                let(:client) { client }
         
     | 
| 
       7 
6 
     | 
    
         
             
                let(:site_url) { site_url }
         
     | 
| 
       8 
7 
     | 
    
         | 
| 
       9 
     | 
    
         
            -
             
     | 
| 
       10 
     | 
    
         
            -
                let(:key) { "1" }
         
     | 
| 
      
 8 
     | 
    
         
            +
                let(:key) { '1' }
         
     | 
| 
       11 
9 
     | 
    
         | 
| 
       12 
10 
     | 
    
         
             
                let(:expected_attributes) do
         
     | 
| 
       13 
11 
     | 
    
         
             
                  {
         
     | 
| 
       14 
     | 
    
         
            -
                    'self' =>  
     | 
| 
      
 12 
     | 
    
         
            +
                    'self' => 'http://www.example.com/jira/rest/api/2/resolution/1',
         
     | 
| 
       15 
13 
     | 
    
         
             
                    'id' => key,
         
     | 
| 
       16 
14 
     | 
    
         
             
                    'name' => 'Fixed',
         
     | 
| 
       17 
     | 
    
         
            -
                    'description' => 'A fix for this issue is checked into the tree and tested.', 
     | 
| 
      
 15 
     | 
    
         
            +
                    'description' => 'A fix for this issue is checked into the tree and tested.',
         
     | 
| 
       18 
16 
     | 
    
         
             
                    'iconUrl' => 'http://www.example.com/jira/images/icons/status_resolved.gif'
         
     | 
| 
       19 
17 
     | 
    
         
             
                  }
         
     | 
| 
       20 
18 
     | 
    
         
             
                end
         
     | 
| 
       21 
19 
     | 
    
         | 
| 
       22 
20 
     | 
    
         
             
                let(:expected_collection_length) { 2 }
         
     | 
| 
       23 
21 
     | 
    
         | 
| 
       24 
     | 
    
         
            -
                it_should_behave_like  
     | 
| 
       25 
     | 
    
         
            -
                it_should_behave_like  
     | 
| 
       26 
     | 
    
         
            -
                it_should_behave_like  
     | 
| 
       27 
     | 
    
         
            -
             
     | 
| 
      
 22 
     | 
    
         
            +
                it_should_behave_like 'a resource'
         
     | 
| 
      
 23 
     | 
    
         
            +
                it_should_behave_like 'a resource with a collection GET endpoint'
         
     | 
| 
      
 24 
     | 
    
         
            +
                it_should_behave_like 'a resource with a singular GET endpoint'
         
     | 
| 
       28 
25 
     | 
    
         
             
              end
         
     | 
| 
       29 
     | 
    
         
            -
            end
         
     | 
| 
      
 26 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -1,17 +1,15 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            require 'spec_helper'
         
     | 
| 
       2 
2 
     | 
    
         | 
| 
       3 
3 
     | 
    
         
             
            describe JIRA::Resource::Status do
         
     | 
| 
       4 
     | 
    
         
            -
             
     | 
| 
       5 
4 
     | 
    
         
             
              with_each_client do |site_url, client|
         
     | 
| 
       6 
5 
     | 
    
         
             
                let(:client) { client }
         
     | 
| 
       7 
6 
     | 
    
         
             
                let(:site_url) { site_url }
         
     | 
| 
       8 
7 
     | 
    
         | 
| 
       9 
     | 
    
         
            -
             
     | 
| 
       10 
     | 
    
         
            -
                let(:key) { "1" }
         
     | 
| 
      
 8 
     | 
    
         
            +
                let(:key) { '1' }
         
     | 
| 
       11 
9 
     | 
    
         | 
| 
       12 
10 
     | 
    
         
             
                let(:expected_attributes) do
         
     | 
| 
       13 
11 
     | 
    
         
             
                  {
         
     | 
| 
       14 
     | 
    
         
            -
                    'self' =>  
     | 
| 
      
 12 
     | 
    
         
            +
                    'self' => 'http://localhost:2990/jira/rest/api/2/status/1',
         
     | 
| 
       15 
13 
     | 
    
         
             
                    'id' => key,
         
     | 
| 
       16 
14 
     | 
    
         
             
                    'name' => 'Open'
         
     | 
| 
       17 
15 
     | 
    
         
             
                  }
         
     | 
| 
         @@ -19,9 +17,8 @@ describe JIRA::Resource::Status do 
     | 
|
| 
       19 
17 
     | 
    
         | 
| 
       20 
18 
     | 
    
         
             
                let(:expected_collection_length) { 5 }
         
     | 
| 
       21 
19 
     | 
    
         | 
| 
       22 
     | 
    
         
            -
                it_should_behave_like  
     | 
| 
       23 
     | 
    
         
            -
                it_should_behave_like  
     | 
| 
       24 
     | 
    
         
            -
                it_should_behave_like  
     | 
| 
       25 
     | 
    
         
            -
             
     | 
| 
      
 20 
     | 
    
         
            +
                it_should_behave_like 'a resource'
         
     | 
| 
      
 21 
     | 
    
         
            +
                it_should_behave_like 'a resource with a collection GET endpoint'
         
     | 
| 
      
 22 
     | 
    
         
            +
                it_should_behave_like 'a resource with a singular GET endpoint'
         
     | 
| 
       26 
23 
     | 
    
         
             
              end
         
     | 
| 
       27 
24 
     | 
    
         
             
            end
         
     | 
| 
         @@ -1,24 +1,23 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            require 'spec_helper'
         
     | 
| 
       2 
2 
     | 
    
         | 
| 
       3 
3 
     | 
    
         
             
            describe JIRA::Resource::Transition do
         
     | 
| 
       4 
     | 
    
         
            -
             
     | 
| 
       5 
4 
     | 
    
         
             
              with_each_client do |site_url, client|
         
     | 
| 
       6 
5 
     | 
    
         
             
                let(:client) { client }
         
     | 
| 
       7 
6 
     | 
    
         
             
                let(:site_url) { site_url }
         
     | 
| 
       8 
7 
     | 
    
         | 
| 
       9 
8 
     | 
    
         
             
                let(:key) { '10000' }
         
     | 
| 
       10 
9 
     | 
    
         | 
| 
       11 
     | 
    
         
            -
                let(:target) { JIRA::Resource::Transition.new(client, : 
     | 
| 
      
 10 
     | 
    
         
            +
                let(:target) { JIRA::Resource::Transition.new(client, attrs: { 'id' => '99999' }, issue_id: '10014') }
         
     | 
| 
       12 
11 
     | 
    
         | 
| 
       13 
     | 
    
         
            -
                let(:belongs_to)  
     | 
| 
       14 
     | 
    
         
            -
                  JIRA::Resource::Issue.new(client, : 
     | 
| 
       15 
     | 
    
         
            -
             
     | 
| 
       16 
     | 
    
         
            -
             
     | 
| 
       17 
     | 
    
         
            -
             
     | 
| 
       18 
     | 
    
         
            -
             
     | 
| 
       19 
     | 
    
         
            -
             
     | 
| 
       20 
     | 
    
         
            -
             
     | 
| 
       21 
     | 
    
         
            -
                 
     | 
| 
      
 12 
     | 
    
         
            +
                let(:belongs_to) do
         
     | 
| 
      
 13 
     | 
    
         
            +
                  JIRA::Resource::Issue.new(client, attrs: {
         
     | 
| 
      
 14 
     | 
    
         
            +
                                              'id' => '10002',
         
     | 
| 
      
 15 
     | 
    
         
            +
                                              'self' => "#{site_url}/jira/rest/api/2/issue/10002",
         
     | 
| 
      
 16 
     | 
    
         
            +
                                              'fields' => {
         
     | 
| 
      
 17 
     | 
    
         
            +
                                                'comment' => { 'comments' => [] }
         
     | 
| 
      
 18 
     | 
    
         
            +
                                              }
         
     | 
| 
      
 19 
     | 
    
         
            +
                                            })
         
     | 
| 
      
 20 
     | 
    
         
            +
                end
         
     | 
| 
       22 
21 
     | 
    
         | 
| 
       23 
22 
     | 
    
         
             
                let(:expected_attributes) do
         
     | 
| 
       24 
23 
     | 
    
         
             
                  {
         
     | 
| 
         @@ -27,26 +26,24 @@ describe JIRA::Resource::Transition do 
     | 
|
| 
       27 
26 
     | 
    
         
             
                  }
         
     | 
| 
       28 
27 
     | 
    
         
             
                end
         
     | 
| 
       29 
28 
     | 
    
         | 
| 
       30 
     | 
    
         
            -
                let(:attributes_for_post)  
     | 
| 
      
 29 
     | 
    
         
            +
                let(:attributes_for_post) do
         
     | 
| 
       31 
30 
     | 
    
         
             
                  {
         
     | 
| 
       32 
31 
     | 
    
         
             
                    'transition' => {
         
     | 
| 
       33 
32 
     | 
    
         
             
                      'id' => '42'
         
     | 
| 
       34 
33 
     | 
    
         
             
                    }
         
     | 
| 
       35 
34 
     | 
    
         
             
                  }
         
     | 
| 
       36 
     | 
    
         
            -
                 
     | 
| 
      
 35 
     | 
    
         
            +
                end
         
     | 
| 
       37 
36 
     | 
    
         | 
| 
       38 
     | 
    
         
            -
                it_should_behave_like  
     | 
| 
      
 37 
     | 
    
         
            +
                it_should_behave_like 'a resource'
         
     | 
| 
       39 
38 
     | 
    
         | 
| 
       40 
     | 
    
         
            -
                describe  
     | 
| 
       41 
     | 
    
         
            -
                  it  
     | 
| 
      
 39 
     | 
    
         
            +
                describe 'POST endpoint' do
         
     | 
| 
      
 40 
     | 
    
         
            +
                  it 'saves a new resource' do
         
     | 
| 
       42 
41 
     | 
    
         
             
                    stub_request(:post, /#{described_class.collection_path(client, prefix)}$/)
         
     | 
| 
       43 
     | 
    
         
            -
                      .with(: 
     | 
| 
       44 
     | 
    
         
            -
                      .to_return(: 
     | 
| 
      
 42 
     | 
    
         
            +
                      .with(body: attributes_for_post.to_json)
         
     | 
| 
      
 43 
     | 
    
         
            +
                      .to_return(status: 200, body: get_mock_from_path(:post))
         
     | 
| 
       45 
44 
     | 
    
         
             
                    subject = build_receiver.build
         
     | 
| 
       46 
45 
     | 
    
         
             
                    expect(subject.save(attributes_for_post)).to be_truthy
         
     | 
| 
       47 
46 
     | 
    
         
             
                  end
         
     | 
| 
       48 
47 
     | 
    
         
             
                end
         
     | 
| 
       49 
     | 
    
         
            -
             
     | 
| 
       50 
48 
     | 
    
         
             
              end
         
     | 
| 
       51 
     | 
    
         
            -
             
     | 
| 
       52 
49 
     | 
    
         
             
            end
         
     | 
| 
         @@ -1,25 +1,41 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            require 'spec_helper'
         
     | 
| 
       2 
2 
     | 
    
         | 
| 
       3 
3 
     | 
    
         
             
            describe JIRA::Resource::User do
         
     | 
| 
       4 
     | 
    
         
            -
             
     | 
| 
       5 
     | 
    
         
            -
             
     | 
| 
       6 
4 
     | 
    
         
             
              with_each_client do |site_url, client|
         
     | 
| 
       7 
5 
     | 
    
         
             
                let(:client) { client }
         
     | 
| 
       8 
6 
     | 
    
         
             
                let(:site_url) { site_url }
         
     | 
| 
       9 
7 
     | 
    
         | 
| 
       10 
     | 
    
         
            -
             
     | 
| 
       11 
     | 
    
         
            -
                let(:key) { "admin" }
         
     | 
| 
      
 8 
     | 
    
         
            +
                let(:key) { 'admin' }
         
     | 
| 
       12 
9 
     | 
    
         | 
| 
       13 
10 
     | 
    
         
             
                let(:expected_attributes) do
         
     | 
| 
       14 
11 
     | 
    
         
             
                  {
         
     | 
| 
       15 
     | 
    
         
            -
                    'self' =>  
     | 
| 
      
 12 
     | 
    
         
            +
                    'self' => 'http://localhost:2990/jira/rest/api/2/user?username=admin',
         
     | 
| 
       16 
13 
     | 
    
         
             
                    'name' => key,
         
     | 
| 
       17 
14 
     | 
    
         
             
                    'emailAddress' => 'admin@example.com'
         
     | 
| 
       18 
15 
     | 
    
         
             
                  }
         
     | 
| 
       19 
16 
     | 
    
         
             
                end
         
     | 
| 
       20 
17 
     | 
    
         | 
| 
       21 
     | 
    
         
            -
                it_should_behave_like  
     | 
| 
       22 
     | 
    
         
            -
                it_should_behave_like  
     | 
| 
       23 
     | 
    
         
            -
             
     | 
| 
      
 18 
     | 
    
         
            +
                it_should_behave_like 'a resource'
         
     | 
| 
      
 19 
     | 
    
         
            +
                it_should_behave_like 'a resource with a singular GET endpoint'
         
     | 
| 
      
 20 
     | 
    
         
            +
             
     | 
| 
      
 21 
     | 
    
         
            +
                describe '#all' do
         
     | 
| 
      
 22 
     | 
    
         
            +
                  let(:client) do
         
     | 
| 
      
 23 
     | 
    
         
            +
                    client = double(options: { rest_base_path: '/jira/rest/api/2' })
         
     | 
| 
      
 24 
     | 
    
         
            +
                    allow(client).to receive(:get).with('/rest/api/2/users/search?username=_&maxResults=1000').and_return(JIRA::Resource::UserFactory.new(client))
         
     | 
| 
      
 25 
     | 
    
         
            +
                    client
         
     | 
| 
      
 26 
     | 
    
         
            +
                  end
         
     | 
| 
      
 27 
     | 
    
         
            +
             
     | 
| 
      
 28 
     | 
    
         
            +
                  before do
         
     | 
| 
      
 29 
     | 
    
         
            +
                    allow(client).to receive(:get)
         
     | 
| 
      
 30 
     | 
    
         
            +
                      .with('/rest/api/2/users/search?username=_&maxResults=1000') { OpenStruct.new(body: '["User1"]') }
         
     | 
| 
      
 31 
     | 
    
         
            +
                    allow(client).to receive_message_chain(:User, :build).with('users') { [] }
         
     | 
| 
      
 32 
     | 
    
         
            +
                  end
         
     | 
| 
      
 33 
     | 
    
         
            +
             
     | 
| 
      
 34 
     | 
    
         
            +
                  it 'gets users with maxResults of 1000' do
         
     | 
| 
      
 35 
     | 
    
         
            +
                    expect(client).to receive(:get).with('/rest/api/2/users/search?username=_&maxResults=1000')
         
     | 
| 
      
 36 
     | 
    
         
            +
                    expect(client).to receive_message_chain(:User, :build).with('User1')
         
     | 
| 
      
 37 
     | 
    
         
            +
                    JIRA::Resource::User.all(client)
         
     | 
| 
      
 38 
     | 
    
         
            +
                  end
         
     | 
| 
      
 39 
     | 
    
         
            +
                end
         
     | 
| 
       24 
40 
     | 
    
         
             
              end
         
     | 
| 
       25 
41 
     | 
    
         
             
            end
         
     | 
| 
         @@ -1,43 +1,39 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            require 'spec_helper'
         
     | 
| 
       2 
2 
     | 
    
         | 
| 
       3 
3 
     | 
    
         
             
            describe JIRA::Resource::Version do
         
     | 
| 
       4 
     | 
    
         
            -
             
     | 
| 
       5 
     | 
    
         
            -
             
     | 
| 
       6 
4 
     | 
    
         
             
              with_each_client do |site_url, client|
         
     | 
| 
       7 
5 
     | 
    
         
             
                let(:client) { client }
         
     | 
| 
       8 
6 
     | 
    
         
             
                let(:site_url) { site_url }
         
     | 
| 
       9 
7 
     | 
    
         | 
| 
       10 
     | 
    
         
            -
             
     | 
| 
       11 
     | 
    
         
            -
                let(:key) { "10000" }
         
     | 
| 
      
 8 
     | 
    
         
            +
                let(:key) { '10000' }
         
     | 
| 
       12 
9 
     | 
    
         | 
| 
       13 
10 
     | 
    
         
             
                let(:expected_attributes) do
         
     | 
| 
       14 
11 
     | 
    
         
             
                  {
         
     | 
| 
       15 
     | 
    
         
            -
                    'self' =>  
     | 
| 
      
 12 
     | 
    
         
            +
                    'self' => 'http://localhost:2990/jira/rest/api/2/version/10000',
         
     | 
| 
       16 
13 
     | 
    
         
             
                    'id'   => key,
         
     | 
| 
       17 
     | 
    
         
            -
                    'description' =>  
     | 
| 
      
 14 
     | 
    
         
            +
                    'description' => 'Initial version'
         
     | 
| 
       18 
15 
     | 
    
         
             
                  }
         
     | 
| 
       19 
16 
     | 
    
         
             
                end
         
     | 
| 
       20 
17 
     | 
    
         | 
| 
       21 
     | 
    
         
            -
                let(:attributes_for_post)  
     | 
| 
       22 
     | 
    
         
            -
                  { 
     | 
| 
       23 
     | 
    
         
            -
                 
     | 
| 
       24 
     | 
    
         
            -
                let(:expected_attributes_from_post)  
     | 
| 
       25 
     | 
    
         
            -
                  {  
     | 
| 
       26 
     | 
    
         
            -
                 
     | 
| 
       27 
     | 
    
         
            -
             
     | 
| 
       28 
     | 
    
         
            -
                let(:attributes_for_put) {
         
     | 
| 
       29 
     | 
    
         
            -
                  {"name" => "2.0.0" }
         
     | 
| 
       30 
     | 
    
         
            -
                }
         
     | 
| 
       31 
     | 
    
         
            -
                let(:expected_attributes_from_put) {
         
     | 
| 
       32 
     | 
    
         
            -
                  { "id" => "10000", "name" => "2.0.0" }
         
     | 
| 
       33 
     | 
    
         
            -
                }
         
     | 
| 
      
 18 
     | 
    
         
            +
                let(:attributes_for_post) do
         
     | 
| 
      
 19 
     | 
    
         
            +
                  { 'name' => '2.0', 'project' => 'SAMPLEPROJECT' }
         
     | 
| 
      
 20 
     | 
    
         
            +
                end
         
     | 
| 
      
 21 
     | 
    
         
            +
                let(:expected_attributes_from_post) do
         
     | 
| 
      
 22 
     | 
    
         
            +
                  { 'id' => '10001', 'name' => '2.0' }
         
     | 
| 
      
 23 
     | 
    
         
            +
                end
         
     | 
| 
       34 
24 
     | 
    
         | 
| 
       35 
     | 
    
         
            -
                 
     | 
| 
       36 
     | 
    
         
            -
             
     | 
| 
       37 
     | 
    
         
            -
                 
     | 
| 
       38 
     | 
    
         
            -
                 
     | 
| 
       39 
     | 
    
         
            -
             
     | 
| 
       40 
     | 
    
         
            -
                 
     | 
| 
      
 25 
     | 
    
         
            +
                let(:attributes_for_put) do
         
     | 
| 
      
 26 
     | 
    
         
            +
                  { 'name' => '2.0.0' }
         
     | 
| 
      
 27 
     | 
    
         
            +
                end
         
     | 
| 
      
 28 
     | 
    
         
            +
                let(:expected_attributes_from_put) do
         
     | 
| 
      
 29 
     | 
    
         
            +
                  { 'id' => '10000', 'name' => '2.0.0' }
         
     | 
| 
      
 30 
     | 
    
         
            +
                end
         
     | 
| 
       41 
31 
     | 
    
         | 
| 
      
 32 
     | 
    
         
            +
                it_should_behave_like 'a resource'
         
     | 
| 
      
 33 
     | 
    
         
            +
                it_should_behave_like 'a resource with a singular GET endpoint'
         
     | 
| 
      
 34 
     | 
    
         
            +
                it_should_behave_like 'a resource with a DELETE endpoint'
         
     | 
| 
      
 35 
     | 
    
         
            +
                it_should_behave_like 'a resource with a POST endpoint'
         
     | 
| 
      
 36 
     | 
    
         
            +
                it_should_behave_like 'a resource with a PUT endpoint'
         
     | 
| 
      
 37 
     | 
    
         
            +
                it_should_behave_like 'a resource with a PUT endpoint that rejects invalid fields'
         
     | 
| 
       42 
38 
     | 
    
         
             
              end
         
     | 
| 
       43 
39 
     | 
    
         
             
            end
         
     |