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,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
RSpec.describe Lokalise::Client do
|
2
4
|
let(:team_id) { 176_692 }
|
3
5
|
let(:project_id) { '803826145ba90b42d5d860.46800099' }
|
@@ -6,7 +8,7 @@ RSpec.describe Lokalise::Client do
|
|
6
8
|
let(:card_id) { 1774 }
|
7
9
|
|
8
10
|
describe '#orders' do
|
9
|
-
it '
|
11
|
+
it 'returns all orders' do
|
10
12
|
orders = VCR.use_cassette('all_orders') do
|
11
13
|
test_client.orders team_id
|
12
14
|
end.collection
|
@@ -15,7 +17,7 @@ RSpec.describe Lokalise::Client do
|
|
15
17
|
expect(orders.first.order_id).to eq(order_id)
|
16
18
|
end
|
17
19
|
|
18
|
-
it '
|
20
|
+
it 'supports pagination' do
|
19
21
|
orders = VCR.use_cassette('all_orders_pagination') do
|
20
22
|
test_client.orders team_id, limit: 1, page: 1
|
21
23
|
end
|
@@ -52,6 +54,18 @@ RSpec.describe Lokalise::Client do
|
|
52
54
|
expect(order.total).to eq(0.07)
|
53
55
|
end
|
54
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
|
+
|
55
69
|
specify '#create_order' do
|
56
70
|
order = VCR.use_cassette('create_order') do
|
57
71
|
test_client.create_order team_id,
|
@@ -1,18 +1,21 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
RSpec.describe Lokalise::Client do
|
2
4
|
let(:card_id) { 1773 }
|
3
5
|
|
4
6
|
describe '#payment_cards' do
|
5
|
-
it '
|
7
|
+
it 'returns all payment cards' do
|
6
8
|
cards = VCR.use_cassette('all_payment_cards') do
|
7
9
|
test_client.payment_cards
|
8
|
-
end
|
10
|
+
end
|
9
11
|
|
10
|
-
|
12
|
+
expect(cards.user_id).to eq(20_181)
|
13
|
+
card = cards.collection.first
|
11
14
|
expect(card.card_id).to eq(1774)
|
12
15
|
expect(card.last4).to eq('0358')
|
13
16
|
end
|
14
17
|
|
15
|
-
it '
|
18
|
+
it 'supports pagination' do
|
16
19
|
cards = VCR.use_cassette('all_payment_cards_pagination') do
|
17
20
|
test_client.payment_cards limit: 1, page: 1
|
18
21
|
end
|
@@ -47,12 +50,25 @@ RSpec.describe Lokalise::Client do
|
|
47
50
|
test_client.payment_card card_id
|
48
51
|
end
|
49
52
|
|
53
|
+
expect(card.user_id).to eq(20_181)
|
50
54
|
expect(card.card_id).to eq(card_id)
|
51
55
|
expect(card.brand).to eq('Visa')
|
52
56
|
expect(card.last4).to eq('4242')
|
53
57
|
expect(card.created_at).to eq('2019-03-19 17:01:22 (Etc/UTC)')
|
54
58
|
end
|
55
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
|
+
|
56
72
|
specify '#destroy_payment_card' do
|
57
73
|
result = VCR.use_cassette('destroy_payment_card') do
|
58
74
|
test_client.destroy_payment_card card_id
|
@@ -62,7 +78,7 @@ RSpec.describe Lokalise::Client do
|
|
62
78
|
expect(result['card_id']).to eq(card_id)
|
63
79
|
end
|
64
80
|
|
65
|
-
it '
|
81
|
+
it 'supports chained destroy' do
|
66
82
|
card = VCR.use_cassette('payment_card') do
|
67
83
|
test_client.payment_card card_id
|
68
84
|
end
|
@@ -1,8 +1,10 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
RSpec.describe Lokalise::Client do
|
2
4
|
let(:new_project_id) { '572222075c0953fd70d492.30502628' }
|
3
5
|
|
4
6
|
describe '#projects' do
|
5
|
-
it '
|
7
|
+
it 'returns all projects' do
|
6
8
|
projects = VCR.use_cassette('all_projects') do
|
7
9
|
test_client.projects
|
8
10
|
end.collection
|
@@ -12,7 +14,7 @@ RSpec.describe Lokalise::Client do
|
|
12
14
|
expect(project.name).to eq('demo phoenix')
|
13
15
|
end
|
14
16
|
|
15
|
-
it '
|
17
|
+
it 'supports pagination' do
|
16
18
|
projects = VCR.use_cassette('all_projects_pagination') do
|
17
19
|
test_client.projects limit: 1, page: 2
|
18
20
|
end
|
@@ -49,6 +51,18 @@ RSpec.describe Lokalise::Client do
|
|
49
51
|
expect(project.statistics['progress_total']).to eq(18)
|
50
52
|
end
|
51
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
|
+
|
52
66
|
specify '#create_project' do
|
53
67
|
project = VCR.use_cassette('new_project') do
|
54
68
|
test_client.create_project name: 'rspec proj', description: 'demo project for rspec'
|
@@ -87,8 +101,8 @@ RSpec.describe Lokalise::Client do
|
|
87
101
|
expect(response['project_deleted']).to eq(true)
|
88
102
|
end
|
89
103
|
|
90
|
-
context 'project chained
|
91
|
-
it '
|
104
|
+
context 'when project methods are chained' do
|
105
|
+
it 'supports update, empty, and destroy' do
|
92
106
|
project = VCR.use_cassette('create_another_project') do
|
93
107
|
test_client.create_project name: 'chained proj'
|
94
108
|
end
|
@@ -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
|
@@ -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(:screenshot_id) { 115_185 }
|
4
6
|
|
5
7
|
describe '#screenshots' do
|
6
|
-
it '
|
8
|
+
it 'returns all screenshots' do
|
7
9
|
screenshots = VCR.use_cassette('all_screenshots') do
|
8
10
|
test_client.screenshots project_id
|
9
11
|
end.collection
|
@@ -11,7 +13,7 @@ RSpec.describe Lokalise::Client do
|
|
11
13
|
expect(screenshots.count).to eq(1)
|
12
14
|
end
|
13
15
|
|
14
|
-
it '
|
16
|
+
it 'supports pagination' do
|
15
17
|
screenshots = VCR.use_cassette('all_screenshots_pagination') do
|
16
18
|
test_client.screenshots project_id, limit: 1, page: 1
|
17
19
|
end
|
@@ -39,6 +41,18 @@ RSpec.describe Lokalise::Client do
|
|
39
41
|
expect(screenshot.height).to eq(32)
|
40
42
|
end
|
41
43
|
|
44
|
+
specify '#reload_data' do
|
45
|
+
screenshot = VCR.use_cassette('screenshot') do
|
46
|
+
test_client.screenshot project_id, screenshot_id
|
47
|
+
end
|
48
|
+
|
49
|
+
reloaded_screenshot = VCR.use_cassette('screenshot') do
|
50
|
+
screenshot.reload_data
|
51
|
+
end
|
52
|
+
|
53
|
+
expect(reloaded_screenshot.screenshot_id).to eq(screenshot.screenshot_id)
|
54
|
+
end
|
55
|
+
|
42
56
|
specify '#create_screenshots' do
|
43
57
|
screenshot_from_file do |file|
|
44
58
|
screenshot = VCR.use_cassette('create_screenshots') do
|
@@ -69,8 +83,8 @@ RSpec.describe Lokalise::Client do
|
|
69
83
|
expect(response['screenshot_deleted']).to eq(true)
|
70
84
|
end
|
71
85
|
|
72
|
-
context 'screenshot chained
|
73
|
-
it '
|
86
|
+
context 'when screenshot methods are chained' do
|
87
|
+
it 'supports update and destroy' do
|
74
88
|
screenshot = screenshot_from_file do |file|
|
75
89
|
VCR.use_cassette('create_another_screenshot') do
|
76
90
|
test_client.create_screenshots project_id, data: file.read, title: 'chained screen'
|
@@ -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(:snapshot_id) { 27_881 }
|
4
6
|
|
5
7
|
describe '#snapshots' do
|
6
|
-
it '
|
8
|
+
it 'returns all snapshots' do
|
7
9
|
snapshots = VCR.use_cassette('all_snapshots') do
|
8
10
|
test_client.snapshots project_id
|
9
11
|
end.collection
|
@@ -19,7 +21,7 @@ RSpec.describe Lokalise::Client do
|
|
19
21
|
expect(snapshot.created_at_timestamp).to eq(1_544_461_324)
|
20
22
|
end
|
21
23
|
|
22
|
-
it '
|
24
|
+
it 'supports pagination' do
|
23
25
|
snapshots = VCR.use_cassette('all_snapshots_pagination') do
|
24
26
|
test_client.snapshots project_id, limit: 1, page: 2
|
25
27
|
end
|
@@ -65,8 +67,33 @@ RSpec.describe Lokalise::Client do
|
|
65
67
|
expect(response['snapshot_deleted']).to eq(true)
|
66
68
|
end
|
67
69
|
|
68
|
-
context 'snapshot chained
|
69
|
-
it '
|
70
|
+
context 'when snapshot methods are chained' do
|
71
|
+
it 'allows restored project to receive chained methods' do
|
72
|
+
snapshot = VCR.use_cassette('create_snapshot_for_chained') do
|
73
|
+
test_client.create_snapshot project_id, title: 'chained rspec snap'
|
74
|
+
end
|
75
|
+
|
76
|
+
new_project = VCR.use_cassette('restore_snapshot_for_chained') do
|
77
|
+
snapshot.restore
|
78
|
+
end
|
79
|
+
|
80
|
+
updated_project = VCR.use_cassette('restored_updated_project') do
|
81
|
+
new_project.update name: 'Restored and updated'
|
82
|
+
end
|
83
|
+
|
84
|
+
expect(updated_project.client).to eq(test_client)
|
85
|
+
expect(updated_project.name).to eq('Restored and updated')
|
86
|
+
expect(updated_project.project_id).to eq(new_project.project_id)
|
87
|
+
|
88
|
+
response = VCR.use_cassette('delete_restored_project') do
|
89
|
+
updated_project.destroy
|
90
|
+
end
|
91
|
+
|
92
|
+
expect(response['project_id']).to eq(updated_project.project_id)
|
93
|
+
expect(response['project_deleted']).to eq(true)
|
94
|
+
end
|
95
|
+
|
96
|
+
it 'supports destroy and restore' do
|
70
97
|
snapshot = VCR.use_cassette('create_another_snapshot') do
|
71
98
|
test_client.create_snapshot project_id, title: 'chained'
|
72
99
|
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_571_976 }
|
4
6
|
let(:task_id) { 4387 }
|
5
7
|
|
6
8
|
describe '#tasks' do
|
7
|
-
it '
|
9
|
+
it 'returns all tasks' do
|
8
10
|
tasks = VCR.use_cassette('all_tasks') do
|
9
11
|
test_client.tasks project_id
|
10
12
|
end.collection
|
@@ -12,7 +14,7 @@ RSpec.describe Lokalise::Client do
|
|
12
14
|
expect(tasks.count).to eq(3)
|
13
15
|
end
|
14
16
|
|
15
|
-
it '
|
17
|
+
it 'supports pagination' do
|
16
18
|
tasks = VCR.use_cassette('all_tasks_pagination') do
|
17
19
|
test_client.tasks project_id, limit: 2, page: 2
|
18
20
|
end
|
@@ -58,6 +60,18 @@ RSpec.describe Lokalise::Client do
|
|
58
60
|
expect(task.custom_translation_status_ids).to eq([])
|
59
61
|
end
|
60
62
|
|
63
|
+
specify '#reload_data' do
|
64
|
+
task = VCR.use_cassette('task') do
|
65
|
+
test_client.task project_id, '11925'
|
66
|
+
end
|
67
|
+
|
68
|
+
reloaded_task = VCR.use_cassette('task') do
|
69
|
+
task.reload_data
|
70
|
+
end
|
71
|
+
|
72
|
+
expect(reloaded_task.task_id).to eq(task.task_id)
|
73
|
+
end
|
74
|
+
|
61
75
|
specify '#create_task' do
|
62
76
|
task = VCR.use_cassette('create_task') do
|
63
77
|
test_client.create_task project_id, title: 'another rspec key',
|
@@ -92,8 +106,8 @@ RSpec.describe Lokalise::Client do
|
|
92
106
|
expect(response['task_deleted']).to eq(true)
|
93
107
|
end
|
94
108
|
|
95
|
-
context 'task chained
|
96
|
-
it '
|
109
|
+
context 'when task methods are chained' do
|
110
|
+
it 'supports update and destroy' do
|
97
111
|
task = VCR.use_cassette('create_another_task') do
|
98
112
|
test_client.create_task project_id, title: 'chained',
|
99
113
|
keys: [key_id],
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
RSpec.describe Lokalise::Client do
|
2
4
|
let(:team_id) { 176_692 }
|
3
5
|
let(:group_id) { 515 }
|
@@ -8,7 +10,7 @@ RSpec.describe Lokalise::Client do
|
|
8
10
|
let(:user_id) { 35_554 }
|
9
11
|
|
10
12
|
describe '#team_user_groups' do
|
11
|
-
it '
|
13
|
+
it 'returns all team_user_groups' do
|
12
14
|
team_user_groups = VCR.use_cassette('team_user_groups') do
|
13
15
|
test_client.team_user_groups team_id
|
14
16
|
end
|
@@ -17,7 +19,7 @@ RSpec.describe Lokalise::Client do
|
|
17
19
|
expect(team_user_groups.team_id).to eq(team_id)
|
18
20
|
end
|
19
21
|
|
20
|
-
it '
|
22
|
+
it 'supports pagination' do
|
21
23
|
team_users = VCR.use_cassette('team_user_groups_pagination') do
|
22
24
|
test_client.team_user_groups team_id, limit: 1, page: 2
|
23
25
|
end
|
@@ -43,6 +45,11 @@ RSpec.describe Lokalise::Client do
|
|
43
45
|
expect(group.team_id).to eq(team_id)
|
44
46
|
expect(group.projects.first).to eq('803826145ba90b42d5d860.46800099')
|
45
47
|
expect(group.members[1]).to eq(25_753)
|
48
|
+
|
49
|
+
reloaded_group = VCR.use_cassette('team_user_group') do
|
50
|
+
group.reload_data
|
51
|
+
end
|
52
|
+
expect(reloaded_group.group_id).to eq(group.group_id)
|
46
53
|
end
|
47
54
|
|
48
55
|
specify '#create_team_user_group' do
|
@@ -58,6 +65,11 @@ RSpec.describe Lokalise::Client do
|
|
58
65
|
|
59
66
|
expect(group.name).to eq('RSpec group')
|
60
67
|
expect(group.team_id).to eq(team_id)
|
68
|
+
|
69
|
+
reloaded_group = VCR.use_cassette('created_team_user_group') do
|
70
|
+
group.reload_data
|
71
|
+
end
|
72
|
+
expect(reloaded_group.group_id).to eq(group.group_id)
|
61
73
|
end
|
62
74
|
|
63
75
|
specify '#update_team_user_group' do
|
@@ -89,6 +101,16 @@ RSpec.describe Lokalise::Client do
|
|
89
101
|
expect(group.team_id).to eq(team_id)
|
90
102
|
expect(group.group_id).to eq(third_group_id)
|
91
103
|
expect(group.projects).to include(project_id)
|
104
|
+
|
105
|
+
reloaded_group = VCR.use_cassette('another_team_user_group') do
|
106
|
+
group.reload_data
|
107
|
+
end
|
108
|
+
expect(reloaded_group.group_id).to eq(group.group_id)
|
109
|
+
|
110
|
+
group = VCR.use_cassette('add_projects_to_group') do
|
111
|
+
group.add_projects projects: [project_id]
|
112
|
+
end
|
113
|
+
expect(group.group_id).to eq(third_group_id)
|
92
114
|
end
|
93
115
|
|
94
116
|
specify '#remove_projects_from_group' do
|
@@ -99,6 +121,16 @@ RSpec.describe Lokalise::Client do
|
|
99
121
|
expect(group.group_id).to eq(third_group_id)
|
100
122
|
expect(group.team_id).to eq(team_id)
|
101
123
|
expect(group.projects).to be_empty
|
124
|
+
|
125
|
+
reloaded_group = VCR.use_cassette('another_team_user_group') do
|
126
|
+
group.reload_data
|
127
|
+
end
|
128
|
+
expect(reloaded_group.group_id).to eq(group.group_id)
|
129
|
+
|
130
|
+
group = VCR.use_cassette('remove_projects_from_group') do
|
131
|
+
group.remove_projects projects: [project_id]
|
132
|
+
end
|
133
|
+
expect(group.group_id).to eq(third_group_id)
|
102
134
|
end
|
103
135
|
|
104
136
|
specify '#add_users_to_group' do
|
@@ -109,6 +141,15 @@ RSpec.describe Lokalise::Client do
|
|
109
141
|
expect(group.team_id).to eq(team_id)
|
110
142
|
expect(group.group_id).to eq(third_group_id)
|
111
143
|
expect(group.members).to include(user_id)
|
144
|
+
|
145
|
+
reloaded_group = VCR.use_cassette('another_team_user_group') do
|
146
|
+
group.reload_data
|
147
|
+
end
|
148
|
+
expect(reloaded_group.group_id).to eq(group.group_id)
|
149
|
+
|
150
|
+
group = VCR.use_cassette('add_users_to_group') do
|
151
|
+
group.add_users users: [user_id]
|
152
|
+
end
|
112
153
|
end
|
113
154
|
|
114
155
|
specify '#remove_users_from_group' do
|
@@ -119,10 +160,19 @@ RSpec.describe Lokalise::Client do
|
|
119
160
|
expect(group.group_id).to eq(third_group_id)
|
120
161
|
expect(group.team_id).to eq(team_id)
|
121
162
|
expect(group.members).to be_empty
|
163
|
+
|
164
|
+
reloaded_group = VCR.use_cassette('another_team_user_group') do
|
165
|
+
group.reload_data
|
166
|
+
end
|
167
|
+
expect(reloaded_group.group_id).to eq(group.group_id)
|
168
|
+
|
169
|
+
group = VCR.use_cassette('remove_users_from_group') do
|
170
|
+
group.remove_users users: [user_id]
|
171
|
+
end
|
122
172
|
end
|
123
173
|
|
124
|
-
context 'team user group chained
|
125
|
-
it '
|
174
|
+
context 'when team user group methods are chained' do
|
175
|
+
it 'supports update and destroy' do
|
126
176
|
group = VCR.use_cassette('another_team_user_group') do
|
127
177
|
test_client.team_user_group team_id, third_group_id
|
128
178
|
end
|
@@ -145,7 +195,7 @@ RSpec.describe Lokalise::Client do
|
|
145
195
|
expect(response['group_deleted']).to eq(true)
|
146
196
|
end
|
147
197
|
|
148
|
-
it '
|
198
|
+
it 'supports project management' do
|
149
199
|
group = VCR.use_cassette('team_user_group') do
|
150
200
|
test_client.team_user_group team_id, group_id
|
151
201
|
end
|
@@ -158,6 +208,15 @@ RSpec.describe Lokalise::Client do
|
|
158
208
|
expect(group.group_id).to eq(group_id)
|
159
209
|
expect(group.projects).to include(another_project_id)
|
160
210
|
|
211
|
+
group = VCR.use_cassette('add_project_to_group_chained') do
|
212
|
+
group.add_projects(projects: [another_project_id])
|
213
|
+
end
|
214
|
+
|
215
|
+
reloaded_group = VCR.use_cassette('team_user_group') do
|
216
|
+
group.reload_data
|
217
|
+
end
|
218
|
+
expect(reloaded_group.group_id).to eq(group.group_id)
|
219
|
+
|
161
220
|
group = VCR.use_cassette('remove_project_from_group_chained') do
|
162
221
|
group.remove_projects(projects: [another_project_id])
|
163
222
|
end
|
@@ -165,9 +224,18 @@ RSpec.describe Lokalise::Client do
|
|
165
224
|
expect(group.team_id).to eq(team_id)
|
166
225
|
expect(group.group_id).to eq(group_id)
|
167
226
|
expect(group.projects).not_to include(another_project_id)
|
227
|
+
|
228
|
+
group = VCR.use_cassette('remove_project_from_group_chained') do
|
229
|
+
group.remove_projects(projects: [another_project_id])
|
230
|
+
end
|
231
|
+
|
232
|
+
reloaded_group = VCR.use_cassette('team_user_group') do
|
233
|
+
group.reload_data
|
234
|
+
end
|
235
|
+
expect(reloaded_group.group_id).to eq(group.group_id)
|
168
236
|
end
|
169
237
|
|
170
|
-
it '
|
238
|
+
it 'supports users management' do
|
171
239
|
group = VCR.use_cassette('team_user_group') do
|
172
240
|
test_client.team_user_group team_id, group_id
|
173
241
|
end
|
@@ -180,6 +248,15 @@ RSpec.describe Lokalise::Client do
|
|
180
248
|
expect(group.group_id).to eq(group_id)
|
181
249
|
expect(group.members).to include(user_id)
|
182
250
|
|
251
|
+
group = VCR.use_cassette('add_user_to_group_chained') do
|
252
|
+
group.add_users(users: [user_id])
|
253
|
+
end
|
254
|
+
|
255
|
+
reloaded_group = VCR.use_cassette('team_user_group') do
|
256
|
+
group.reload_data
|
257
|
+
end
|
258
|
+
expect(reloaded_group.group_id).to eq(group.group_id)
|
259
|
+
|
183
260
|
group = VCR.use_cassette('remove_user_from_group_chained') do
|
184
261
|
group.remove_users(users: [user_id])
|
185
262
|
end
|
@@ -187,6 +264,15 @@ RSpec.describe Lokalise::Client do
|
|
187
264
|
expect(group.team_id).to eq(team_id)
|
188
265
|
expect(group.group_id).to eq(group_id)
|
189
266
|
expect(group.members).not_to include(user_id)
|
267
|
+
|
268
|
+
group = VCR.use_cassette('remove_user_from_group_chained') do
|
269
|
+
group.remove_users(users: [user_id])
|
270
|
+
end
|
271
|
+
|
272
|
+
reloaded_group = VCR.use_cassette('team_user_group') do
|
273
|
+
group.reload_data
|
274
|
+
end
|
275
|
+
expect(reloaded_group.group_id).to eq(group.group_id)
|
190
276
|
end
|
191
277
|
end
|
192
278
|
end
|