ruby-lokalise-api 2.9.0 → 4.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 +4 -4
- data/.github/CODE_OF_CONDUCT.md +1 -1
- data/.github/CONTRIBUTING.md +9 -2
- data/CHANGELOG.md +1 -75
- data/LICENSE +9 -18
- data/README.md +18 -1734
- data/lib/ruby-lokalise-api.rb +2 -0
- data/lib/ruby-lokalise-api/client.rb +16 -4
- data/lib/ruby-lokalise-api/collections/base.rb +5 -3
- data/lib/ruby-lokalise-api/collections/queued_process.rb +15 -0
- data/lib/ruby-lokalise-api/connection.rb +1 -1
- data/lib/ruby-lokalise-api/data/attributes.json +29 -13
- data/lib/ruby-lokalise-api/request.rb +8 -1
- data/lib/ruby-lokalise-api/resources/base.rb +55 -25
- data/lib/ruby-lokalise-api/resources/branch.rb +1 -1
- data/lib/ruby-lokalise-api/resources/contributor.rb +1 -1
- data/lib/ruby-lokalise-api/resources/custom_translation_status.rb +1 -1
- data/lib/ruby-lokalise-api/resources/file.rb +3 -1
- data/lib/ruby-lokalise-api/resources/key.rb +1 -1
- data/lib/ruby-lokalise-api/resources/key_comment.rb +1 -1
- data/lib/ruby-lokalise-api/resources/order.rb +2 -0
- data/lib/ruby-lokalise-api/resources/payment_card.rb +1 -1
- data/lib/ruby-lokalise-api/resources/project.rb +2 -2
- data/lib/ruby-lokalise-api/resources/project_language.rb +1 -1
- data/lib/ruby-lokalise-api/resources/queued_process.rb +18 -0
- data/lib/ruby-lokalise-api/resources/screenshot.rb +1 -1
- data/lib/ruby-lokalise-api/resources/snapshot.rb +3 -1
- data/lib/ruby-lokalise-api/resources/task.rb +1 -1
- data/lib/ruby-lokalise-api/resources/team_user.rb +1 -1
- data/lib/ruby-lokalise-api/resources/team_user_group.rb +2 -1
- data/lib/ruby-lokalise-api/resources/translation.rb +1 -1
- data/lib/ruby-lokalise-api/resources/translation_provider.rb +3 -0
- data/lib/ruby-lokalise-api/resources/webhook.rb +11 -3
- data/lib/ruby-lokalise-api/rest/comments.rb +5 -5
- data/lib/ruby-lokalise-api/rest/contributors.rb +5 -5
- data/lib/ruby-lokalise-api/rest/custom_translation_statuses.rb +6 -6
- data/lib/ruby-lokalise-api/rest/files.rb +3 -3
- data/lib/ruby-lokalise-api/rest/keys.rb +7 -7
- data/lib/ruby-lokalise-api/rest/languages.rb +6 -6
- data/lib/ruby-lokalise-api/rest/payment_cards.rb +3 -3
- data/lib/ruby-lokalise-api/rest/projects.rb +6 -6
- data/lib/ruby-lokalise-api/rest/queued_processes.rb +26 -0
- data/lib/ruby-lokalise-api/rest/screenshots.rb +5 -5
- data/lib/ruby-lokalise-api/rest/snapshots.rb +4 -4
- data/lib/ruby-lokalise-api/rest/tasks.rb +5 -5
- data/lib/ruby-lokalise-api/rest/team_user_group.rb +4 -4
- data/lib/ruby-lokalise-api/rest/team_users.rb +4 -4
- data/lib/ruby-lokalise-api/rest/teams.rb +1 -1
- data/lib/ruby-lokalise-api/rest/translation_providers.rb +2 -2
- data/lib/ruby-lokalise-api/rest/translations.rb +3 -3
- data/lib/ruby-lokalise-api/rest/webhooks.rb +16 -5
- data/lib/ruby-lokalise-api/utils/attribute_helpers.rb +11 -6
- data/lib/ruby-lokalise-api/version.rb +1 -1
- data/ruby-lokalise-api.gemspec +7 -7
- data/spec/lib/ruby-lokalise-api/custom_json_parser_spec.rb +4 -4
- data/spec/lib/ruby-lokalise-api/error_spec.rb +8 -0
- data/spec/lib/ruby-lokalise-api/rest/branches_spec.rb +12 -0
- data/spec/lib/ruby-lokalise-api/rest/comments_spec.rb +12 -0
- data/spec/lib/ruby-lokalise-api/rest/contributors_spec.rb +12 -0
- data/spec/lib/ruby-lokalise-api/rest/custom_translation_statuses_spec.rb +12 -0
- data/spec/lib/ruby-lokalise-api/rest/files_spec.rb +17 -9
- data/spec/lib/ruby-lokalise-api/rest/keys_spec.rb +38 -20
- data/spec/lib/ruby-lokalise-api/rest/languages_spec.rb +12 -0
- data/spec/lib/ruby-lokalise-api/rest/orders_spec.rb +12 -0
- data/spec/lib/ruby-lokalise-api/rest/payment_cards_spec.rb +19 -5
- data/spec/lib/ruby-lokalise-api/rest/projects_spec.rb +12 -0
- data/spec/lib/ruby-lokalise-api/rest/queued_processes_spec.rb +57 -0
- data/spec/lib/ruby-lokalise-api/rest/screenshots_spec.rb +12 -0
- data/spec/lib/ruby-lokalise-api/rest/snapshots_spec.rb +25 -0
- data/spec/lib/ruby-lokalise-api/rest/tasks_spec.rb +20 -7
- data/spec/lib/ruby-lokalise-api/rest/team_user_groups_spec.rb +84 -0
- data/spec/lib/ruby-lokalise-api/rest/team_users_spec.rb +13 -0
- data/spec/lib/ruby-lokalise-api/rest/translation_providers_spec.rb +5 -0
- data/spec/lib/ruby-lokalise-api/rest/translations_spec.rb +12 -0
- data/spec/lib/ruby-lokalise-api/rest/webhooks_spec.rb +50 -0
- metadata +25 -20
data/ruby-lokalise-api.gemspec
CHANGED
@@ -10,9 +10,9 @@ Gem::Specification.new do |spec|
|
|
10
10
|
spec.summary = 'Ruby interface to the Lokalise API'
|
11
11
|
spec.description = 'Opinionated Ruby client for the Lokalise platform API allowing to work with translations, projects, users and other resources as with Ruby objects.'
|
12
12
|
spec.homepage = 'https://github.com/lokalise/ruby-lokalise-api'
|
13
|
-
spec.license = '
|
13
|
+
spec.license = 'BSD-3-Clause'
|
14
14
|
spec.platform = Gem::Platform::RUBY
|
15
|
-
spec.required_ruby_version = '>= 2.
|
15
|
+
spec.required_ruby_version = '>= 2.5.0'
|
16
16
|
|
17
17
|
spec.files = Dir['README.md', 'LICENSE',
|
18
18
|
'CHANGELOG.md', 'lib/**/*.rb', 'lib/ruby-lokalise-api/data/attributes.json',
|
@@ -24,16 +24,16 @@ Gem::Specification.new do |spec|
|
|
24
24
|
|
25
25
|
spec.add_dependency 'addressable', '~> 2.5'
|
26
26
|
spec.add_dependency 'faraday', '~> 1.0'
|
27
|
-
spec.add_dependency 'json', '
|
27
|
+
spec.add_dependency 'json', '>= 1.8.0'
|
28
28
|
|
29
29
|
spec.add_development_dependency 'codecov', '~> 0.1'
|
30
30
|
spec.add_development_dependency 'dotenv', '~> 2.5'
|
31
|
-
spec.add_development_dependency 'oj', '~> 3.
|
31
|
+
spec.add_development_dependency 'oj', '~> 3.10'
|
32
32
|
spec.add_development_dependency 'rake', '~> 13.0'
|
33
33
|
spec.add_development_dependency 'rspec', '~> 3.6'
|
34
|
-
spec.add_development_dependency 'rubocop', '~>
|
34
|
+
spec.add_development_dependency 'rubocop', '~> 1.6'
|
35
35
|
spec.add_development_dependency 'rubocop-performance', '~> 1.5'
|
36
|
-
spec.add_development_dependency 'rubocop-rspec', '~>
|
36
|
+
spec.add_development_dependency 'rubocop-rspec', '~> 2.0'
|
37
37
|
spec.add_development_dependency 'simplecov', '~> 0.16'
|
38
|
-
spec.add_development_dependency 'vcr', '~>
|
38
|
+
spec.add_development_dependency 'vcr', '~> 6.0'
|
39
39
|
end
|
@@ -27,7 +27,7 @@ RSpec.describe Lokalise::JsonHandler do
|
|
27
27
|
'{":name":"rspec proj",":description":"demo project for rspec"}'
|
28
28
|
end
|
29
29
|
|
30
|
-
# rubocop:disable RSpec/LeakyConstantDeclaration
|
30
|
+
# rubocop:disable RSpec/LeakyConstantDeclaration, Lint/ConstantDefinitionInBlock
|
31
31
|
before do
|
32
32
|
module Lokalise
|
33
33
|
module JsonHandler
|
@@ -55,10 +55,10 @@ RSpec.describe Lokalise::JsonHandler do
|
|
55
55
|
end
|
56
56
|
end
|
57
57
|
end
|
58
|
-
# rubocop:enable RSpec/LeakyConstantDeclaration
|
58
|
+
# rubocop:enable RSpec/LeakyConstantDeclaration, Lint/ConstantDefinitionInBlock
|
59
59
|
|
60
60
|
it 'allows to customize #load' do
|
61
|
-
|
61
|
+
allow(Oj).to receive(:load).and_return(loaded_json)
|
62
62
|
expect(JSON).not_to receive(:parse)
|
63
63
|
projects = VCR.use_cassette('all_projects_pagination') do
|
64
64
|
test_client.projects limit: 1, page: 2
|
@@ -70,7 +70,7 @@ RSpec.describe Lokalise::JsonHandler do
|
|
70
70
|
end
|
71
71
|
|
72
72
|
it 'allows to customize #dump' do
|
73
|
-
|
73
|
+
allow(Oj).to receive(:dump).and_return(dumped_json)
|
74
74
|
expect(JSON).not_to receive(:dump)
|
75
75
|
project = VCR.use_cassette('new_project') do
|
76
76
|
test_client.create_project name: 'rspec proj', description: 'demo project for rspec'
|
@@ -7,6 +7,14 @@ RSpec.describe Lokalise::Error do
|
|
7
7
|
|
8
8
|
after { Lokalise.reset_client! }
|
9
9
|
|
10
|
+
it 'raises a generic error when the code is unknown' do
|
11
|
+
expect do
|
12
|
+
VCR.use_cassette('error_unknown_code') do
|
13
|
+
get 'projects', Lokalise.client('invalid')
|
14
|
+
end
|
15
|
+
end.to raise_error(described_class)
|
16
|
+
end
|
17
|
+
|
10
18
|
it 'raises BadRequest when API token is invalid' do
|
11
19
|
expect do
|
12
20
|
VCR.use_cassette('error_invalid_token') do
|
@@ -40,6 +40,18 @@ RSpec.describe Lokalise::Client do
|
|
40
40
|
expect(branch.created_by_email).to eq('bodrovis@protonmail.com')
|
41
41
|
end
|
42
42
|
|
43
|
+
specify '#reload_data' do
|
44
|
+
branch = VCR.use_cassette('branch') do
|
45
|
+
test_client.branch project_id, branch_id
|
46
|
+
end
|
47
|
+
|
48
|
+
reloaded_branch = VCR.use_cassette('branch') do
|
49
|
+
branch.reload_data
|
50
|
+
end
|
51
|
+
|
52
|
+
expect(reloaded_branch.branch_id).to eq(branch.branch_id)
|
53
|
+
end
|
54
|
+
|
43
55
|
specify '#create_branch' do
|
44
56
|
branch = VCR.use_cassette('create_branch') do
|
45
57
|
test_client.create_branch project_id, name: 'ruby-branch'
|
@@ -49,6 +49,18 @@ RSpec.describe Lokalise::Client do
|
|
49
49
|
expect(comment.added_at_timestamp).to eq(1_544_380_904)
|
50
50
|
end
|
51
51
|
|
52
|
+
specify '#reload_data' do
|
53
|
+
comment = VCR.use_cassette('comment') do
|
54
|
+
test_client.comment project_id, another_key_id, '800746'
|
55
|
+
end
|
56
|
+
|
57
|
+
reloaded_comment = VCR.use_cassette('comment') do
|
58
|
+
comment.reload_data
|
59
|
+
end
|
60
|
+
|
61
|
+
expect(reloaded_comment.key_id).to eq(comment.key_id)
|
62
|
+
end
|
63
|
+
|
52
64
|
specify '#create_comments' do
|
53
65
|
comments = VCR.use_cassette('create_comments') do
|
54
66
|
test_client.create_comments project_id, key_id, [
|
@@ -48,6 +48,18 @@ RSpec.describe Lokalise::Client do
|
|
48
48
|
expect(contributor.created_at_timestamp).to eq(1_534_865_725)
|
49
49
|
end
|
50
50
|
|
51
|
+
specify '#reload_data' do
|
52
|
+
contributor = VCR.use_cassette('contributor') do
|
53
|
+
test_client.contributor project_id, '20181'
|
54
|
+
end
|
55
|
+
|
56
|
+
reloaded_contributor = VCR.use_cassette('contributor') do
|
57
|
+
contributor.reload_data
|
58
|
+
end
|
59
|
+
|
60
|
+
expect(reloaded_contributor.user_id).to eq(contributor.user_id)
|
61
|
+
end
|
62
|
+
|
51
63
|
specify '#create_contributors' do
|
52
64
|
contributor = VCR.use_cassette('create_contributors') do
|
53
65
|
test_client.create_contributors project_id,
|
@@ -43,6 +43,18 @@ RSpec.describe Lokalise::Client do
|
|
43
43
|
expect(status.color).to eq('#0079bf')
|
44
44
|
end
|
45
45
|
|
46
|
+
specify '#reload_data' do
|
47
|
+
status = VCR.use_cassette('translation_status') do
|
48
|
+
test_client.translation_status project_id, status_id
|
49
|
+
end
|
50
|
+
|
51
|
+
reloaded_status = VCR.use_cassette('translation_status') do
|
52
|
+
status.reload_data
|
53
|
+
end
|
54
|
+
|
55
|
+
expect(reloaded_status.status_id).to eq(status.status_id)
|
56
|
+
end
|
57
|
+
|
46
58
|
specify '#create_translation_status' do
|
47
59
|
title = 'Reviewed by doctors'
|
48
60
|
color = '#f2d600'
|
@@ -35,8 +35,8 @@ RSpec.describe Lokalise::Client do
|
|
35
35
|
specify '#download_files' do
|
36
36
|
response = VCR.use_cassette('download_files') do
|
37
37
|
test_client.download_files project_id,
|
38
|
-
|
39
|
-
|
38
|
+
format: 'po',
|
39
|
+
original_filenames: true
|
40
40
|
end
|
41
41
|
|
42
42
|
expect(response['project_id']).to eq(project_id)
|
@@ -44,15 +44,23 @@ RSpec.describe Lokalise::Client do
|
|
44
44
|
end
|
45
45
|
|
46
46
|
specify '#upload_file' do
|
47
|
-
|
47
|
+
process = VCR.use_cassette('upload_file') do
|
48
48
|
test_client.upload_file project_id,
|
49
|
-
|
50
|
-
|
51
|
-
|
49
|
+
data: 'ZnI6DQogIHRlc3Q6IHRyYW5zbGF0aW9u',
|
50
|
+
filename: 'rspec_async.yml',
|
51
|
+
lang_iso: 'ru'
|
52
52
|
end
|
53
53
|
|
54
|
-
expect(
|
55
|
-
expect(
|
56
|
-
expect(
|
54
|
+
expect(process).to be_an_instance_of(Lokalise::Resources::QueuedProcess)
|
55
|
+
expect(process.process_id).to eq('85c42bf5eff44648ca2f01f9db67b7d306a2f282')
|
56
|
+
expect(process.status).to eq('queued')
|
57
|
+
|
58
|
+
reloaded_process = VCR.use_cassette('upload_file_queued_reload') do
|
59
|
+
process.reload_data
|
60
|
+
end
|
61
|
+
|
62
|
+
expect(reloaded_process.process_id).to eq(process.process_id)
|
63
|
+
expect(reloaded_process.status).to eq('finished')
|
64
|
+
expect(reloaded_process.details['files'][0]['status']).to eq('finished')
|
57
65
|
end
|
58
66
|
end
|
@@ -11,51 +11,69 @@ RSpec.describe Lokalise::Client do
|
|
11
11
|
test_client.keys project_id
|
12
12
|
end.collection
|
13
13
|
|
14
|
-
expect(keys.count).to eq(
|
14
|
+
expect(keys.count).to eq(8)
|
15
15
|
end
|
16
16
|
|
17
17
|
it 'supports pagination' do
|
18
18
|
keys = VCR.use_cassette('all_keys_pagination') do
|
19
|
-
test_client.keys project_id, limit:
|
19
|
+
test_client.keys project_id, limit: 2, page: 3
|
20
20
|
end
|
21
21
|
|
22
|
-
expect(keys.collection.count).to eq(
|
23
|
-
expect(keys.total_results).to eq(
|
24
|
-
expect(keys.total_pages).to eq(
|
25
|
-
expect(keys.results_per_page).to eq(
|
26
|
-
expect(keys.current_page).to eq(
|
22
|
+
expect(keys.collection.count).to eq(2)
|
23
|
+
expect(keys.total_results).to eq(8)
|
24
|
+
expect(keys.total_pages).to eq(4)
|
25
|
+
expect(keys.results_per_page).to eq(2)
|
26
|
+
expect(keys.current_page).to eq(3)
|
27
27
|
|
28
|
-
expect(keys.next_page?).to eq(
|
29
|
-
expect(keys.last_page?).to eq(
|
30
|
-
expect(keys.prev_page?).to eq(
|
31
|
-
expect(keys.first_page?).to eq(
|
28
|
+
expect(keys.next_page?).to eq(true)
|
29
|
+
expect(keys.last_page?).to eq(false)
|
30
|
+
expect(keys.prev_page?).to eq(true)
|
31
|
+
expect(keys.first_page?).to eq(false)
|
32
32
|
end
|
33
33
|
end
|
34
34
|
|
35
35
|
specify '#key' do
|
36
36
|
key = VCR.use_cassette('key') do
|
37
|
-
test_client.key project_id,
|
37
|
+
test_client.key project_id, 44_596_066, disable_references: 0
|
38
38
|
end
|
39
39
|
|
40
|
-
expect(key.key_id).to eq(
|
41
|
-
expect(key.
|
42
|
-
expect(key.
|
43
|
-
expect(key.
|
40
|
+
expect(key.key_id).to eq(44_596_066)
|
41
|
+
expect(key.project_id).to eq(project_id)
|
42
|
+
expect(key.branch).to eq('master')
|
43
|
+
expect(key.created_at).to eq('2020-05-11 11:20:33 (Etc/UTC)')
|
44
|
+
expect(key.created_at_timestamp).to eq(1_589_196_033)
|
45
|
+
expect(key.key_name['ios']).to eq('static_pages:index:welcome')
|
46
|
+
expect(key.filenames['web']).to eq('%LANG_ISO%.yml')
|
44
47
|
expect(key.description).to eq('')
|
45
48
|
expect(key.platforms).to eq(%w[web])
|
46
49
|
expect(key.tags).to eq([])
|
47
|
-
expect(key.comments
|
48
|
-
expect(key.comments[1]['comment_id']).to eq(800_632)
|
50
|
+
expect(key.comments).to eq([])
|
49
51
|
expect(key.screenshots).to eq([])
|
50
52
|
expect(key.translations.first['modified_by_email']).to eq('bodrovis@protonmail.com')
|
51
53
|
expect(key.is_plural).to eq(false)
|
52
54
|
expect(key.plural_name).to eq('')
|
53
|
-
expect(key.is_hidden).to eq(
|
55
|
+
expect(key.is_hidden).to eq(true)
|
54
56
|
expect(key.is_archived).to eq(false)
|
55
57
|
expect(key.context).to eq('')
|
58
|
+
expect(key.base_words).to eq(1)
|
56
59
|
expect(key.char_limit).to eq(0)
|
57
60
|
expect(key.custom_attributes).to eq('')
|
58
|
-
expect(key.
|
61
|
+
expect(key.modified_at).to eq('2020-05-11 11:20:33 (Etc/UTC)')
|
62
|
+
expect(key.modified_at_timestamp).to eq(1_589_196_033)
|
63
|
+
expect(key.translations_modified_at).to eq('2020-05-15 10:44:42 (Etc/UTC)')
|
64
|
+
expect(key.translations_modified_at_timestamp).to eq(1_589_539_482)
|
65
|
+
end
|
66
|
+
|
67
|
+
specify '#reload_data' do
|
68
|
+
key = VCR.use_cassette('key') do
|
69
|
+
test_client.key project_id, 44_596_066, disable_references: 0
|
70
|
+
end
|
71
|
+
|
72
|
+
reloaded_key = VCR.use_cassette('key') do
|
73
|
+
key.reload_data disable_references: 0
|
74
|
+
end
|
75
|
+
|
76
|
+
expect(reloaded_key.key_id).to eq(key.key_id)
|
59
77
|
end
|
60
78
|
|
61
79
|
specify '#create_keys' do
|
@@ -63,6 +63,18 @@ RSpec.describe Lokalise::Client do
|
|
63
63
|
expect(language.plural_forms).to eq(%w[one other])
|
64
64
|
end
|
65
65
|
|
66
|
+
specify '#reload_data' do
|
67
|
+
language = VCR.use_cassette('language') do
|
68
|
+
test_client.language project_id, language_id
|
69
|
+
end
|
70
|
+
|
71
|
+
reloaded_language = VCR.use_cassette('language') do
|
72
|
+
language.reload_data
|
73
|
+
end
|
74
|
+
|
75
|
+
expect(reloaded_language.lang_id).to eq(language.lang_id)
|
76
|
+
end
|
77
|
+
|
66
78
|
specify '#create_languages' do
|
67
79
|
language = VCR.use_cassette('create_languages') do
|
68
80
|
test_client.create_languages project_id, lang_iso: 'ab', custom_name: 'rspec lang'
|
@@ -54,6 +54,18 @@ RSpec.describe Lokalise::Client do
|
|
54
54
|
expect(order.total).to eq(0.07)
|
55
55
|
end
|
56
56
|
|
57
|
+
specify '#reload_data' do
|
58
|
+
order = VCR.use_cassette('order') do
|
59
|
+
test_client.order team_id, order_id
|
60
|
+
end
|
61
|
+
|
62
|
+
reloaded_order = VCR.use_cassette('order') do
|
63
|
+
order.reload_data
|
64
|
+
end
|
65
|
+
|
66
|
+
expect(reloaded_order.order_id).to eq(order.order_id)
|
67
|
+
end
|
68
|
+
|
57
69
|
specify '#create_order' do
|
58
70
|
order = VCR.use_cassette('create_order') do
|
59
71
|
test_client.create_order team_id,
|
@@ -7,9 +7,10 @@ RSpec.describe Lokalise::Client do
|
|
7
7
|
it 'returns all payment cards' do
|
8
8
|
cards = VCR.use_cassette('all_payment_cards') do
|
9
9
|
test_client.payment_cards
|
10
|
-
end
|
10
|
+
end
|
11
11
|
|
12
|
-
|
12
|
+
expect(cards.user_id).to eq(20_181)
|
13
|
+
card = cards.collection.first
|
13
14
|
expect(card.card_id).to eq(1774)
|
14
15
|
expect(card.last4).to eq('0358')
|
15
16
|
end
|
@@ -35,9 +36,9 @@ RSpec.describe Lokalise::Client do
|
|
35
36
|
specify '#create_payment_card' do
|
36
37
|
card = VCR.use_cassette('new_payment_card') do
|
37
38
|
test_client.create_payment_card number: '4242424242424242',
|
38
|
-
|
39
|
-
|
40
|
-
|
39
|
+
cvc: '123',
|
40
|
+
exp_month: 1,
|
41
|
+
exp_year: 2030
|
41
42
|
end
|
42
43
|
|
43
44
|
expect(card.card_id).to eq(card_id)
|
@@ -49,12 +50,25 @@ RSpec.describe Lokalise::Client do
|
|
49
50
|
test_client.payment_card card_id
|
50
51
|
end
|
51
52
|
|
53
|
+
expect(card.user_id).to eq(20_181)
|
52
54
|
expect(card.card_id).to eq(card_id)
|
53
55
|
expect(card.brand).to eq('Visa')
|
54
56
|
expect(card.last4).to eq('4242')
|
55
57
|
expect(card.created_at).to eq('2019-03-19 17:01:22 (Etc/UTC)')
|
56
58
|
end
|
57
59
|
|
60
|
+
specify '#reload_data' do
|
61
|
+
card = VCR.use_cassette('payment_card') do
|
62
|
+
test_client.payment_card card_id
|
63
|
+
end
|
64
|
+
|
65
|
+
reloaded_card = VCR.use_cassette('payment_card') do
|
66
|
+
card.reload_data
|
67
|
+
end
|
68
|
+
|
69
|
+
expect(reloaded_card.card_id).to eq(card.card_id)
|
70
|
+
end
|
71
|
+
|
58
72
|
specify '#destroy_payment_card' do
|
59
73
|
result = VCR.use_cassette('destroy_payment_card') do
|
60
74
|
test_client.destroy_payment_card card_id
|
@@ -51,6 +51,18 @@ RSpec.describe Lokalise::Client do
|
|
51
51
|
expect(project.statistics['progress_total']).to eq(18)
|
52
52
|
end
|
53
53
|
|
54
|
+
specify '#reload_data' do
|
55
|
+
project = VCR.use_cassette('project') do
|
56
|
+
test_client.project '803826145ba90b42d5d860.46800099'
|
57
|
+
end
|
58
|
+
|
59
|
+
reloaded_project = VCR.use_cassette('project') do
|
60
|
+
project.reload_data
|
61
|
+
end
|
62
|
+
|
63
|
+
expect(reloaded_project.project_id).to eq(project.project_id)
|
64
|
+
end
|
65
|
+
|
54
66
|
specify '#create_project' do
|
55
67
|
project = VCR.use_cassette('new_project') do
|
56
68
|
test_client.create_project name: 'rspec proj', description: 'demo project for rspec'
|
@@ -0,0 +1,57 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
RSpec.describe Lokalise::Client do
|
4
|
+
let(:project_id) { '803826145ba90b42d5d860.46800099' }
|
5
|
+
let(:process_id) { '3b943469e6b3e324b5bdad639b122a623e6e7a1a' }
|
6
|
+
let(:queued_process_id) { '85c42bf5eff44648ca2f01f9db67b7d306a2f282' }
|
7
|
+
|
8
|
+
describe '#queued_processes' do
|
9
|
+
it 'returns all queued processes' do
|
10
|
+
processes = VCR.use_cassette('all_queued_processes') do
|
11
|
+
test_client.queued_processes project_id
|
12
|
+
end
|
13
|
+
|
14
|
+
expect(processes.branch).to eq('master')
|
15
|
+
processes = processes.collection
|
16
|
+
expect(processes.count).to eq(8)
|
17
|
+
expect(processes.first.process_id).to eq(process_id)
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
specify '#queued_process' do
|
22
|
+
process = VCR.use_cassette('queued_process') do
|
23
|
+
test_client.queued_process project_id, process_id
|
24
|
+
end
|
25
|
+
|
26
|
+
expect(process.branch).to eq('master')
|
27
|
+
expect(process.process_id).to eq(process_id)
|
28
|
+
expect(process.type).to eq('file-import')
|
29
|
+
expect(process.status).to eq('finished')
|
30
|
+
expect(process.message).to eq('')
|
31
|
+
expect(process.created_by).to eq(20_181)
|
32
|
+
expect(process.created_by_email).to eq('bodrovis@protonmail.com')
|
33
|
+
expect(process.created_at).to eq('2020-05-13 11:24:37 (Etc/UTC)')
|
34
|
+
expect(process.created_at_timestamp).to eq(1_589_369_077)
|
35
|
+
files = process.details['files']
|
36
|
+
expect(files.count).to eq(1)
|
37
|
+
expect(files[0]['status']).to eq('finished')
|
38
|
+
expect(files[0]['name_original']).to eq('test_async.json')
|
39
|
+
end
|
40
|
+
|
41
|
+
describe 'process status check' do
|
42
|
+
specify '#reload_data' do
|
43
|
+
queued_process = VCR.use_cassette('upload_file_status') do
|
44
|
+
test_client.queued_process project_id, queued_process_id
|
45
|
+
end
|
46
|
+
|
47
|
+
expect(queued_process.status).to eq('finished')
|
48
|
+
|
49
|
+
reloaded_process = VCR.use_cassette('upload_file_queued_reload') do
|
50
|
+
queued_process.reload_data
|
51
|
+
end
|
52
|
+
|
53
|
+
expect(reloaded_process.process_id).to eq(queued_process.process_id)
|
54
|
+
expect(reloaded_process.status).to eq('finished')
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|