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,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
|