localeapp 2.1.1 → 2.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +4 -3
- data/CHANGELOG.md +12 -0
- data/README.md +9 -0
- data/bin/localeapp +141 -119
- data/features/add.feature +15 -49
- data/features/bad_command.feature +4 -3
- data/features/env_file.feature +7 -0
- data/features/environment.feature +7 -0
- data/features/help.feature +3 -4
- data/features/install.feature +19 -33
- data/features/install/write_env_file.feature +26 -0
- data/features/mv.feature +9 -5
- data/features/options/api_key.feature +6 -0
- data/features/pull.feature +15 -27
- data/features/push.feature +15 -28
- data/features/rm.feature +10 -5
- data/features/step_definitions/cli_steps.rb +13 -10
- data/features/step_definitions/execution_steps.rb +3 -0
- data/features/step_definitions/filesystem_steps.rb +12 -0
- data/features/step_definitions/output_steps.rb +10 -0
- data/features/support/env.rb +2 -2
- data/features/update.feature +20 -29
- data/lib/localeapp.rb +7 -0
- data/lib/localeapp/cli/install.rb +28 -15
- data/lib/localeapp/cli/pull.rb +2 -1
- data/lib/localeapp/cli/push.rb +2 -1
- data/lib/localeapp/cli/remove.rb +2 -1
- data/lib/localeapp/cli/rename.rb +2 -1
- data/lib/localeapp/configuration.rb +1 -1
- data/lib/localeapp/poller.rb +4 -1
- data/lib/localeapp/sender.rb +1 -0
- data/lib/localeapp/version.rb +1 -1
- data/spec/localeapp/cli/install_spec.rb +103 -63
- data/spec/localeapp/cli/pull_spec.rb +1 -1
- data/spec/localeapp/cli/push_spec.rb +1 -1
- data/spec/localeapp/cli/rename_spec.rb +1 -1
- metadata +10 -6
- data/.autotest +0 -4
- data/.rvmrc +0 -1
- data/init.rb +0 -1
@@ -1,7 +1,8 @@
|
|
1
|
-
Feature:
|
2
|
-
|
3
|
-
|
1
|
+
Feature: Unknown command
|
2
|
+
|
3
|
+
Scenario: Reports an error when given unknown command
|
4
4
|
When I run `localeapp foo`
|
5
|
+
Then the exit status must be 64
|
5
6
|
Then the output should contain:
|
6
7
|
"""
|
7
8
|
error: Unknown command 'foo'
|
@@ -0,0 +1,7 @@
|
|
1
|
+
Feature: Reading configuration from `.env' file
|
2
|
+
|
3
|
+
Scenario: Uses the API key from `.env' file
|
4
|
+
Given I have a valid project on localeapp.com with api key "MYAPIKEY"
|
5
|
+
And I have a .env file containing the api key "MYAPIKEY"
|
6
|
+
When I run `localeapp add foo.baz en:"test en content"`
|
7
|
+
Then the exit status must be 0
|
@@ -0,0 +1,7 @@
|
|
1
|
+
Feature: Reading configuration from environment
|
2
|
+
|
3
|
+
Scenario: Uses the API key set in current environment
|
4
|
+
Given I have a valid project on localeapp.com with api key "MYAPIKEY"
|
5
|
+
And I have a LOCALEAPP_API_KEY env variable set to "MYAPIKEY"
|
6
|
+
When I run `localeapp add foo.baz en:"test en content"`
|
7
|
+
Then the exit status must be 0
|
data/features/help.feature
CHANGED
@@ -1,8 +1,7 @@
|
|
1
|
-
Feature:
|
1
|
+
Feature: `help' command
|
2
2
|
|
3
|
-
Scenario:
|
4
|
-
|
5
|
-
When I run `localeapp help`
|
3
|
+
Scenario: Shows help when given `help' command
|
4
|
+
When I successfully run `localeapp help`
|
6
5
|
Then the output should contain:
|
7
6
|
"""
|
8
7
|
localeapp [global options] command [command options]
|
data/features/install.feature
CHANGED
@@ -1,9 +1,8 @@
|
|
1
|
-
Feature:
|
1
|
+
Feature: `install' command
|
2
2
|
|
3
|
-
Scenario:
|
4
|
-
In order to configure my project and check my api key is correct
|
3
|
+
Scenario: Installs rails configuration
|
5
4
|
Given I have a valid project on localeapp.com with api key "MYAPIKEY"
|
6
|
-
When I run `localeapp install MYAPIKEY`
|
5
|
+
When I successfully run `localeapp install MYAPIKEY`
|
7
6
|
Then the output should contain:
|
8
7
|
"""
|
9
8
|
Localeapp Install
|
@@ -13,14 +12,11 @@ Feature: Installation
|
|
13
12
|
Project: Test Project
|
14
13
|
Default Locale: en (English)
|
15
14
|
"""
|
16
|
-
|
17
|
-
And a file named "config/initializers/localeapp.rb" should exist
|
18
|
-
And the exit status should be 0
|
15
|
+
And a file named "config/initializers/localeapp.rb" should exist
|
19
16
|
|
20
|
-
Scenario:
|
21
|
-
In order to configure my non rails project and check my api key is correct
|
17
|
+
Scenario: Installs standalone configuration when given --standalone option
|
22
18
|
Given I have a valid project on localeapp.com with api key "MYAPIKEY"
|
23
|
-
When I run `localeapp install --standalone MYAPIKEY`
|
19
|
+
When I successfully run `localeapp install --standalone MYAPIKEY`
|
24
20
|
Then the output should contain:
|
25
21
|
"""
|
26
22
|
Localeapp Install
|
@@ -32,14 +28,11 @@ Feature: Installation
|
|
32
28
|
Writing configuration file to .localeapp/config.rb
|
33
29
|
WARNING: please create the locales directory. Your translation data will be stored there.
|
34
30
|
"""
|
35
|
-
|
36
|
-
And a file named ".localeapp/config.rb" should exist
|
37
|
-
And the exit status should be 0
|
31
|
+
And a file named ".localeapp/config.rb" should exist
|
38
32
|
|
39
|
-
Scenario:
|
40
|
-
In order to configure my public github project and check my api key is correct
|
33
|
+
Scenario: Installs standalone config and other files when given --github option
|
41
34
|
Given I have a valid project on localeapp.com with api key "MYAPIKEY"
|
42
|
-
When I run `localeapp install --github MYAPIKEY`
|
35
|
+
When I successfully run `localeapp install --github MYAPIKEY`
|
43
36
|
Then the output should contain:
|
44
37
|
"""
|
45
38
|
Localeapp Install
|
@@ -50,16 +43,13 @@ Feature: Installation
|
|
50
43
|
NOTICE: you probably want to add .localeapp to your .gitignore file
|
51
44
|
Writing configuration file to .localeapp/config.rb
|
52
45
|
"""
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
And a file named "README.md" should exist
|
57
|
-
And the exit status should be 0
|
46
|
+
And a file named ".localeapp/config.rb" should exist
|
47
|
+
And a file named ".gitignore" should exist
|
48
|
+
And a file named "README.md" should exist
|
58
49
|
|
59
|
-
Scenario:
|
60
|
-
In order to configure my project to use localeapp as a heroku addon
|
50
|
+
Scenario: Installs heroku config files when given --heroku option
|
61
51
|
Given I have a valid heroku project
|
62
|
-
When I run `localeapp install --heroku`
|
52
|
+
When I successfully run `localeapp install --heroku`
|
63
53
|
Then the output should contain:
|
64
54
|
"""
|
65
55
|
Localeapp Install
|
@@ -73,15 +63,13 @@ Feature: Installation
|
|
73
63
|
Project: Test Project
|
74
64
|
Default Locale: en (English)
|
75
65
|
"""
|
76
|
-
|
77
|
-
|
78
|
-
And the file "config/initializers/localeapp.rb" should contain "config.api_key = ENV['LOCALEAPP_API_KEY']"
|
79
|
-
And the exit status should be 0
|
66
|
+
And a file named "config/initializers/localeapp.rb" should exist
|
67
|
+
And the file "config/initializers/localeapp.rb" should contain "config.api_key = ENV['LOCALEAPP_API_KEY']"
|
80
68
|
|
81
|
-
Scenario:
|
82
|
-
In order to configure my project and check my api key is correct
|
69
|
+
Scenario: Reports an error when given incorrect API key
|
83
70
|
Given I have a valid project on localeapp.com but an incorrect api key "BADAPIKEY"
|
84
71
|
When I run `localeapp install BADAPIKEY`
|
72
|
+
Then the exit status must be 1
|
85
73
|
Then the output should contain:
|
86
74
|
"""
|
87
75
|
Localeapp Install
|
@@ -89,6 +77,4 @@ Feature: Installation
|
|
89
77
|
Checking API key: BADAPIKEY
|
90
78
|
ERROR: Project not found
|
91
79
|
"""
|
92
|
-
|
93
|
-
And a file named "config/initializers/localeapp.rb" should not exist
|
94
|
-
And the exit status should not be 0
|
80
|
+
And a file named "config/initializers/localeapp.rb" should not exist
|
@@ -0,0 +1,26 @@
|
|
1
|
+
Feature: `install' command with `-e' option
|
2
|
+
|
3
|
+
Scenario: describes `-e' option in the `install' command usage
|
4
|
+
When I successfully run `localeapp help install`
|
5
|
+
Then the output must match /-e.*--\[no-\]write-env-file.*write API key to/i
|
6
|
+
|
7
|
+
Scenario: writes API key to `.env' file when given `-e' option
|
8
|
+
Given I have a valid project on localeapp.com with api key "MYAPIKEY"
|
9
|
+
When I successfully run `localeapp install MYAPIKEY -e`
|
10
|
+
Then the file ".env" must contain exactly:
|
11
|
+
"""
|
12
|
+
LOCALEAPP_API_KEY=MYAPIKEY
|
13
|
+
"""
|
14
|
+
|
15
|
+
Scenario: preserves `.env' file content when given `-e' option
|
16
|
+
Given I have a valid project on localeapp.com with api key "MYAPIKEY"
|
17
|
+
And a file ".env" with content:
|
18
|
+
"""
|
19
|
+
FOO=BAR
|
20
|
+
"""
|
21
|
+
When I successfully run `localeapp install MYAPIKEY -e`
|
22
|
+
Then the file ".env" must contain exactly:
|
23
|
+
"""
|
24
|
+
FOO=BAR
|
25
|
+
LOCALEAPP_API_KEY=MYAPIKEY
|
26
|
+
"""
|
data/features/mv.feature
CHANGED
@@ -1,10 +1,9 @@
|
|
1
|
-
Feature:
|
1
|
+
Feature: `mv' command
|
2
2
|
|
3
|
-
Scenario:
|
4
|
-
In order to rename an existing key
|
3
|
+
Scenario: Renames the given translation
|
5
4
|
Given I have a valid project on localeapp.com with api key "MYAPIKEY" and the translation key "foo.bar"
|
6
|
-
|
7
|
-
When I run `localeapp mv foo.bar foo.baz`
|
5
|
+
And an initializer file
|
6
|
+
When I successfully run `localeapp mv foo.bar foo.baz`
|
8
7
|
Then the output should contain:
|
9
8
|
"""
|
10
9
|
Localeapp mv
|
@@ -13,3 +12,8 @@ Feature: Renaming a translation from the command line
|
|
13
12
|
Success!
|
14
13
|
"""
|
15
14
|
|
15
|
+
Scenario: Reports an error when the given API key is incorrect
|
16
|
+
Given no project exist on localeapp.com with API key "MYAPIKEY"
|
17
|
+
When I run `localeapp -k MYAPIKEY mv foo.bar foo.baz`
|
18
|
+
Then the exit status must be 70
|
19
|
+
And the output must match /error.+404/i
|
data/features/pull.feature
CHANGED
@@ -1,11 +1,11 @@
|
|
1
|
-
Feature:
|
1
|
+
Feature: `pull' command
|
2
2
|
|
3
|
-
Scenario:
|
4
|
-
In order to retrieve my translations
|
3
|
+
Scenario: Pulls translations
|
5
4
|
Given I have a translations on localeapp.com for the project with api key "MYAPIKEY"
|
6
|
-
|
7
|
-
|
8
|
-
|
5
|
+
And an initializer file
|
6
|
+
And a directory named "config/locales"
|
7
|
+
And a directory named "log"
|
8
|
+
When I successfully run `localeapp pull`
|
9
9
|
Then the output should contain:
|
10
10
|
"""
|
11
11
|
Localeapp Pull
|
@@ -15,32 +15,20 @@ Feature: Pulling all translation
|
|
15
15
|
Updating backend:
|
16
16
|
Success!
|
17
17
|
"""
|
18
|
-
|
19
|
-
And a file named "config/locales/en.yml" should exist
|
18
|
+
And a file named "config/locales/en.yml" should exist
|
20
19
|
|
21
|
-
Scenario:
|
22
|
-
In order to retreive my translations
|
20
|
+
Scenario: Reports an error when locales directory is missing
|
23
21
|
Given I have a translations on localeapp.com for the project with api key "MYAPIKEY"
|
24
|
-
|
22
|
+
And an initializer file
|
25
23
|
When I run `localeapp pull`
|
26
|
-
Then the
|
24
|
+
Then the exit status must be 1
|
25
|
+
And the output should contain:
|
27
26
|
"""
|
28
27
|
Could not write locale file, please make sure that config/locales exists and is writable
|
29
28
|
"""
|
30
29
|
|
31
|
-
Scenario:
|
32
|
-
|
33
|
-
Given I have a translations on localeapp.com for the project with api key "MYAPIKEY"
|
34
|
-
And a directory named "config/locales"
|
30
|
+
Scenario: Reports an error when the given API key is incorrect
|
31
|
+
Given no project exist on localeapp.com with API key "MYAPIKEY"
|
35
32
|
When I run `localeapp -k MYAPIKEY pull`
|
36
|
-
Then the
|
37
|
-
|
38
|
-
Localeapp Pull
|
39
|
-
|
40
|
-
Fetching translations:
|
41
|
-
Success!
|
42
|
-
Updating backend:
|
43
|
-
Success!
|
44
|
-
"""
|
45
|
-
And help should not be displayed
|
46
|
-
And a file named "config/locales/en.yml" should exist
|
33
|
+
Then the exit status must be 70
|
34
|
+
And the output must match /error.+404/i
|
data/features/push.feature
CHANGED
@@ -1,11 +1,10 @@
|
|
1
|
-
Feature:
|
1
|
+
Feature: `push' command
|
2
2
|
|
3
|
-
Scenario:
|
4
|
-
In order to send my translations
|
3
|
+
Scenario: Pushes translations in a specific locales file
|
5
4
|
Given I have a valid project on localeapp.com with api key "MYAPIKEY"
|
6
|
-
|
7
|
-
|
8
|
-
When I run `localeapp push config/locales/en.yml`
|
5
|
+
And an initializer file
|
6
|
+
And an empty file named "config/locales/en.yml"
|
7
|
+
When I successfully run `localeapp push config/locales/en.yml`
|
9
8
|
Then the output should contain:
|
10
9
|
"""
|
11
10
|
Localeapp Push
|
@@ -15,15 +14,13 @@ Feature: Pushing existing translation to localeapp
|
|
15
14
|
|
16
15
|
config/locales/en.yml queued for processing.
|
17
16
|
"""
|
18
|
-
And help should not be displayed
|
19
17
|
|
20
|
-
Scenario:
|
21
|
-
In order to send my translations
|
18
|
+
Scenario: Pushes all locales within given directory
|
22
19
|
Given I have a valid project on localeapp.com with api key "MYAPIKEY"
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
When I run `localeapp push config/locales`
|
20
|
+
And an initializer file
|
21
|
+
And an empty file named "config/locales/en.yml"
|
22
|
+
And an empty file named "config/locales/es.yml"
|
23
|
+
When I successfully run `localeapp push config/locales`
|
27
24
|
Then the output should contain:
|
28
25
|
"""
|
29
26
|
Localeapp Push
|
@@ -38,20 +35,10 @@ Feature: Pushing existing translation to localeapp
|
|
38
35
|
|
39
36
|
config/locales/es.yml queued for processing.
|
40
37
|
"""
|
41
|
-
And help should not be displayed
|
42
38
|
|
43
|
-
Scenario:
|
44
|
-
|
45
|
-
|
46
|
-
And an empty file named "config/locales/en.yml"
|
39
|
+
Scenario: Reports an error when the given API key is incorrect
|
40
|
+
Given no project exist on localeapp.com with API key "MYAPIKEY"
|
41
|
+
And an empty file named "config/locales/en.yml"
|
47
42
|
When I run `localeapp -k MYAPIKEY push config/locales/en.yml`
|
48
|
-
Then the
|
49
|
-
|
50
|
-
Localeapp Push
|
51
|
-
|
52
|
-
Pushing file en.yml:
|
53
|
-
Success!
|
54
|
-
|
55
|
-
config/locales/en.yml queued for processing.
|
56
|
-
"""
|
57
|
-
And help should not be displayed
|
43
|
+
Then the exit status must be 70
|
44
|
+
And the output must match /error.+404/i
|
data/features/rm.feature
CHANGED
@@ -1,10 +1,9 @@
|
|
1
|
-
Feature:
|
1
|
+
Feature: `rm' command
|
2
2
|
|
3
|
-
Scenario:
|
4
|
-
In order to remove an existing key
|
3
|
+
Scenario: Removes the given key
|
5
4
|
Given I have a valid project on localeapp.com with api key "MYAPIKEY" and the translation key "foo.bar"
|
6
|
-
|
7
|
-
When I run `localeapp rm foo.bar`
|
5
|
+
And an initializer file
|
6
|
+
When I successfully run `localeapp rm foo.bar`
|
8
7
|
Then the output should contain:
|
9
8
|
"""
|
10
9
|
Localeapp rm
|
@@ -12,3 +11,9 @@ Feature: Removing a translation from the command line
|
|
12
11
|
Remove key: foo.bar
|
13
12
|
Success!
|
14
13
|
"""
|
14
|
+
|
15
|
+
Scenario: Reports an error when the given API key is incorrect
|
16
|
+
Given no project exist on localeapp.com with API key "MYAPIKEY"
|
17
|
+
When I run `localeapp -k MYAPIKEY rm foo.bar`
|
18
|
+
Then the exit status must be 70
|
19
|
+
And the output must match /error.+404/i
|
@@ -1,11 +1,23 @@
|
|
1
1
|
require 'net/http'
|
2
2
|
require 'time'
|
3
3
|
|
4
|
+
Given /^no project exist on localeapp\.com with API key "([^"]+)"$/ do |api_key|
|
5
|
+
add_fake_web_uri :any, /\Ahttps:\/\/api\.localeapp\.com\/.*/,
|
6
|
+
[404, "Not Found"],
|
7
|
+
""
|
8
|
+
end
|
9
|
+
|
4
10
|
When /^I have a valid project on localeapp\.com with api key "([^"]*)"$/ do |api_key|
|
5
11
|
uri = "https://api.localeapp.com/v1/projects/#{api_key}.json"
|
6
12
|
body = valid_project_data.to_json
|
7
13
|
add_fake_web_uri(:get, uri, ['200', 'OK'], body)
|
8
|
-
add_fake_web_uri(
|
14
|
+
add_fake_web_uri(
|
15
|
+
:post,
|
16
|
+
"https://api.localeapp.com/v1/projects/#{api_key}/import/",
|
17
|
+
%w[202 OK],
|
18
|
+
JSON.generate(id: 12345),
|
19
|
+
"Content-Type" => "application/json; charset=utf-8"
|
20
|
+
)
|
9
21
|
add_fake_web_uri(:post, "https://api.localeapp.com/v1/projects/#{api_key}/translations/missing.json", ["202", "OK"], '')
|
10
22
|
end
|
11
23
|
|
@@ -71,15 +83,6 @@ When /^an initializer file$/ do
|
|
71
83
|
}
|
72
84
|
end
|
73
85
|
|
74
|
-
When /^help should not be displayed$/ do
|
75
|
-
steps %Q{
|
76
|
-
And the output should not contain:
|
77
|
-
"""
|
78
|
-
Usage: localeapp COMMAND [options]
|
79
|
-
"""
|
80
|
-
}
|
81
|
-
end
|
82
|
-
|
83
86
|
When /^the timestamp is (\d+) months? old$/ do |months|
|
84
87
|
@timestamp = Time.now.to_i - months.to_i * 2592000
|
85
88
|
steps %Q{
|
@@ -0,0 +1,12 @@
|
|
1
|
+
Given /^a file "([^"]+)" with content:$/ do |path, content|
|
2
|
+
cd ?. do
|
3
|
+
File.write(path, content + $/)
|
4
|
+
end
|
5
|
+
end
|
6
|
+
|
7
|
+
|
8
|
+
Then /^the file "([^"]+)" must contain exactly:$/ do |path, content|
|
9
|
+
cd ?. do
|
10
|
+
expect(File.read(path)).to eq content + $/
|
11
|
+
end
|
12
|
+
end
|
@@ -0,0 +1,10 @@
|
|
1
|
+
Then /^the output must match \/([^\/]+)\/([imx]*)$/ do |pattern, options|
|
2
|
+
regexp = Regexp.new(pattern, options.each_char.inject(0) do |m, e|
|
3
|
+
m | case e
|
4
|
+
when ?i then Regexp::IGNORECASE
|
5
|
+
when ?m then Regexp::MULTILINE
|
6
|
+
when ?x then Regexp::EXTENDED
|
7
|
+
end
|
8
|
+
end)
|
9
|
+
expect(last_command_started.output).to match regexp
|
10
|
+
end
|
data/features/support/env.rb
CHANGED
@@ -6,7 +6,7 @@ World(LocaleappIntegrationData)
|
|
6
6
|
|
7
7
|
module FakeWebHelper
|
8
8
|
def add_fake_web_uri(method, uri, status, body, headers = {})
|
9
|
-
fakes =
|
9
|
+
fakes = YAML.load(aruba.environment['FAKE_WEB_FAKES'] || '[]')
|
10
10
|
fakes << {
|
11
11
|
'method' => method,
|
12
12
|
'uri' => uri,
|
@@ -14,7 +14,7 @@ module FakeWebHelper
|
|
14
14
|
'body' => body,
|
15
15
|
'headers' => headers
|
16
16
|
}
|
17
|
-
set_environment_variable 'FAKE_WEB_FAKES', fakes
|
17
|
+
set_environment_variable 'FAKE_WEB_FAKES', YAML.dump(fakes)
|
18
18
|
end
|
19
19
|
end
|
20
20
|
World(FakeWebHelper)
|
data/features/update.feature
CHANGED
@@ -1,38 +1,29 @@
|
|
1
|
-
Feature:
|
1
|
+
Feature: `update' command
|
2
2
|
|
3
|
-
Scenario:
|
4
|
-
In order to receive the translations that have been updated since the last check
|
3
|
+
Scenario: Fetches translations
|
5
4
|
Given I have a valid project on localeapp.com with api key "MYAPIKEY"
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
When I run `localeapp update`
|
5
|
+
And an initializer file
|
6
|
+
And the timestamp is 2 months old
|
7
|
+
And new translations for the api key "MYAPIKEY" since last fetch with time "60" seconds later
|
8
|
+
And a directory named "config/locales"
|
9
|
+
When I successfully run `localeapp update`
|
11
10
|
Then translations should be fetched since last fetch only
|
12
|
-
|
13
|
-
And a file named "config/locales/en.yml" should exist
|
14
|
-
# check the content here
|
15
|
-
# and the localeapp.yml file
|
11
|
+
And a file named "config/locales/en.yml" should exist
|
16
12
|
|
17
|
-
Scenario:
|
18
|
-
In order to receive the translations that have been updated since the last check
|
13
|
+
Scenario: Reports an error when timestamp is too old
|
19
14
|
Given I have a valid project on localeapp.com with api key "MYAPIKEY"
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
When I run `localeapp -k MYAPIKEY update`
|
24
|
-
Then translations should be fetched since last fetch only
|
25
|
-
And help should not be displayed
|
26
|
-
And a file named "config/locales/en.yml" should exist
|
27
|
-
|
28
|
-
Scenario: Running update with a too old timestamp
|
29
|
-
In order to receive the translations that have been updated since the last check
|
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
|
-
When I run `localeapp update`
|
15
|
+
And an initializer file
|
16
|
+
And the timestamp is 8 months old
|
17
|
+
When I successfully run `localeapp update`
|
34
18
|
Then the output should contain:
|
35
19
|
"""
|
36
20
|
Timestamp is missing or too old
|
37
21
|
"""
|
38
|
-
|
22
|
+
|
23
|
+
Scenario: Reports an error when the given API key is incorrect
|
24
|
+
Given no project exist on localeapp.com with API key "MYAPIKEY"
|
25
|
+
And the timestamp is 2 months old
|
26
|
+
And a directory named "config/locales"
|
27
|
+
When I run `localeapp -k MYAPIKEY update`
|
28
|
+
Then the exit status must be 70
|
29
|
+
And the output must match /error.+404/i
|