ruby-lokalise-api 2.9.0.1 → 4.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.
- checksums.yaml +4 -4
- data/.github/CODE_OF_CONDUCT.md +1 -1
- data/.github/CONTRIBUTING.md +9 -2
- data/CHANGELOG.md +1 -80
- data/LICENSE +9 -18
- data/README.md +18 -1734
- data/lib/ruby-lokalise-api.rb +2 -0
- data/lib/ruby-lokalise-api/client.rb +17 -5
- 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 +30 -12
- 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 +6 -6
- 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 +38 -2
- 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 +21 -16
@@ -16,16 +16,21 @@ module Lokalise
|
|
16
16
|
# @return [String]
|
17
17
|
# @param model_class [String]
|
18
18
|
# @param plural [Boolean] Should the returned value be pluralized?
|
19
|
-
def data_key_for(model_class
|
20
|
-
data_key_plural = get_key(
|
19
|
+
def data_key_for(model_class:, plural: false, collection: false)
|
20
|
+
data_key_plural = get_key(
|
21
|
+
name: 'DATA_KEY_PLURAL',
|
22
|
+
model_class: model_class,
|
23
|
+
collection: true,
|
24
|
+
strict: true
|
25
|
+
)
|
21
26
|
|
22
27
|
return data_key_plural if collection && data_key_plural
|
23
28
|
|
24
|
-
data_key = get_key 'DATA_KEY', model_class, collection
|
29
|
+
data_key = get_key name: 'DATA_KEY', model_class: model_class, collection: collection
|
25
30
|
|
26
31
|
return data_key unless plural
|
27
32
|
|
28
|
-
data_key
|
33
|
+
"#{data_key}s"
|
29
34
|
end
|
30
35
|
|
31
36
|
# Returns key used to determine resource id (for example `user_id` or `project_id`).
|
@@ -35,7 +40,7 @@ module Lokalise
|
|
35
40
|
# @return [String]
|
36
41
|
# @param model_class [String]
|
37
42
|
def id_key_for(model_class)
|
38
|
-
get_key('ID_KEY', model_class)
|
43
|
+
"#{get_key(name: 'ID_KEY', model_class: model_class)}_id"
|
39
44
|
end
|
40
45
|
|
41
46
|
# Loads attributes for the given resource based on its name
|
@@ -52,7 +57,7 @@ module Lokalise
|
|
52
57
|
|
53
58
|
private
|
54
59
|
|
55
|
-
def get_key(name
|
60
|
+
def get_key(name:, model_class:, collection: false, strict: false)
|
56
61
|
key = if collection && Module.const_defined?("Lokalise::Collections::#{model_class}::#{name}")
|
57
62
|
Module.const_get "Lokalise::Collections::#{model_class}::#{name}"
|
58
63
|
elsif Module.const_defined? "Lokalise::Resources::#{model_class}::#{name}"
|
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',
|
@@ -28,12 +28,12 @@ Gem::Specification.new do |spec|
|
|
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'
|
@@ -37,8 +37,8 @@ RSpec.describe Lokalise::Client do
|
|
37
37
|
|
38
38
|
expect(order.order_id).to eq(order_id)
|
39
39
|
expect(order.project_id).to eq(project_id)
|
40
|
-
expect(order.card_id).to eq(card_id
|
41
|
-
expect(order.status).to eq('
|
40
|
+
expect(order.card_id).to eq(card_id)
|
41
|
+
expect(order.status).to eq('completed')
|
42
42
|
expect(order.created_at).to eq('2019-03-19 18:18:21 (Etc/UTC)')
|
43
43
|
expect(order.created_by).to eq(20_181)
|
44
44
|
expect(order.created_by_email).to eq('bodrovis@protonmail.com')
|
@@ -52,6 +52,19 @@ RSpec.describe Lokalise::Client do
|
|
52
52
|
expect(order.translation_tier_name).to eq('Professional translator')
|
53
53
|
expect(order.briefing).to eq('Some briefing')
|
54
54
|
expect(order.total).to eq(0.07)
|
55
|
+
expect(order.payment_method).to be_nil
|
56
|
+
end
|
57
|
+
|
58
|
+
specify '#reload_data' do
|
59
|
+
order = VCR.use_cassette('order') do
|
60
|
+
test_client.order team_id, order_id
|
61
|
+
end
|
62
|
+
|
63
|
+
reloaded_order = VCR.use_cassette('order') do
|
64
|
+
order.reload_data
|
65
|
+
end
|
66
|
+
|
67
|
+
expect(reloaded_order.order_id).to eq(order.order_id)
|
55
68
|
end
|
56
69
|
|
57
70
|
specify '#create_order' do
|
@@ -74,4 +87,27 @@ RSpec.describe Lokalise::Client do
|
|
74
87
|
expect(order.order_id).to eq(order_id)
|
75
88
|
expect(order.status).to eq('in progress')
|
76
89
|
end
|
90
|
+
|
91
|
+
it 'creates an order with dry run' do
|
92
|
+
order = VCR.use_cassette('create_order_dry_run') do
|
93
|
+
test_client.create_order team_id,
|
94
|
+
project_id: project_id,
|
95
|
+
card_id: card_id,
|
96
|
+
briefing: 'Some briefing',
|
97
|
+
source_language_iso: 'en',
|
98
|
+
target_language_isos: [
|
99
|
+
'ru'
|
100
|
+
],
|
101
|
+
keys: [
|
102
|
+
74_189_435
|
103
|
+
],
|
104
|
+
provider_slug: 'gengo',
|
105
|
+
translation_tier: '1',
|
106
|
+
dry_run: true
|
107
|
+
end
|
108
|
+
|
109
|
+
expect(order.order_id).to be_nil
|
110
|
+
expect(order.status).to eq('draft')
|
111
|
+
expect(order.dry_run).to be true
|
112
|
+
end
|
77
113
|
end
|
@@ -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
|