peoplegroup-connectors 0.1.2 → 0.1.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0cd3e2299c0749eacfa79fa3d8f9d4ac9a7cb59b817ed9d85e89ff42d919e7ff
4
- data.tar.gz: b5daffe094fd83d2ccb41c97598feef9ab7e31f78b6254ab1e0bf0fb84d4f6d3
3
+ metadata.gz: eb962e9d43875bb0a19ac206165c335097c6147148d23944a4479e97460613f3
4
+ data.tar.gz: 521103c3b8289e98752fb6a06f125ed8db47ef5d160030032b00ab478263498d
5
5
  SHA512:
6
- metadata.gz: fec64050cb1516d8bc1426240d779b1544c3a32a1d8cb6daba836adeccfc1daed3ebc49210962d2da850b7b0d48fc790fa81bc0feebf9b4ab5a8482a1bf19e64
7
- data.tar.gz: 9ec82b1b16a7e2d34fac56ab5b860bfd19fbd72ea9a32ef8503b937a1f19c261b930bcdc7ff8fff4535662f7ebcd23d9f934345627151d5736f074a805c4f7b3
6
+ metadata.gz: d52daa4d4fddc9a989dc41e601d208167c6a27c36d1c2a0ba09b164c25a9eb829486bae15f09a64bb6c670f57ea803fc37e25966410761f2fefe11b165206700
7
+ data.tar.gz: 472b1e602fb9ae87b5b25fb6987e4d625a31b2b668c24429ab850adc06314980a7dbd8533f518104d475a554df9fe94b16ac87e365247137636acba14dbcf432
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- peoplegroup-connectors (0.1.0)
4
+ peoplegroup-connectors (0.1.2)
5
5
  gitlab
6
6
 
7
7
  GEM
@@ -2,6 +2,6 @@
2
2
 
3
3
  module PeopleGroup
4
4
  module Connectors
5
- VERSION = '0.1.2'
5
+ VERSION = '0.1.3'
6
6
  end
7
7
  end
@@ -18,14 +18,11 @@ Gem::Specification.new do |spec|
18
18
  spec.metadata['source_code_uri'] = spec.homepage
19
19
  spec.metadata['changelog_uri'] = spec.homepage
20
20
 
