txgh 2.0.1 → 2.1.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.
@@ -14,18 +14,44 @@ describe ResourceCommitter do
14
14
  ResourceCommitter.new(transifex_project, github_repo, logger)
15
15
  end
16
16
 
17
+ before(:each) do
18
+ allow(github_api).to receive(:get_ref).and_return(
19
+ object: { sha: 'abc123shashasha' }
20
+ )
21
+ end
22
+
17
23
  describe '#commit_resource' do
18
- it 'commits translations to the git repo' do
19
- expect(ResourceDownloader).to receive(:new).and_return(downloader)
20
- expect(downloader).to receive(:first).and_return([file_name, :translations])
24
+ context 'with apis available' do
25
+ before(:each) do
26
+ expect(ResourceDownloader).to receive(:new).and_return(downloader)
27
+ expect(downloader).to receive(:first).and_return([file_name, :translations])
28
+
29
+ expect(github_api).to(
30
+ receive(:commit).with(
31
+ repo_name, branch, { file_name => :translations }
32
+ )
33
+ )
34
+ end
35
+
36
+ it 'commits translations to the git repo' do
37
+ committer.commit_resource(resource, branch, language)
38
+ end
21
39
 
22
- expect(github_api).to(
23
- receive(:commit).with(
24
- repo_name, branch, { file_name => :translations }
40
+ it 'fires the github.resource.committed event' do
41
+ expect { committer.commit_resource(resource, branch, language) }.to(
42
+ change { Txgh.events.published.size }.by(1)
25
43
  )
26
- )
27
44
 
28
- committer.commit_resource(resource, branch, language)
45
+ event = Txgh.events.published.first
46
+ expect(event[:channel]).to eq('github.resource.committed')
47
+
48
+ options = event[:options]
49
+ expect(options[:project].name).to eq(project_name)
50
+ expect(options[:repo].name).to eq(repo_name)
51
+ expect(options[:sha]).to eq('abc123shashasha')
52
+ expect(options[:resource].original_resource_slug).to eq(resource_slug)
53
+ expect(options[:language]).to eq(language)
54
+ end
29
55
  end
30
56
 
31
57
  it "doesn't commit anything if the language is the source language" do
@@ -65,6 +65,23 @@ describe ResourceUpdater do
65
65
  updater.update_resource(resource, commit_sha)
66
66
  end
67
67
 
68
+ it 'fires the transifex.resource.updated event' do
69
+ allow(transifex_api).to receive(:create_or_update)
70
+
71
+ expect { updater.update_resource(resource, commit_sha) }.to(
72
+ change { Txgh.events.published.size }.by(1)
73
+ )
74
+
75
+ event = Txgh.events.published.first
76
+ expect(event[:channel]).to eq('transifex.resource.updated')
77
+
78
+ options = event[:options]
79
+ expect(options[:project].name).to eq(project_name)
80
+ expect(options[:repo].name).to eq(repo_name)
81
+ expect(options[:sha]).to eq(commit_sha)
82
+ expect(options[:resource].original_resource_slug).to eq(resource_slug)
83
+ end
84
+
68
85
  context 'when asked to process all branches' do
69
86
  let(:branch) { 'all' }
70
87
  let(:ref) { 'heads/master' }
data/spec/spec_helper.rb CHANGED
@@ -8,6 +8,8 @@ require 'vcr'
8
8
  require 'webmock'
9
9
  require 'yaml'
10
10
 
11
+ require 'helpers/test_events'
12
+
11
13
  module SpecHelpers
12
14
  def outdent(str)
13
15
  # The special YAML pipe operator treats the text that follows as literal,
@@ -24,6 +26,10 @@ RSpec.configure do |config|
24
26
  config.run_all_when_everything_filtered = true
25
27
  config.filter_run_excluding(integration: true) unless ENV['FULL_SPEC']
26
28
  config.include(SpecHelpers)
29
+
30
+ config.before(:each) do
31
+ Txgh.instance_variable_set(:@events, TestEvents.new)
32
+ end
27
33
  end
28
34
 
29
35
  VCR.configure do |config|
@@ -8,7 +8,7 @@ describe TransifexApi do
8
8
 
9
9
  let(:connection) { double(:connection) }
10
10
  let(:api) { TransifexApi.create_from_connection(connection) }
11
- let(:resource) { tx_config.resources.first }
11
+ let(:resource) { tx_config.resource(resource_slug) }
12
12
  let(:response) { double(:response) }
13
13
 
14
14
  describe '#create_or_update' do
@@ -77,6 +77,7 @@ describe TransifexApi do
77
77
  end_with("project/#{project_name}/resources/")
78
78
  )
79
79
 
80
+ expect(payload[:name]).to eq('sample.yml')
80
81
  expect(payload[:content].io.string).to eq('new_content')
81
82
  expect(payload[:categories]).to eq('abc def')
82
83
  response
@@ -102,6 +103,20 @@ describe TransifexApi do
102
103
  allow(response).to receive(:body).and_return('{}')
103
104
  expect { api.create(resource, 'new_content') }.to raise_error(TransifexApiError)
104
105
  end
106
+
107
+ context 'with a branch-based resource' do
108
+ let(:resource) { tx_config.resource(resource_slug, ref) }
109
+
110
+ it "includes the branch in the resource's name" do
111
+ expect(connection).to receive(:post) do |url, payload|
112
+ expect(payload[:name]).to eq('sample.yml (heads/master)')
113
+ response
114
+ end
115
+
116
+ allow(response).to receive(:status).and_return(200)
117
+ api.create(resource, 'new_content')
118
+ end
119
+ end
105
120
  end
106
121
 
107
122
  describe '#delete' do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: txgh
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.1
4
+ version: 2.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matthew Jackowski
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2016-04-28 00:00:00.000000000 Z
12
+ date: 2016-05-04 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: abroad
@@ -186,9 +186,11 @@ files:
186
186
  - lib/txgh/diff_calculator.rb
187
187
  - lib/txgh/empty_resource_contents.rb
188
188
  - lib/txgh/errors.rb
189
+ - lib/txgh/events.rb
189
190
  - lib/txgh/github_api.rb
190
191
  - lib/txgh/github_repo.rb
191
192
  - lib/txgh/github_request_auth.rb
193
+ - lib/txgh/github_status.rb
192
194
  - lib/txgh/handlers.rb
193
195
  - lib/txgh/handlers/download_handler.rb
194
196
  - lib/txgh/handlers/github.rb
@@ -232,9 +234,11 @@ files:
232
234
  - spec/config/tx_config_spec.rb
233
235
  - spec/config/tx_manager_spec.rb
234
236
  - spec/diff_calculator_spec.rb
237
+ - spec/events_spec.rb
235
238
  - spec/github_api_spec.rb
236
239
  - spec/github_repo_spec.rb
237
240
  - spec/github_request_auth_spec.rb
241
+ - spec/github_status_spec.rb
238
242
  - spec/handlers/download_handler_spec.rb
239
243
  - spec/handlers/github/delete_handler_spec.rb
240
244
  - spec/handlers/github/ping_handler_spec.rb
@@ -246,6 +250,7 @@ files:
246
250
  - spec/helpers/integration_setup.rb
247
251
  - spec/helpers/nil_logger.rb
248
252
  - spec/helpers/standard_txgh_setup.rb
253
+ - spec/helpers/test_events.rb
249
254
  - spec/helpers/test_provider.rb
250
255
  - spec/integration/cassettes/github_l10n_hook_endpoint.yml
251
256
  - spec/integration/cassettes/pull.yml