ruby-lokalise-api 2.8.0 → 3.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/CODE_OF_CONDUCT.md +1 -1
- data/.github/CONTRIBUTING.md +2 -2
- data/CHANGELOG.md +46 -0
- data/Gemfile +2 -0
- data/README.md +293 -178
- data/Rakefile +6 -1
- data/lib/ruby-lokalise-api.rb +4 -0
- data/lib/ruby-lokalise-api/client.rb +18 -4
- data/lib/ruby-lokalise-api/collections/base.rb +6 -2
- data/lib/ruby-lokalise-api/collections/branch.rb +3 -1
- data/lib/ruby-lokalise-api/collections/contributor.rb +2 -0
- data/lib/ruby-lokalise-api/collections/custom_translation_status.rb +3 -1
- data/lib/ruby-lokalise-api/collections/file.rb +2 -0
- data/lib/ruby-lokalise-api/collections/key.rb +2 -0
- data/lib/ruby-lokalise-api/collections/key_comment.rb +2 -0
- data/lib/ruby-lokalise-api/collections/order.rb +2 -0
- data/lib/ruby-lokalise-api/collections/payment_card.rb +2 -0
- data/lib/ruby-lokalise-api/collections/project.rb +2 -0
- data/lib/ruby-lokalise-api/collections/project_comment.rb +2 -0
- data/lib/ruby-lokalise-api/collections/project_language.rb +2 -0
- data/lib/ruby-lokalise-api/collections/queued_process.rb +15 -0
- data/lib/ruby-lokalise-api/collections/screenshot.rb +2 -0
- data/lib/ruby-lokalise-api/collections/snapshot.rb +2 -0
- data/lib/ruby-lokalise-api/collections/system_language.rb +2 -0
- data/lib/ruby-lokalise-api/collections/task.rb +2 -0
- data/lib/ruby-lokalise-api/collections/team.rb +2 -0
- data/lib/ruby-lokalise-api/collections/team_user.rb +2 -0
- data/lib/ruby-lokalise-api/collections/team_user_group.rb +3 -1
- data/lib/ruby-lokalise-api/collections/translation.rb +2 -0
- data/lib/ruby-lokalise-api/collections/translation_provider.rb +2 -0
- data/lib/ruby-lokalise-api/collections/webhook.rb +2 -0
- data/lib/ruby-lokalise-api/connection.rb +3 -1
- data/lib/ruby-lokalise-api/data/attributes.json +28 -13
- data/lib/ruby-lokalise-api/error.rb +2 -0
- data/lib/ruby-lokalise-api/json_handler.rb +4 -0
- data/lib/ruby-lokalise-api/request.rb +10 -1
- data/lib/ruby-lokalise-api/resources/base.rb +53 -21
- data/lib/ruby-lokalise-api/resources/branch.rb +3 -1
- data/lib/ruby-lokalise-api/resources/contributor.rb +4 -2
- data/lib/ruby-lokalise-api/resources/custom_translation_status.rb +4 -2
- data/lib/ruby-lokalise-api/resources/file.rb +5 -1
- data/lib/ruby-lokalise-api/resources/key.rb +3 -1
- data/lib/ruby-lokalise-api/resources/key_comment.rb +5 -3
- data/lib/ruby-lokalise-api/resources/order.rb +4 -0
- data/lib/ruby-lokalise-api/resources/payment_card.rb +3 -1
- data/lib/ruby-lokalise-api/resources/project.rb +3 -1
- data/lib/ruby-lokalise-api/resources/project_comment.rb +3 -1
- data/lib/ruby-lokalise-api/resources/project_language.rb +5 -3
- data/lib/ruby-lokalise-api/resources/queued_process.rb +18 -0
- data/lib/ruby-lokalise-api/resources/screenshot.rb +3 -1
- data/lib/ruby-lokalise-api/resources/snapshot.rb +5 -1
- data/lib/ruby-lokalise-api/resources/system_language.rb +3 -1
- data/lib/ruby-lokalise-api/resources/task.rb +3 -1
- data/lib/ruby-lokalise-api/resources/team.rb +2 -0
- data/lib/ruby-lokalise-api/resources/team_user.rb +4 -2
- data/lib/ruby-lokalise-api/resources/team_user_group.rb +6 -3
- data/lib/ruby-lokalise-api/resources/translation.rb +3 -1
- data/lib/ruby-lokalise-api/resources/translation_provider.rb +5 -0
- data/lib/ruby-lokalise-api/resources/webhook.rb +13 -3
- data/lib/ruby-lokalise-api/rest/branches.rb +2 -0
- data/lib/ruby-lokalise-api/rest/comments.rb +7 -5
- data/lib/ruby-lokalise-api/rest/contributors.rb +7 -5
- data/lib/ruby-lokalise-api/rest/custom_translation_statuses.rb +8 -6
- data/lib/ruby-lokalise-api/rest/files.rb +5 -3
- data/lib/ruby-lokalise-api/rest/keys.rb +9 -7
- data/lib/ruby-lokalise-api/rest/languages.rb +8 -6
- data/lib/ruby-lokalise-api/rest/orders.rb +2 -0
- data/lib/ruby-lokalise-api/rest/payment_cards.rb +5 -3
- data/lib/ruby-lokalise-api/rest/projects.rb +8 -6
- data/lib/ruby-lokalise-api/rest/queued_processes.rb +26 -0
- data/lib/ruby-lokalise-api/rest/screenshots.rb +7 -5
- data/lib/ruby-lokalise-api/rest/snapshots.rb +6 -4
- data/lib/ruby-lokalise-api/rest/tasks.rb +7 -5
- data/lib/ruby-lokalise-api/rest/team_user_group.rb +6 -4
- data/lib/ruby-lokalise-api/rest/team_users.rb +6 -4
- data/lib/ruby-lokalise-api/rest/teams.rb +3 -1
- data/lib/ruby-lokalise-api/rest/translation_providers.rb +4 -2
- data/lib/ruby-lokalise-api/rest/translations.rb +5 -3
- data/lib/ruby-lokalise-api/rest/webhooks.rb +18 -5
- data/lib/ruby-lokalise-api/utils/attribute_helpers.rb +2 -0
- data/lib/ruby-lokalise-api/utils/endpoint_helpers.rb +2 -0
- data/lib/ruby-lokalise-api/utils/string_utils.rb +2 -0
- data/lib/ruby-lokalise-api/version.rb +3 -1
- data/ruby-lokalise-api.gemspec +9 -5
- data/spec/lib/ruby-lokalise-api/connection_spec.rb +10 -7
- data/spec/lib/ruby-lokalise-api/custom_json_parser_spec.rb +9 -5
- data/spec/lib/ruby-lokalise-api/error_spec.rb +15 -4
- data/spec/lib/ruby-lokalise-api/rest/branches_spec.rb +19 -5
- data/spec/lib/ruby-lokalise-api/rest/comments_spec.rb +19 -5
- data/spec/lib/ruby-lokalise-api/rest/contributors_spec.rb +18 -4
- data/spec/lib/ruby-lokalise-api/rest/custom_translation_statuses_spec.rb +18 -4
- data/spec/lib/ruby-lokalise-api/rest/files_spec.rb +21 -11
- data/spec/lib/ruby-lokalise-api/rest/keys_spec.rb +46 -26
- data/spec/lib/ruby-lokalise-api/rest/languages_spec.rb +20 -6
- data/spec/lib/ruby-lokalise-api/rest/orders_spec.rb +16 -2
- data/spec/lib/ruby-lokalise-api/rest/payment_cards_spec.rb +21 -5
- data/spec/lib/ruby-lokalise-api/rest/projects_spec.rb +18 -4
- data/spec/lib/ruby-lokalise-api/rest/queued_processes_spec.rb +57 -0
- data/spec/lib/ruby-lokalise-api/rest/screenshots_spec.rb +18 -4
- data/spec/lib/ruby-lokalise-api/rest/snapshots_spec.rb +31 -4
- data/spec/lib/ruby-lokalise-api/rest/tasks_spec.rb +18 -4
- data/spec/lib/ruby-lokalise-api/rest/team_user_groups_spec.rb +92 -6
- data/spec/lib/ruby-lokalise-api/rest/team_users_spec.rb +19 -4
- data/spec/lib/ruby-lokalise-api/rest/teams_spec.rb +2 -0
- data/spec/lib/ruby-lokalise-api/rest/translation_providers_spec.rb +9 -2
- data/spec/lib/ruby-lokalise-api/rest/translations_spec.rb +20 -6
- data/spec/lib/ruby-lokalise-api/rest/webhooks_spec.rb +54 -2
- data/spec/lib/ruby-lokalise-api/utils/snakecase_spec.rb +2 -0
- data/spec/lib/ruby-lokalise-api_spec.rb +12 -9
- data/spec/spec_helper.rb +8 -1
- data/spec/support/test_client.rb +2 -0
- data/spec/support/vcr.rb +2 -0
- metadata +59 -12
@@ -1,9 +1,11 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
RSpec.describe Lokalise::Client do
|
2
4
|
let(:project_id) { '803826145ba90b42d5d860.46800099' }
|
3
5
|
let(:branch_id) { 41_302 }
|
4
6
|
|
5
7
|
describe '#branches' do
|
6
|
-
it '
|
8
|
+
it 'returns all branches' do
|
7
9
|
branches = VCR.use_cassette('all_branches') do
|
8
10
|
test_client.branches project_id
|
9
11
|
end.collection
|
@@ -11,7 +13,7 @@ RSpec.describe Lokalise::Client do
|
|
11
13
|
expect(branches.count).to eq(1)
|
12
14
|
end
|
13
15
|
|
14
|
-
it '
|
16
|
+
it 'supports pagination' do
|
15
17
|
branches = VCR.use_cassette('all_branches_pagination') do
|
16
18
|
test_client.branches project_id, limit: 1, page: 1
|
17
19
|
end
|
@@ -38,6 +40,18 @@ RSpec.describe Lokalise::Client do
|
|
38
40
|
expect(branch.created_by_email).to eq('bodrovis@protonmail.com')
|
39
41
|
end
|
40
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
|
+
|
41
55
|
specify '#create_branch' do
|
42
56
|
branch = VCR.use_cassette('create_branch') do
|
43
57
|
test_client.create_branch project_id, name: 'ruby-branch'
|
@@ -82,8 +96,8 @@ RSpec.describe Lokalise::Client do
|
|
82
96
|
expect(response['branch']['name']).to eq(branch.name)
|
83
97
|
end
|
84
98
|
|
85
|
-
context 'branch chained
|
86
|
-
it '
|
99
|
+
context 'when branch methods are chained' do
|
100
|
+
it 'supports merge' do
|
87
101
|
branch = VCR.use_cassette('create_branch_to_merge2') do
|
88
102
|
test_client.create_branch project_id, name: 'merge-me-plz'
|
89
103
|
end
|
@@ -102,7 +116,7 @@ RSpec.describe Lokalise::Client do
|
|
102
116
|
expect(response['branch']['name']).to eq(branch.name)
|
103
117
|
end
|
104
118
|
|
105
|
-
it '
|
119
|
+
it 'supports update and destroy' do
|
106
120
|
branch = VCR.use_cassette('create_another_branch') do
|
107
121
|
test_client.create_branch project_id, name: 'ruby-second-branch'
|
108
122
|
end
|
@@ -1,10 +1,12 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
RSpec.describe Lokalise::Client do
|
2
4
|
let(:project_id) { '803826145ba90b42d5d860.46800099' }
|
3
5
|
let(:key_id) { 15_305_182 }
|
4
6
|
let(:another_key_id) { 15_519_786 }
|
5
7
|
|
6
8
|
describe '#comments' do
|
7
|
-
it '
|
9
|
+
it 'returns all comments' do
|
8
10
|
comments = VCR.use_cassette('all_comments') do
|
9
11
|
test_client.comments project_id, key_id
|
10
12
|
end.collection
|
@@ -12,7 +14,7 @@ RSpec.describe Lokalise::Client do
|
|
12
14
|
expect(comments.count).to eq(3)
|
13
15
|
end
|
14
16
|
|
15
|
-
it '
|
17
|
+
it 'supports pagination' do
|
16
18
|
comments = VCR.use_cassette('all_comments_pagination') do
|
17
19
|
test_client.comments project_id, key_id, limit: 1, page: 2
|
18
20
|
end
|
@@ -29,7 +31,7 @@ RSpec.describe Lokalise::Client do
|
|
29
31
|
expect(comments.prev_page?).to eq(true)
|
30
32
|
expect(comments.first_page?).to eq(false)
|
31
33
|
|
32
|
-
expect(comments.client).to be_an_instance_of(
|
34
|
+
expect(comments.client).to be_an_instance_of(described_class)
|
33
35
|
end
|
34
36
|
end
|
35
37
|
|
@@ -47,6 +49,18 @@ RSpec.describe Lokalise::Client do
|
|
47
49
|
expect(comment.added_at_timestamp).to eq(1_544_380_904)
|
48
50
|
end
|
49
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
|
+
|
50
64
|
specify '#create_comments' do
|
51
65
|
comments = VCR.use_cassette('create_comments') do
|
52
66
|
test_client.create_comments project_id, key_id, [
|
@@ -85,8 +99,8 @@ RSpec.describe Lokalise::Client do
|
|
85
99
|
expect(response['comment_deleted']).to eq(true)
|
86
100
|
end
|
87
101
|
|
88
|
-
context 'comment chained
|
89
|
-
it '
|
102
|
+
context 'when comment methods are chained' do
|
103
|
+
it 'supports destroy' do
|
90
104
|
comment = VCR.use_cassette('create_another_comment') do
|
91
105
|
test_client.create_comments project_id, another_key_id, comment: 'chained comment'
|
92
106
|
end.collection.first
|
@@ -1,9 +1,11 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
RSpec.describe Lokalise::Client do
|
2
4
|
let(:project_id) { '803826145ba90b42d5d860.46800099' }
|
3
5
|
let(:contributor_id) { 25_953 }
|
4
6
|
|
5
7
|
describe '#contributors' do
|
6
|
-
it '
|
8
|
+
it 'returns all contributors' do
|
7
9
|
contributors = VCR.use_cassette('all_contributors') do
|
8
10
|
test_client.contributors project_id
|
9
11
|
end.collection
|
@@ -12,7 +14,7 @@ RSpec.describe Lokalise::Client do
|
|
12
14
|
expect(contributors.first.fullname).to eq('John Doe')
|
13
15
|
end
|
14
16
|
|
15
|
-
it '
|
17
|
+
it 'supports pagination' do
|
16
18
|
contributors = VCR.use_cassette('all_contributors_pagination') do
|
17
19
|
test_client.contributors project_id, limit: 1, page: 2
|
18
20
|
end
|
@@ -46,6 +48,18 @@ RSpec.describe Lokalise::Client do
|
|
46
48
|
expect(contributor.created_at_timestamp).to eq(1_534_865_725)
|
47
49
|
end
|
48
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
|
+
|
49
63
|
specify '#create_contributors' do
|
50
64
|
contributor = VCR.use_cassette('create_contributors') do
|
51
65
|
test_client.create_contributors project_id,
|
@@ -83,8 +97,8 @@ RSpec.describe Lokalise::Client do
|
|
83
97
|
expect(response['contributor_deleted']).to eq(true)
|
84
98
|
end
|
85
99
|
|
86
|
-
context 'contributor chained
|
87
|
-
it '
|
100
|
+
context 'when contributor methods are chained' do
|
101
|
+
it 'supports update and destroy' do
|
88
102
|
contributor = VCR.use_cassette('create_another_contributor') do
|
89
103
|
test_client.create_contributors project_id,
|
90
104
|
email: 'demo@test.com',
|
@@ -1,10 +1,12 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
RSpec.describe Lokalise::Client do
|
2
4
|
let(:project_id) { '803826145ba90b42d5d860.46800099' }
|
3
5
|
let(:status_id) { 128 }
|
4
6
|
let(:new_status_id) { 126 }
|
5
7
|
|
6
8
|
describe '#translation_statuses' do
|
7
|
-
it '
|
9
|
+
it 'returns all statuses' do
|
8
10
|
statuses = VCR.use_cassette('all_translation_statuses') do
|
9
11
|
test_client.translation_statuses project_id
|
10
12
|
end.collection
|
@@ -13,7 +15,7 @@ RSpec.describe Lokalise::Client do
|
|
13
15
|
expect(statuses.first.status_id).to eq(status_id)
|
14
16
|
end
|
15
17
|
|
16
|
-
it '
|
18
|
+
it 'supports pagination' do
|
17
19
|
statuses = VCR.use_cassette('all_translation_statuses_pagination') do
|
18
20
|
test_client.translation_statuses project_id, limit: 1, page: 2
|
19
21
|
end
|
@@ -41,6 +43,18 @@ RSpec.describe Lokalise::Client do
|
|
41
43
|
expect(status.color).to eq('#0079bf')
|
42
44
|
end
|
43
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
|
+
|
44
58
|
specify '#create_translation_status' do
|
45
59
|
title = 'Reviewed by doctors'
|
46
60
|
color = '#f2d600'
|
@@ -85,8 +99,8 @@ RSpec.describe Lokalise::Client do
|
|
85
99
|
expect(response).to include('#f2d600')
|
86
100
|
end
|
87
101
|
|
88
|
-
context 'translation status chained
|
89
|
-
it '
|
102
|
+
context 'when translation status methods are chained' do
|
103
|
+
it 'supports update and destroy' do
|
90
104
|
status = VCR.use_cassette('create_another_translation_status') do
|
91
105
|
test_client.create_translation_status project_id,
|
92
106
|
title: 'rspec',
|
@@ -1,8 +1,10 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
RSpec.describe Lokalise::Client do
|
2
4
|
let(:project_id) { '803826145ba90b42d5d860.46800099' }
|
3
5
|
|
4
6
|
describe '#files' do
|
5
|
-
it '
|
7
|
+
it 'returns all files' do
|
6
8
|
files = VCR.use_cassette('files') do
|
7
9
|
test_client.files project_id
|
8
10
|
end.collection
|
@@ -14,7 +16,7 @@ RSpec.describe Lokalise::Client do
|
|
14
16
|
expect(file.key_count).to eq(1)
|
15
17
|
end
|
16
18
|
|
17
|
-
it '
|
19
|
+
it 'supports pagination' do
|
18
20
|
files = VCR.use_cassette('all_files_pagination') do
|
19
21
|
test_client.files project_id, limit: 1, page: 1
|
20
22
|
end
|
@@ -33,8 +35,8 @@ RSpec.describe Lokalise::Client do
|
|
33
35
|
specify '#download_files' do
|
34
36
|
response = VCR.use_cassette('download_files') do
|
35
37
|
test_client.download_files project_id,
|
36
|
-
|
37
|
-
|
38
|
+
format: 'po',
|
39
|
+
original_filenames: true
|
38
40
|
end
|
39
41
|
|
40
42
|
expect(response['project_id']).to eq(project_id)
|
@@ -42,15 +44,23 @@ RSpec.describe Lokalise::Client do
|
|
42
44
|
end
|
43
45
|
|
44
46
|
specify '#upload_file' do
|
45
|
-
|
47
|
+
process = VCR.use_cassette('upload_file') do
|
46
48
|
test_client.upload_file project_id,
|
47
|
-
|
48
|
-
|
49
|
-
|
49
|
+
data: 'ZnI6DQogIHRlc3Q6IHRyYW5zbGF0aW9u',
|
50
|
+
filename: 'rspec_async.yml',
|
51
|
+
lang_iso: 'ru'
|
50
52
|
end
|
51
53
|
|
52
|
-
expect(
|
53
|
-
expect(
|
54
|
-
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')
|
55
65
|
end
|
56
66
|
end
|
@@ -1,59 +1,79 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
RSpec.describe Lokalise::Client do
|
2
4
|
let(:project_id) { '803826145ba90b42d5d860.46800099' }
|
3
5
|
let(:key_id) { 15_305_182 }
|
4
6
|
let(:new_key_id) { 15_519_770 }
|
5
7
|
|
6
8
|
describe '#keys' do
|
7
|
-
it '
|
9
|
+
it 'returns all keys' do
|
8
10
|
keys = VCR.use_cassette('all_keys') do
|
9
11
|
test_client.keys project_id
|
10
12
|
end.collection
|
11
13
|
|
12
|
-
expect(keys.count).to eq(
|
14
|
+
expect(keys.count).to eq(8)
|
13
15
|
end
|
14
16
|
|
15
|
-
it '
|
17
|
+
it 'supports pagination' do
|
16
18
|
keys = VCR.use_cassette('all_keys_pagination') do
|
17
|
-
test_client.keys project_id, limit:
|
19
|
+
test_client.keys project_id, limit: 2, page: 3
|
18
20
|
end
|
19
21
|
|
20
|
-
expect(keys.collection.count).to eq(
|
21
|
-
expect(keys.total_results).to eq(
|
22
|
-
expect(keys.total_pages).to eq(
|
23
|
-
expect(keys.results_per_page).to eq(
|
24
|
-
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)
|
25
27
|
|
26
|
-
expect(keys.next_page?).to eq(
|
27
|
-
expect(keys.last_page?).to eq(
|
28
|
-
expect(keys.prev_page?).to eq(
|
29
|
-
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)
|
30
32
|
end
|
31
33
|
end
|
32
34
|
|
33
35
|
specify '#key' do
|
34
36
|
key = VCR.use_cassette('key') do
|
35
|
-
test_client.key project_id,
|
37
|
+
test_client.key project_id, 44_596_066, disable_references: 0
|
36
38
|
end
|
37
39
|
|
38
|
-
expect(key.key_id).to eq(
|
39
|
-
expect(key.
|
40
|
-
expect(key.
|
41
|
-
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')
|
42
47
|
expect(key.description).to eq('')
|
43
48
|
expect(key.platforms).to eq(%w[web])
|
44
49
|
expect(key.tags).to eq([])
|
45
|
-
expect(key.comments
|
46
|
-
expect(key.comments[1]['comment_id']).to eq(800_632)
|
50
|
+
expect(key.comments).to eq([])
|
47
51
|
expect(key.screenshots).to eq([])
|
48
52
|
expect(key.translations.first['modified_by_email']).to eq('bodrovis@protonmail.com')
|
49
53
|
expect(key.is_plural).to eq(false)
|
50
54
|
expect(key.plural_name).to eq('')
|
51
|
-
expect(key.is_hidden).to eq(
|
55
|
+
expect(key.is_hidden).to eq(true)
|
52
56
|
expect(key.is_archived).to eq(false)
|
53
57
|
expect(key.context).to eq('')
|
58
|
+
expect(key.base_words).to eq(1)
|
54
59
|
expect(key.char_limit).to eq(0)
|
55
60
|
expect(key.custom_attributes).to eq('')
|
56
|
-
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)
|
57
77
|
end
|
58
78
|
|
59
79
|
specify '#create_keys' do
|
@@ -126,8 +146,8 @@ RSpec.describe Lokalise::Client do
|
|
126
146
|
expect(response['keys_removed']).to eq(true)
|
127
147
|
end
|
128
148
|
|
129
|
-
context 'key chained
|
130
|
-
it '
|
149
|
+
context 'when key methods are chained' do
|
150
|
+
it 'supports update and destroy' do
|
131
151
|
key = VCR.use_cassette('create_another_key') do
|
132
152
|
test_client.create_keys project_id, key_name: 'chained_k', platforms: %w[ios]
|
133
153
|
end.collection.first
|
@@ -153,8 +173,8 @@ RSpec.describe Lokalise::Client do
|
|
153
173
|
end
|
154
174
|
end
|
155
175
|
|
156
|
-
context 'keys collection chained
|
157
|
-
it '
|
176
|
+
context 'when keys collection methods are chained' do
|
177
|
+
it 'supports destroy_all' do
|
158
178
|
keys = VCR.use_cassette('create_keys_collection') do
|
159
179
|
test_client.create_keys project_id, [
|
160
180
|
{
|
@@ -1,10 +1,12 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
RSpec.describe Lokalise::Client do
|
2
4
|
let(:project_id) { '803826145ba90b42d5d860.46800099' }
|
3
5
|
let(:language_id) { 640 }
|
4
6
|
let(:new_language_id) { 894 }
|
5
7
|
|
6
8
|
describe '#system_languages' do
|
7
|
-
it '
|
9
|
+
it 'returns all system languages' do
|
8
10
|
languages = VCR.use_cassette('all_system_languages') do
|
9
11
|
test_client.system_languages
|
10
12
|
end.collection
|
@@ -13,7 +15,7 @@ RSpec.describe Lokalise::Client do
|
|
13
15
|
expect(languages.first.lang_iso).to eq('ab')
|
14
16
|
end
|
15
17
|
|
16
|
-
it '
|
18
|
+
it 'supports pagination' do
|
17
19
|
languages = VCR.use_cassette('all_system_languages_pagination') do
|
18
20
|
test_client.system_languages limit: 10, page: 3
|
19
21
|
end
|
@@ -27,7 +29,7 @@ RSpec.describe Lokalise::Client do
|
|
27
29
|
end
|
28
30
|
|
29
31
|
describe '#project_languages' do
|
30
|
-
it '
|
32
|
+
it 'returns all project languages' do
|
31
33
|
languages = VCR.use_cassette('all_project_languages') do
|
32
34
|
test_client.project_languages project_id
|
33
35
|
end.collection
|
@@ -36,7 +38,7 @@ RSpec.describe Lokalise::Client do
|
|
36
38
|
expect(languages.first.lang_iso).to eq('en')
|
37
39
|
end
|
38
40
|
|
39
|
-
it '
|
41
|
+
it 'supports pagination' do
|
40
42
|
languages = VCR.use_cassette('all_project_languages_pagination') do
|
41
43
|
test_client.project_languages project_id, limit: 1, page: 2
|
42
44
|
end
|
@@ -61,6 +63,18 @@ RSpec.describe Lokalise::Client do
|
|
61
63
|
expect(language.plural_forms).to eq(%w[one other])
|
62
64
|
end
|
63
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
|
+
|
64
78
|
specify '#create_languages' do
|
65
79
|
language = VCR.use_cassette('create_languages') do
|
66
80
|
test_client.create_languages project_id, lang_iso: 'ab', custom_name: 'rspec lang'
|
@@ -89,8 +103,8 @@ RSpec.describe Lokalise::Client do
|
|
89
103
|
expect(response['language_deleted']).to eq(true)
|
90
104
|
end
|
91
105
|
|
92
|
-
context 'project language chained
|
93
|
-
it '
|
106
|
+
context 'when project language methods are chained' do
|
107
|
+
it 'supports update and destroy' do
|
94
108
|
language = VCR.use_cassette('create_another_language') do
|
95
109
|
test_client.create_languages project_id, lang_iso: 'ab', custom_name: 'chained lang'
|
96
110
|
end.collection.first
|