21
- spec.files = Dir.chdir(File.expand_path(__dir__)) do
22
- `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
23
- end
24
- spec.bindir = 'exe'
25
- spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
21
+ spec.files = `git ls-files -z`.split("\x0")
22
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
23
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
26
24
  spec.require_paths = ['lib']
27
25
 
28
-
29
26
  spec.add_dependency 'gitlab'
30
27
 
31
28
  spec.add_development_dependency 'rspec', '~> 3.2'
@@ -0,0 +1,125 @@
1
+ # frozen_string_literal: true
2
+
3
+ RSpec.describe PeopleGroup::Connectors::GitLab do
4
+ let(:gitlab_members) { spy }
5
+ let(:gitlab_mock) do
6
+ instance_double(
7
+ Gitlab::Client,
8
+ group_members: gitlab_members,
9
+ create_issue: true,
10
+ issues: double(auto_paginate: true),
11
+ create_issue_note: true,
12
+ create_epic: true,
13
+ epics: double(auto_paginate: []),
14
+ create_branch: true,
15
+ create_merge_request: true,
16
+ create_commit: true,
17
+ create_epic_note: true,
18
+ epic_issues: double(auto_paginate: []),
19
+ edit_epic: true
20
+ )
21
+ end
22
+
23
+ before do
24
+ allow(Gitlab).to receive(:client).and_return(gitlab_mock)
25
+ end
26
+
27
+ describe '#find_gitlabber' do
28
+ context 'when given empty query' do
29
+ it 'returns nil' do
30
+ expect(described_class.new.find_gitlabber(:username, nil)).to be_nil
31
+ end
32
+ end
33
+
34
+ context 'when given non-empty query' do
35
+ it 'calls correct method with proper args' do
36
+ described_class.new.find_gitlabber(:name, 'john')
37
+
38
+ expect(gitlab_mock).to have_received(:group_members).with('gitlab-com', query: 'john')
39
+ expect(gitlab_members).to have_received(:find)
40
+ end
41
+ end
42
+ end
43
+
44
+ describe '#create_issue' do
45
+ it 'calls correct method with proper args' do
46
+ described_class.new.create_issue('foo/bar', 'My Issue Title', assignee_id: 123_456)
47
+ expect(gitlab_mock).to have_received(:create_issue).with('foo/bar', 'My Issue Title', assignee_id: 123_456)
48
+ end
49
+ end
50
+
51
+ describe '#get_onboarding_issues' do
52
+ it 'uses specified arguments' do
53
+ described_class.new.get_onboarding_issues('foo/bar', per_page: 500)
54
+
55
+ expect(gitlab_mock).to have_received(:issues).with('foo/bar', per_page: 500)
56
+ end
57
+ end
58
+
59
+ describe '#create_issue_note' do
60
+ it 'calls correct method with proper args' do
61
+ described_class.new.create_issue_note('foo/bar', 15, 'My issue comment')
62
+
63
+ expect(gitlab_mock).to have_received(:create_issue_note).with('foo/bar', 15, 'My issue comment')
64
+ end
65
+ end
66
+
67
+ describe '#find_or_create_epic' do
68
+ it 'calls correct method with proper args' do
69
+ described_class.new.find_or_create_epic(123, 'My Epic Title', assignee_id: 123_456)
70
+ expect(gitlab_mock).to have_received(:create_epic).with(123, 'My Epic Title', { assignee_id: 123_456, confidential: true })
71
+ end
72
+
73
+ context 'when the epic was closed' do
74
+ before do
75
+ allow(gitlab_mock).to receive(:epics).and_return(double(auto_paginate: [double(iid: 1, group_id: 2, web_url: 'foo.bar/issues/1', state: 'closed', title: 'Existing Epic')]))
76
+ end
77
+
78
+ it 'reopens the epic' do
79
+ described_class.new.find_or_create_epic(2, 'Existing Epic', assignee_id: 123_456)
80
+ expect(gitlab_mock).not_to have_received(:create_epic)
81
+ expect(gitlab_mock).to have_received(:edit_epic).with(2, 1, state_event: 'reopen')
82
+ end
83
+ end
84
+ end
85
+
86
+ describe '#commit_change_to_new_merge_request' do
87
+ it 'calls correct method with proper args' do
88
+ described_class.new.commit_change_to_new_merge_request(123, 'my-new-branch', 'foo/bar.md', 'the changed text', 'my commit message')
89
+ expect(gitlab_mock).to have_received(:create_branch).with(123, 'my-new-branch', 'master')
90
+ action = {
91
+ action: 'update',
92
+ file_path: 'foo/bar.md',
93
+ content: 'the changed text'
94
+ }
95
+ expect(gitlab_mock).to have_received(:create_commit).with(123, 'my-new-branch', 'my commit message', [action])
96
+ expect(gitlab_mock).to have_received(:create_merge_request).with(123, 'my commit message', { source_branch: 'my-new-branch', target_branch: 'master', remove_source_branch: true })
97
+ end
98
+ end
99
+
100
+ describe '#get_epics' do
101
+ it 'calls correct method with proper args' do
102
+ described_class.new.get_epics(123)
103
+ expect(gitlab_mock).to have_received(:epics).with(123, {})
104
+ end
105
+
106
+ it 'calls correct method with proper args when you add options' do
107
+ described_class.new.get_epics(123, state: 'opened')
108
+ expect(gitlab_mock).to have_received(:epics).with(123, { state: 'opened' })
109
+ end
110
+ end
111
+
112
+ describe '#get_issue_epics' do
113
+ it 'calls correct method with proper args' do
114
+ described_class.new.get_issue_epics(123, 7)
115
+ expect(gitlab_mock).to have_received(:epic_issues).with(123, 7)
116
+ end
117
+ end
118
+
119
+ describe '#create_epic_note' do
120
+ it 'calls correct method with proper args' do
121
+ described_class.new.create_epic_note(123, 7, 'My epic note')
122
+ expect(gitlab_mock).to have_received(:create_epic_note).with(123, 7, 'My epic note')
123
+ end
124
+ end
125
+ end
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ RSpec.describe PeopleGroup::Connectors do
4
+ it 'has a version number' do
5
+ expect(PeopleGroup::Connectors::VERSION).not_to be nil
6
+ end
7
+ end
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'peoplegroup/connectors'
4
+
5
+ RSpec.configure do |config|
6
+ # Enable flags like --only-failures and --next-failure
7
+ config.example_status_persistence_file_path = '.rspec_status'
8
+
9
+ # Disable RSpec exposing methods globally on `Module` and `main`
10
+ config.disable_monkey_patching!
11
+
12
+ config.filter_run focus: true
13
+ config.run_all_when_everything_filtered = true
14
+
15
+ config.expect_with :rspec do |c|
16
+ c.syntax = :expect
17
+ end
18
+ end
metadata CHANGED
@@ -1,12 +1,12 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: peoplegroup-connectors
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - lien van den steen
8
8
  autorequire:
9
- bindir: exe
9
+ bindir: bin
10
10
  cert_chain: []
11
11
  date: 2021-02-01 00:00:00.000000000 Z
12
12
  dependencies:
@@ -83,7 +83,9 @@ dependencies:
83
83
  description: Avoid repeating methods in different projects for our connectos.
84
84
  email:
85
85
  - lvandensteen@gitlab.com
86
- executables: []
86
+ executables:
87
+ - console
88
+ - setup
87
89
  extensions: []
88
90
  extra_rdoc_files: []
89
91
  files:
@@ -104,6 +106,9 @@ files:
104
106
  - lib/peoplegroup/connectors/gitlab.rb
105
107
  - lib/peoplegroup/connectors/version.rb
106
108
  - peoplegroup-connectors.gemspec
109
+ - spec/peoplegroup/connectors/gitlab_spec.rb
110
+ - spec/peoplegroup/connectors_spec.rb
111
+ - spec/spec_helper.rb
107
112
  homepage: https://gitlab.com/gitlab-com/people-group/peopleops-eng/connectors-gem
108
113
  licenses:
109
114
  - MIT
@@ -130,4 +135,7 @@ rubygems_version: 3.1.4
130
135
  signing_key:
131
136
  specification_version: 4
132
137
  summary: Library for our shared connectors.
133
- test_files: []
138
+ test_files:
139
+ - spec/peoplegroup/connectors/gitlab_spec.rb
140
+ - spec/peoplegroup/connectors_spec.rb
141
+ - spec/spec_helper.rb