ruby-lokalise-api 2.8.0 → 3.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 +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
|