localeapp 0.9.3 → 1.0.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 +8 -8
- data/.travis.yml +5 -1
- data/CHANGELOG.md +10 -0
- data/README.md +2 -2
- data/bin/localeapp +6 -4
- data/features/add.feature +11 -12
- data/features/install.feature +28 -28
- data/features/mv.feature +2 -2
- data/features/pull.feature +8 -8
- data/features/push.feature +12 -12
- data/features/rm.feature +2 -2
- data/features/step_definitions/cli_steps.rb +2 -6
- data/features/support/env.rb +3 -5
- data/features/support/hooks.rb +3 -3
- data/features/update.feature +19 -19
- data/lib/localeapp/version.rb +1 -1
- data/localeapp.gemspec +4 -4
- data/spec/localeapp/api_call_spec.rb +2 -2
- data/spec/localeapp/api_caller_spec.rb +45 -43
- data/spec/localeapp/cli/add_spec.rb +14 -14
- data/spec/localeapp/cli/daemon_spec.rb +6 -6
- data/spec/localeapp/cli/install_spec.rb +53 -53
- data/spec/localeapp/cli/pull_spec.rb +5 -5
- data/spec/localeapp/cli/push_spec.rb +9 -9
- data/spec/localeapp/cli/rename_spec.rb +1 -1
- data/spec/localeapp/cli/update_spec.rb +9 -6
- data/spec/localeapp/configuration_spec.rb +29 -29
- data/spec/localeapp/default_value_handler_spec.rb +8 -8
- data/spec/localeapp/exception_handler_spec.rb +6 -6
- data/spec/localeapp/key_checker_spec.rb +2 -2
- data/spec/localeapp/missing_translations_spec.rb +18 -18
- data/spec/localeapp/poller_spec.rb +12 -12
- data/spec/localeapp/rails/controller_spec.rb +13 -13
- data/spec/localeapp/routes_spec.rb +34 -34
- data/spec/localeapp/sender_spec.rb +5 -5
- data/spec/localeapp/updater_spec.rb +14 -14
- metadata +15 -15
data/features/update.feature
CHANGED
@@ -2,37 +2,37 @@ Feature: Getting new translations
|
|
2
2
|
|
3
3
|
Scenario: Running update
|
4
4
|
In order to receive the translations that have been updated since the last check
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
5
|
+
Given I have a valid project on localeapp.com with api key "MYAPIKEY"
|
6
|
+
And an initializer file
|
7
|
+
And the timestamp is 2 months old
|
8
|
+
And new translations for the api key "MYAPIKEY" since last fetch with time "60" seconds later
|
9
|
+
And a directory named "config/locales"
|
10
10
|
When I run `localeapp update`
|
11
11
|
Then translations should be fetched since last fetch only
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
12
|
+
And help should not be displayed
|
13
|
+
And a file named "config/locales/en.yml" should exist
|
14
|
+
# check the content here
|
15
|
+
# and the localeapp.yml file
|
16
16
|
|
17
17
|
Scenario: Running update with no initializer file, passing the key on the command line
|
18
18
|
In order to receive the translations that have been updated since the last check
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
19
|
+
Given I have a valid project on localeapp.com with api key "MYAPIKEY"
|
20
|
+
And the timestamp is 2 months old
|
21
|
+
And new translations for the api key "MYAPIKEY" since last fetch with time "60" seconds later
|
22
|
+
And a directory named "config/locales"
|
23
23
|
When I run `localeapp -k MYAPIKEY update`
|
24
24
|
Then translations should be fetched since last fetch only
|
25
|
-
|
26
|
-
|
25
|
+
And help should not be displayed
|
26
|
+
And a file named "config/locales/en.yml" should exist
|
27
27
|
|
28
28
|
Scenario: Running update with a too old timestamp
|
29
29
|
In order to receive the translations that have been updated since the last check
|
30
|
-
|
31
|
-
|
32
|
-
|
30
|
+
Given I have a valid project on localeapp.com with api key "MYAPIKEY"
|
31
|
+
And an initializer file
|
32
|
+
And the timestamp is 8 months old
|
33
33
|
When I run `localeapp update`
|
34
34
|
Then the output should contain:
|
35
35
|
"""
|
36
36
|
Timestamp is missing or too old
|
37
37
|
"""
|
38
|
-
|
38
|
+
And help should not be displayed
|
data/lib/localeapp/version.rb
CHANGED
data/localeapp.gemspec
CHANGED
@@ -20,7 +20,7 @@ Gem::Specification.new do |s|
|
|
20
20
|
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
21
21
|
s.require_paths = ["lib"]
|
22
22
|
|
23
|
-
s.add_dependency('i18n')
|
23
|
+
s.add_dependency('i18n', '< 0.7')
|
24
24
|
s.add_dependency('json')
|
25
25
|
s.add_dependency('rest-client')
|
26
26
|
s.add_dependency('rack')
|
@@ -28,10 +28,10 @@ Gem::Specification.new do |s|
|
|
28
28
|
s.add_dependency('gli')
|
29
29
|
|
30
30
|
s.add_development_dependency('rake')
|
31
|
-
s.add_development_dependency('rspec', '~>
|
31
|
+
s.add_development_dependency('rspec', '~> 3.3')
|
32
32
|
s.add_development_dependency('yard')
|
33
33
|
s.add_development_dependency('RedCloth')
|
34
|
-
s.add_development_dependency('aruba')
|
35
|
-
s.add_development_dependency('cucumber', '~>
|
34
|
+
s.add_development_dependency('aruba', '~> 0.8')
|
35
|
+
s.add_development_dependency('cucumber', '~> 2.0')
|
36
36
|
s.add_development_dependency('fakeweb')
|
37
37
|
end
|
@@ -8,8 +8,8 @@ describe Localeapp::ApiCall, "#api_call(endpoint, options = {})" do
|
|
8
8
|
it "creates an ApiCaller object and tells it to make the call" do
|
9
9
|
api_call_test = ApiCallTest.new
|
10
10
|
api_call = double('api_call')
|
11
|
-
api_call.
|
12
|
-
Localeapp::ApiCaller.
|
11
|
+
expect(api_call).to receive(:call).with(api_call_test)
|
12
|
+
expect(Localeapp::ApiCaller).to receive(:new).with(:endpoint, { :foo => :bar }).and_return(api_call)
|
13
13
|
api_call_test.api_call(:endpoint, { :foo => :bar })
|
14
14
|
end
|
15
15
|
end
|
@@ -3,8 +3,8 @@ require 'spec_helper'
|
|
3
3
|
describe Localeapp::ApiCaller, ".new(endpoint, options = {})" do
|
4
4
|
it "stores the endpoint and options" do
|
5
5
|
api_caller = Localeapp::ApiCaller.new(:endpoint, :foo => :bar)
|
6
|
-
api_caller.endpoint.
|
7
|
-
api_caller.options.
|
6
|
+
expect(api_caller.endpoint).to eq(:endpoint)
|
7
|
+
expect(api_caller.options).to eq({ :foo => :bar })
|
8
8
|
end
|
9
9
|
end
|
10
10
|
|
@@ -14,39 +14,41 @@ describe Localeapp::ApiCaller, "#call(object)" do
|
|
14
14
|
@api_caller = Localeapp::ApiCaller.new(:test)
|
15
15
|
end
|
16
16
|
@url = 'https://example.com/test'
|
17
|
-
@api_caller.
|
18
|
-
@api_caller.
|
17
|
+
allow(@api_caller).to receive(:test_endpoint).and_return([:get, @url])
|
18
|
+
allow(@api_caller).to receive(:sleep_if_retrying)
|
19
19
|
end
|
20
20
|
|
21
21
|
it "gets the method and url for the endpoint" do
|
22
|
-
@api_caller.
|
23
|
-
RestClient::Request.
|
22
|
+
expect(@api_caller).to receive(:test_endpoint).with({}).and_return([:get, @url])
|
23
|
+
allow(RestClient::Request).to receive(:execute).and_return(double('response', :code => 200))
|
24
24
|
@api_caller.call(self)
|
25
25
|
end
|
26
26
|
|
27
27
|
it "passes through any url options" do
|
28
|
-
@api_caller.
|
28
|
+
expect(@api_caller).to receive(:test_endpoint).with({:foo => :bar}).and_return([:get, @url])
|
29
29
|
@api_caller.options[:url_options] = { :foo => :bar }
|
30
|
-
RestClient::Request.
|
30
|
+
allow(RestClient::Request).to receive(:execute).and_return(double('response', :code => 200))
|
31
31
|
@api_caller.call(self)
|
32
32
|
end
|
33
33
|
|
34
34
|
it "adds the gem version to the headers" do
|
35
|
-
RestClient::Request.
|
35
|
+
expect(RestClient::Request).to receive(:execute).with(hash_including(:headers => { :x_localeapp_gem_version => Localeapp::VERSION })).and_return(double('response', :code => 200))
|
36
36
|
@api_caller.call(self)
|
37
37
|
end
|
38
38
|
|
39
39
|
if "".respond_to?(:force_encoding)
|
40
40
|
def success_check(response)
|
41
|
-
response.encoding.
|
41
|
+
expect(response.encoding).to eq(Encoding.find('UTF-8'))
|
42
42
|
end
|
43
43
|
|
44
44
|
it "sets the response encoding based on the response charset" do
|
45
45
|
response = "string"
|
46
|
-
response.
|
46
|
+
allow(response).to receive(:code).and_return(200)
|
47
47
|
response.force_encoding('US-ASCII')
|
48
|
-
response.
|
49
|
-
|
48
|
+
allow(response).to receive_message_chain(:net_http_res, :type_params) do
|
49
|
+
{ "charset" => "utf-8" }
|
50
|
+
end
|
51
|
+
allow(RestClient::Request).to receive(:execute).and_return(response)
|
50
52
|
@api_caller.options[:success] = :success_check
|
51
53
|
@api_caller.call(self)
|
52
54
|
end
|
@@ -54,17 +56,17 @@ describe Localeapp::ApiCaller, "#call(object)" do
|
|
54
56
|
|
55
57
|
context "Proxy" do
|
56
58
|
before do
|
57
|
-
RestClient::Request.
|
59
|
+
allow(RestClient::Request).to receive(:execute).and_return(double('response', :code => 200))
|
58
60
|
end
|
59
61
|
|
60
62
|
it "sets the proxy if configured" do
|
61
63
|
Localeapp.configuration.proxy = "http://localhost:8888"
|
62
|
-
RestClient.
|
64
|
+
expect(RestClient).to receive(:proxy=).with('http://localhost:8888')
|
63
65
|
@api_caller.call(self)
|
64
66
|
end
|
65
67
|
|
66
68
|
it "doesn't set the proxy if it's not configured" do
|
67
|
-
RestClient.
|
69
|
+
expect(RestClient).not_to receive(:proxy=)
|
68
70
|
@api_caller.call(self)
|
69
71
|
end
|
70
72
|
end
|
@@ -72,12 +74,12 @@ describe Localeapp::ApiCaller, "#call(object)" do
|
|
72
74
|
context "SSL Certificate Validation" do
|
73
75
|
it "set the HTTPClient verify_ssl to VERIFY_PEER if ssl_verify is set to true" do
|
74
76
|
Localeapp.configuration.ssl_verify = true
|
75
|
-
RestClient::Request.
|
77
|
+
expect(RestClient::Request).to receive(:execute).with(hash_including(:verify_ssl => OpenSSL::SSL::VERIFY_PEER)).and_return(double('response', :code => 200))
|
76
78
|
@api_caller.call(self)
|
77
79
|
end
|
78
80
|
|
79
81
|
it "set the HTTPClient verify_ssl to false if ssl_verify is set to false" do
|
80
|
-
RestClient::Request.
|
82
|
+
expect(RestClient::Request).to receive(:execute).with(hash_including(:verify_ssl => false)).and_return(double('response', :code => 200))
|
81
83
|
@api_caller.call(self)
|
82
84
|
end
|
83
85
|
end
|
@@ -85,13 +87,13 @@ describe Localeapp::ApiCaller, "#call(object)" do
|
|
85
87
|
context "SSL Certificate Validation" do
|
86
88
|
it "set the HTTPClient ca_file to the value given to ssl_ca_file if it's not nil" do
|
87
89
|
Localeapp.configuration.ssl_ca_file = '/tmp/test'
|
88
|
-
RestClient::Request.
|
90
|
+
expect(RestClient::Request).to receive(:execute).with(hash_including(:ca_file => '/tmp/test')).and_return(double('response', :code => 200))
|
89
91
|
@api_caller.call(self)
|
90
92
|
end
|
91
93
|
|
92
94
|
it "doesn't set the HTTPClient ca_file if ssl_ca_file is nil" do
|
93
95
|
Localeapp.configuration.ssl_ca_file = nil
|
94
|
-
RestClient::Request.
|
96
|
+
expect(RestClient::Request).to receive(:execute).with(hash_not_including(:ca_file => nil)).and_return(double('response', :code => 200))
|
95
97
|
@api_caller.call(self)
|
96
98
|
end
|
97
99
|
end
|
@@ -99,13 +101,13 @@ describe Localeapp::ApiCaller, "#call(object)" do
|
|
99
101
|
context "SSL version" do
|
100
102
|
it "sets the HTTPClient ssl_version to the value given to ssl_version" do
|
101
103
|
Localeapp.configuration.ssl_version = 'SSLv3'
|
102
|
-
RestClient::Request.
|
104
|
+
expect(RestClient::Request).to receive(:execute).with(hash_including(:ssl_version => 'SSLv3')).and_return(double('response', :code => 200))
|
103
105
|
@api_caller.call(self)
|
104
106
|
end
|
105
107
|
|
106
108
|
it "doesn't set the HTTPClient ssl_version if it's nil" do
|
107
109
|
Localeapp.configuration.ssl_version = nil
|
108
|
-
RestClient::Request.
|
110
|
+
expect(RestClient::Request).to receive(:execute).with(hash_including(:ssl_version => nil)).and_return(double('response', :code => 200))
|
109
111
|
@api_caller.call(self)
|
110
112
|
end
|
111
113
|
end
|
@@ -113,19 +115,19 @@ describe Localeapp::ApiCaller, "#call(object)" do
|
|
113
115
|
context "Timeout" do
|
114
116
|
it "sets the timeout to the configured timeout" do
|
115
117
|
Localeapp.configuration.timeout = 120
|
116
|
-
RestClient::Request.
|
118
|
+
expect(RestClient::Request).to receive(:execute).with(hash_including(:timeout => 120)).and_return(double('response', :code => 200))
|
117
119
|
@api_caller.call(self)
|
118
120
|
end
|
119
121
|
end
|
120
122
|
|
121
123
|
context "a GET request" do
|
122
124
|
it "makes the call to the api" do
|
123
|
-
RestClient::Request.
|
125
|
+
expect(RestClient::Request).to receive(:execute).with(hash_including(:url => @url, :method => :get)).and_return(double('response', :code => 200))
|
124
126
|
@api_caller.call(self)
|
125
127
|
end
|
126
128
|
|
127
129
|
it "adds any :headers to the api call" do
|
128
|
-
RestClient::Request.
|
130
|
+
expect(RestClient::Request).to receive(:execute).with(hash_including(:headers => { :x_localeapp_gem_version => Localeapp::VERSION, :foo => :bar })).and_return(double('response', :code => 200))
|
129
131
|
@api_caller.options[:headers] = { :foo => :bar }
|
130
132
|
@api_caller.call(self)
|
131
133
|
end
|
@@ -134,17 +136,17 @@ describe Localeapp::ApiCaller, "#call(object)" do
|
|
134
136
|
|
135
137
|
context " a POST request" do
|
136
138
|
before do
|
137
|
-
@api_caller.
|
139
|
+
allow(@api_caller).to receive(:test_endpoint).and_return([:post, @url])
|
138
140
|
@api_caller.options[:payload] = "test data"
|
139
141
|
end
|
140
142
|
|
141
143
|
it "makes the call to the api using :payload as the payload" do
|
142
|
-
RestClient::Request.
|
144
|
+
expect(RestClient::Request).to receive(:execute).with(hash_including(:url => @url, :payload => "test data", :method => :post)).and_return(double('response', :code => 200))
|
143
145
|
@api_caller.call(self)
|
144
146
|
end
|
145
147
|
|
146
148
|
it "adds any :headers to the api call" do
|
147
|
-
RestClient::Request.
|
149
|
+
expect(RestClient::Request).to receive(:execute).with(hash_including(:headers => { :x_localeapp_gem_version => Localeapp::VERSION, :foo => :bar })).and_return(double('response', :code => 200))
|
148
150
|
@api_caller.options[:headers] = { :foo => :bar }
|
149
151
|
@api_caller.call(self)
|
150
152
|
end
|
@@ -158,24 +160,24 @@ describe Localeapp::ApiCaller, "#call(object)" do
|
|
158
160
|
|
159
161
|
it "calls the :success option callback if present" do
|
160
162
|
@api_caller.options[:success] = :success
|
161
|
-
@object.
|
163
|
+
expect(@object).to receive(:success).with(kind_of(RestClient::Response))
|
162
164
|
@api_caller.call(@object)
|
163
165
|
end
|
164
166
|
|
165
167
|
it "does nothing if :success option callback not present" do
|
166
|
-
@object.
|
168
|
+
expect(@object).not_to receive(:success)
|
167
169
|
@api_caller.call(@object)
|
168
170
|
end
|
169
171
|
|
170
172
|
it "should not try the call again" do
|
171
173
|
@api_caller.max_connection_attempts = 2
|
172
174
|
@api_caller.call(@object)
|
173
|
-
@api_caller.connection_attempts.
|
175
|
+
expect(@api_caller.connection_attempts).to eq(1)
|
174
176
|
end
|
175
177
|
|
176
178
|
it "doesn't call the failure handler" do
|
177
179
|
@api_caller.options[:failure] = :failure
|
178
|
-
@object.
|
180
|
+
expect(@object).not_to receive(:failure)
|
179
181
|
@api_caller.call(@object)
|
180
182
|
end
|
181
183
|
end
|
@@ -189,22 +191,22 @@ describe Localeapp::ApiCaller, "#call(object)" do
|
|
189
191
|
it "retries call, up to value of :max_connection_attempts option" do
|
190
192
|
@api_caller.max_connection_attempts = 2
|
191
193
|
@api_caller.call(@object)
|
192
|
-
@api_caller.connection_attempts.
|
194
|
+
expect(@api_caller.connection_attempts).to eq(2)
|
193
195
|
end
|
194
196
|
|
195
197
|
it "backs off each retry attempt" do
|
196
|
-
@api_caller.
|
198
|
+
expect(@api_caller).to receive(:sleep_if_retrying)
|
197
199
|
@api_caller.call(@object)
|
198
200
|
end
|
199
201
|
|
200
202
|
it "calls the :failure option callback if present" do
|
201
203
|
@api_caller.options[:failure] = :fail
|
202
|
-
@object.
|
204
|
+
expect(@object).to receive(:fail).with(kind_of(RestClient::Response))
|
203
205
|
@api_caller.call(@object)
|
204
206
|
end
|
205
207
|
|
206
208
|
it "does nothing if :failure option callback not present" do
|
207
|
-
@object.
|
209
|
+
expect(@object).not_to receive(:fail)
|
208
210
|
@api_caller.call(@object)
|
209
211
|
end
|
210
212
|
|
@@ -232,29 +234,29 @@ describe Localeapp::ApiCaller, "#call(object)" do
|
|
232
234
|
it "fails when response is #{code} #{reason}" do
|
233
235
|
FakeWeb.register_uri(:get, @url, :body => '', :status => [code.to_s, reason])
|
234
236
|
@api_caller.options[:failure] = :fail
|
235
|
-
@object.
|
237
|
+
expect(@object).to receive(:fail)
|
236
238
|
@api_caller.call(@object)
|
237
239
|
end
|
238
240
|
end
|
239
241
|
|
240
242
|
it "handles ECONNREFUSED" do
|
241
|
-
RestClient::Request.
|
243
|
+
allow(RestClient::Request).to receive(:execute).and_raise(Errno::ECONNREFUSED)
|
242
244
|
@api_caller.options[:failure] = :fail
|
243
|
-
@object.
|
245
|
+
expect(@object).to receive(:fail)
|
244
246
|
@api_caller.call(@object)
|
245
247
|
end
|
246
248
|
|
247
249
|
it "handles RestClient::ServerBrokeConnection" do
|
248
|
-
RestClient::Request.
|
250
|
+
allow(RestClient::Request).to receive(:execute).and_raise(RestClient::ServerBrokeConnection)
|
249
251
|
@api_caller.options[:failure] = :fail
|
250
|
-
@object.
|
252
|
+
expect(@object).to receive(:fail)
|
251
253
|
@api_caller.call(@object)
|
252
254
|
end
|
253
255
|
|
254
256
|
it "handles SocketError" do
|
255
|
-
RestClient::Request.
|
257
|
+
allow(RestClient::Request).to receive(:execute).and_raise(SocketError)
|
256
258
|
@api_caller.options[:failure] = :fail
|
257
|
-
@object.
|
259
|
+
expect(@object).to receive(:fail)
|
258
260
|
@api_caller.call(@object)
|
259
261
|
end
|
260
262
|
end
|
@@ -13,34 +13,34 @@ describe Localeapp::CLI::Add, "#execute(key, *translations)" do
|
|
13
13
|
|
14
14
|
it "adds the translations to missing_translations" do
|
15
15
|
with_configuration do
|
16
|
-
Localeapp.sender.
|
16
|
+
allow(Localeapp.sender).to receive(:post_missing_translations)
|
17
17
|
do_action
|
18
18
|
end
|
19
19
|
en_missing = Localeapp.missing_translations['en']
|
20
|
-
en_missing.size.
|
21
|
-
en_missing['test.key'].locale.
|
22
|
-
en_missing['test.key'].description.
|
20
|
+
expect(en_missing.size).to eq(1)
|
21
|
+
expect(en_missing['test.key'].locale).to eq('en')
|
22
|
+
expect(en_missing['test.key'].description).to eq('test en')
|
23
23
|
es_missing = Localeapp.missing_translations['es']
|
24
|
-
es_missing.size.
|
25
|
-
es_missing['test.key'].locale.
|
26
|
-
es_missing['test.key'].description.
|
24
|
+
expect(es_missing.size).to eq(1)
|
25
|
+
expect(es_missing['test.key'].locale).to eq('es')
|
26
|
+
expect(es_missing['test.key'].description).to eq('test es')
|
27
27
|
end
|
28
28
|
|
29
29
|
it "ignores badly formed arguments" do
|
30
30
|
with_configuration do
|
31
|
-
Localeapp.sender.
|
31
|
+
allow(Localeapp.sender).to receive(:post_missing_translations)
|
32
32
|
do_action('test.key', ["en:this is fine", "esbad"])
|
33
33
|
end
|
34
|
-
Localeapp.missing_translations['en'].size.
|
35
|
-
Localeapp.missing_translations['es'].size.
|
36
|
-
Localeapp.missing_translations['esbad'].size.
|
37
|
-
@output.string.
|
38
|
-
@output.string.
|
34
|
+
expect(Localeapp.missing_translations['en'].size).to eq(1)
|
35
|
+
expect(Localeapp.missing_translations['es'].size).to eq(0)
|
36
|
+
expect(Localeapp.missing_translations['esbad'].size).to eq(0)
|
37
|
+
expect(@output.string).to include("Ignoring bad translation esbad")
|
38
|
+
expect(@output.string).to include("format should be <locale>:<translation content>")
|
39
39
|
end
|
40
40
|
|
41
41
|
it "tells the sender to send the missing translations" do
|
42
42
|
with_configuration do
|
43
|
-
Localeapp.sender.
|
43
|
+
expect(Localeapp.sender).to receive(:post_missing_translations)
|
44
44
|
do_action
|
45
45
|
end
|
46
46
|
end
|
@@ -6,21 +6,21 @@ describe Localeapp::CLI::Daemon, "#execute(options)" do
|
|
6
6
|
let(:interval) { 5 }
|
7
7
|
|
8
8
|
before do
|
9
|
-
command.
|
9
|
+
allow(command).to receive(:update_loop)
|
10
10
|
end
|
11
11
|
|
12
12
|
it "exits when interval isn't greater than 0" do
|
13
|
-
command.
|
13
|
+
expect(command).to receive(:exit_now!)
|
14
14
|
command.execute(:interval => -1)
|
15
15
|
end
|
16
16
|
|
17
17
|
it "runs the loop directly when not running in background" do
|
18
|
-
command.
|
18
|
+
expect(command).to receive(:update_loop).with(interval)
|
19
19
|
command.execute(:interval => interval)
|
20
20
|
end
|
21
21
|
|
22
22
|
it "runs the loop in the background when background options set" do
|
23
|
-
command.
|
23
|
+
expect(command).to receive(:run_in_background).with(interval)
|
24
24
|
command.execute(:interval => interval, :background => true)
|
25
25
|
end
|
26
26
|
end
|
@@ -31,8 +31,8 @@ describe Localeapp::CLI::Daemon, "#do_update" do
|
|
31
31
|
|
32
32
|
it "creates and executes and Updater" do
|
33
33
|
stub = double(:updater)
|
34
|
-
stub.
|
35
|
-
Localeapp::CLI::Update.
|
34
|
+
expect(stub).to receive(:execute)
|
35
|
+
expect(Localeapp::CLI::Update).to receive(:new).and_return(stub)
|
36
36
|
command.do_update
|
37
37
|
end
|
38
38
|
end
|