ruby-lokalise-api 6.0.0 → 6.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.
Files changed (54) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -1
  3. data/lib/ruby_lokalise_api/rest/comments.rb +5 -5
  4. data/lib/ruby_lokalise_api/rest/contributors.rb +5 -5
  5. data/lib/ruby_lokalise_api/rest/custom_translation_statuses.rb +6 -6
  6. data/lib/ruby_lokalise_api/rest/files.rb +14 -3
  7. data/lib/ruby_lokalise_api/rest/keys.rb +7 -7
  8. data/lib/ruby_lokalise_api/rest/languages.rb +6 -6
  9. data/lib/ruby_lokalise_api/rest/payment_cards.rb +3 -3
  10. data/lib/ruby_lokalise_api/rest/projects.rb +6 -6
  11. data/lib/ruby_lokalise_api/rest/queued_processes.rb +2 -2
  12. data/lib/ruby_lokalise_api/rest/screenshots.rb +5 -5
  13. data/lib/ruby_lokalise_api/rest/segments.rb +3 -3
  14. data/lib/ruby_lokalise_api/rest/snapshots.rb +4 -4
  15. data/lib/ruby_lokalise_api/rest/tasks.rb +5 -5
  16. data/lib/ruby_lokalise_api/rest/team_user_billing_details.rb +3 -3
  17. data/lib/ruby_lokalise_api/rest/team_users.rb +4 -4
  18. data/lib/ruby_lokalise_api/rest/teams.rb +1 -1
  19. data/lib/ruby_lokalise_api/rest/translation_providers.rb +2 -2
  20. data/lib/ruby_lokalise_api/rest/translations.rb +3 -3
  21. data/lib/ruby_lokalise_api/rest/webhooks.rb +5 -5
  22. data/lib/ruby_lokalise_api/version.rb +1 -1
  23. data/ruby-lokalise-api.gemspec +1 -1
  24. metadata +18 -64
  25. data/spec/lib/ruby_lokalise_api/client/branches_spec.rb +0 -140
  26. data/spec/lib/ruby_lokalise_api/client/comments_spec.rb +0 -118
  27. data/spec/lib/ruby_lokalise_api/client/contributors_spec.rb +0 -132
  28. data/spec/lib/ruby_lokalise_api/client/custom_translation_statuses_spec.rb +0 -131
  29. data/spec/lib/ruby_lokalise_api/client/files_spec.rb +0 -66
  30. data/spec/lib/ruby_lokalise_api/client/keys_spec.rb +0 -199
  31. data/spec/lib/ruby_lokalise_api/client/languages_spec.rb +0 -134
  32. data/spec/lib/ruby_lokalise_api/client/orders_spec.rb +0 -113
  33. data/spec/lib/ruby_lokalise_api/client/payment_cards_spec.rb +0 -92
  34. data/spec/lib/ruby_lokalise_api/client/projects_spec.rb +0 -150
  35. data/spec/lib/ruby_lokalise_api/client/queued_processes_spec.rb +0 -57
  36. data/spec/lib/ruby_lokalise_api/client/screenshots_spec.rb +0 -127
  37. data/spec/lib/ruby_lokalise_api/client/segments_spec.rb +0 -106
  38. data/spec/lib/ruby_lokalise_api/client/snapshots_spec.rb +0 -117
  39. data/spec/lib/ruby_lokalise_api/client/tasks_spec.rb +0 -145
  40. data/spec/lib/ruby_lokalise_api/client/team_user_billing_details_spec.rb +0 -48
  41. data/spec/lib/ruby_lokalise_api/client/team_user_groups_spec.rb +0 -278
  42. data/spec/lib/ruby_lokalise_api/client/team_users_spec.rb +0 -95
  43. data/spec/lib/ruby_lokalise_api/client/teams_spec.rb +0 -25
  44. data/spec/lib/ruby_lokalise_api/client/translation_providers_spec.rb +0 -48
  45. data/spec/lib/ruby_lokalise_api/client/translations_spec.rb +0 -118
  46. data/spec/lib/ruby_lokalise_api/client/webhooks_spec.rb +0 -126
  47. data/spec/lib/ruby_lokalise_api/connection_spec.rb +0 -68
  48. data/spec/lib/ruby_lokalise_api/custom_json_parser_spec.rb +0 -81
  49. data/spec/lib/ruby_lokalise_api/error_spec.rb +0 -41
  50. data/spec/lib/ruby_lokalise_api/oauth2/auth_spec.rb +0 -73
  51. data/spec/lib/ruby_lokalise_api_spec.rb +0 -47
  52. data/spec/spec_helper.rb +0 -22
  53. data/spec/support/test_client.rb +0 -15
  54. data/spec/support/vcr.rb +0 -15
@@ -1,92 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- RSpec.describe RubyLokaliseApi::Client do
4
- let(:card_id) { 1773 }
5
-
6
- describe '#payment_cards' do
7
- it 'returns all payment cards' do
8
- cards = VCR.use_cassette('all_payment_cards') do
9
- test_client.payment_cards
10
- end
11
-
12
- expect(cards.user_id).to eq(20_181)
13
- card = cards.collection.first
14
- expect(card.card_id).to eq(1774)
15
- expect(card.last4).to eq('0358')
16
- end
17
-
18
- it 'supports pagination' do
19
- cards = VCR.use_cassette('all_payment_cards_pagination') do
20
- test_client.payment_cards limit: 1, page: 1
21
- end
22
-
23
- expect(cards.collection.count).to eq(1)
24
- expect(cards.total_results).to eq(1)
25
- expect(cards.total_pages).to eq(1)
26
- expect(cards.results_per_page).to eq(1)
27
- expect(cards.current_page).to eq(1)
28
-
29
- expect(cards.next_page?).to be(false)
30
- expect(cards.last_page?).to be(true)
31
- expect(cards.prev_page?).to be(false)
32
- expect(cards.first_page?).to be(true)
33
- end
34
- end
35
-
36
- specify '#create_payment_card' do
37
- card = VCR.use_cassette('new_payment_card') do
38
- test_client.create_payment_card number: '4242424242424242',
39
- cvc: '123',
40
- exp_month: 1,
41
- exp_year: 2030
42
- end
43
-
44
- expect(card.card_id).to eq(card_id)
45
- expect(card.last4).to eq('4242')
46
- end
47
-
48
- specify '#payment_card' do
49
- card = VCR.use_cassette('payment_card') do
50
- test_client.payment_card card_id
51
- end
52
-
53
- expect(card.user_id).to eq(20_181)
54
- expect(card.card_id).to eq(card_id)
55
- expect(card.brand).to eq('Visa')
56
- expect(card.last4).to eq('4242')
57
- expect(card.created_at).to eq('2019-03-19 17:01:22 (Etc/UTC)')
58
- end
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
-
72
- specify '#destroy_payment_card' do
73
- result = VCR.use_cassette('destroy_payment_card') do
74
- test_client.destroy_payment_card card_id
75
- end
76
-
77
- expect(result['card_deleted']).to be(true)
78
- expect(result['card_id']).to eq(card_id)
79
- end
80
-
81
- it 'supports chained destroy' do
82
- card = VCR.use_cassette('payment_card') do
83
- test_client.payment_card card_id
84
- end
85
- result = VCR.use_cassette('destroy_payment_card') do
86
- card.destroy
87
- end
88
-
89
- expect(result['card_deleted']).to be(true)
90
- expect(result['card_id']).to eq(card_id)
91
- end
92
- end
@@ -1,150 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- RSpec.describe RubyLokaliseApi::Client do
4
- let(:new_project_id) { '572222075c0953fd70d492.30502628' }
5
-
6
- describe '#projects' do
7
- it 'returns all projects' do
8
- projects = VCR.use_cassette('all_projects') do
9
- test_client.projects
10
- end.collection
11
- project = projects.first
12
-
13
- expect(projects.count).to eq(5)
14
- expect(project.name).to eq('demo phoenix')
15
- end
16
-
17
- it 'supports pagination' do
18
- projects = VCR.use_cassette('all_projects_pagination') do
19
- test_client.projects limit: 1, page: 2
20
- end
21
-
22
- expect(projects.collection.count).to eq(1)
23
- expect(projects.total_results).to eq(5)
24
- expect(projects.total_pages).to eq(5)
25
- expect(projects.results_per_page).to eq(1)
26
- expect(projects.current_page).to eq(2)
27
-
28
- expect(projects.next_page?).to be(true)
29
- expect(projects.last_page?).to be(false)
30
- expect(projects.prev_page?).to be(true)
31
- expect(projects.first_page?).to be(false)
32
- end
33
- end
34
-
35
- specify '#project' do
36
- project = VCR.use_cassette('project') do
37
- test_client.project '803826145ba90b42d5d860.46800099'
38
- end
39
-
40
- expect(project.project_id).to eq('803826145ba90b42d5d860.46800099')
41
- expect(project.name).to eq('demo phoenix')
42
- expect(project.team_id).to eq(176_692)
43
- expect(project.description).to eq('')
44
- expect(project.created_at).to eq('2018-09-24 16:05:22 (Etc/UTC)')
45
- expect(project.created_by).to eq(20_181)
46
- expect(project.created_by_email).to eq('bodrovis@protonmail.com')
47
- expect(project.created_at_timestamp).to eq(1_537_805_122)
48
- expect(project.base_language_id).to eq(640)
49
- expect(project.base_language_iso).to eq('en')
50
- expect(project.settings['per_platform_key_names']).to be(false)
51
- expect(project.statistics['progress_total']).to eq(18)
52
- end
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
-
66
- specify '#create_project' do
67
- project = VCR.use_cassette('new_project') do
68
- test_client.create_project name: 'rspec proj', description: 'demo project for rspec'
69
- end
70
-
71
- expect(project.name).to eq('rspec proj')
72
- expect(project.description).to eq('demo project for rspec')
73
- expect(project.team_id).to eq(176_692)
74
- end
75
-
76
- context 'with OAuth 2 token' do
77
- it 'creates a project' do
78
- name = 'OAuth 2 project'
79
- description = 'Via OAuth 2'
80
- project = VCR.use_cassette('oauth2/new_project') do
81
- test_oauth2_client.create_project name: name, description: description
82
- end
83
-
84
- expect(project.name).to eq(name)
85
- expect(project.description).to eq(description)
86
- end
87
- end
88
-
89
- specify '#update_project' do
90
- project = VCR.use_cassette('update_project') do
91
- test_client.update_project new_project_id,
92
- name: 'rspec proj updated', description: 'updated project for rspec'
93
- end
94
-
95
- expect(project.name).to eq('rspec proj updated')
96
- expect(project.description).to eq('updated project for rspec')
97
- expect(project.team_id).to eq(176_692)
98
- end
99
-
100
- specify '#empty_project' do
101
- response = VCR.use_cassette('empty_project') do
102
- test_client.empty_project new_project_id
103
- end
104
-
105
- expect(response['project_id']).to eq(new_project_id)
106
- expect(response['keys_deleted']).to be(true)
107
- end
108
-
109
- specify '#destroy_project' do
110
- response = VCR.use_cassette('delete_project') do
111
- test_client.destroy_project new_project_id
112
- end
113
- expect(response['project_id']).to eq(new_project_id)
114
- expect(response['project_deleted']).to be(true)
115
- end
116
-
117
- context 'when project methods are chained' do
118
- it 'supports update, empty, and destroy' do
119
- project = VCR.use_cassette('create_another_project') do
120
- test_client.create_project name: 'chained proj'
121
- end
122
-
123
- expect(project.name).to eq('chained proj')
124
-
125
- path = project.path
126
-
127
- updated_project = VCR.use_cassette('update_project_chained') do
128
- project.update name: 'updated!'
129
- end
130
-
131
- expect(updated_project.client.token).to eq(test_client.token)
132
- expect(updated_project.name).to eq('updated!')
133
- expect(updated_project.path).to eq(path)
134
-
135
- empty_response = VCR.use_cassette('empty_project_chained') do
136
- updated_project.empty
137
- end
138
-
139
- expect(empty_response['project_id']).to eq(updated_project.project_id)
140
- expect(empty_response['keys_deleted']).to be(true)
141
-
142
- delete_response = VCR.use_cassette('delete_project_chained') do
143
- updated_project.destroy
144
- end
145
-
146
- expect(delete_response['project_id']).to eq(updated_project.project_id)
147
- expect(delete_response['project_deleted']).to be(true)
148
- end
149
- end
150
- end
@@ -1,57 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- RSpec.describe RubyLokaliseApi::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,127 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- RSpec.describe RubyLokaliseApi::Client do
4
- let(:project_id) { '803826145ba90b42d5d860.46800099' }
5
- let(:screenshot_id) { 115_185 }
6
-
7
- describe '#screenshots' do
8
- it 'returns all screenshots' do
9
- screenshots = VCR.use_cassette('all_screenshots') do
10
- test_client.screenshots project_id
11
- end.collection
12
-
13
- expect(screenshots.count).to eq(1)
14
- end
15
-
16
- it 'supports pagination' do
17
- screenshots = VCR.use_cassette('all_screenshots_pagination') do
18
- test_client.screenshots project_id, limit: 1, page: 1
19
- end
20
-
21
- expect(screenshots.collection.count).to eq(1)
22
- expect(screenshots.total_results).to eq(1)
23
- expect(screenshots.total_pages).to eq(1)
24
- expect(screenshots.results_per_page).to eq(1)
25
- expect(screenshots.current_page).to eq(1)
26
- end
27
- end
28
-
29
- specify '#screenshot' do
30
- screenshot = VCR.use_cassette('screenshot') do
31
- test_client.screenshot project_id, screenshot_id
32
- end
33
-
34
- expect(screenshot.screenshot_id).to eq(screenshot_id)
35
- expect(screenshot.key_ids).to eq([])
36
- expect(screenshot.url).to include('amazonaws.com')
37
- expect(screenshot.title).to eq('rspec screen')
38
- expect(screenshot.description).to eq('')
39
- expect(screenshot.screenshot_tags).to eq([])
40
- expect(screenshot.width).to eq(125)
41
- expect(screenshot.height).to eq(32)
42
- end
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
-
56
- specify '#create_screenshots' do
57
- screenshot_from_file do |file|
58
- screenshot = VCR.use_cassette('create_screenshots') do
59
- test_client.create_screenshots project_id, data: file.read, title: 'rspec screen'
60
- end.collection.first
61
-
62
- expect(screenshot.title).to eq('rspec screen')
63
- expect(screenshot.url).to include('amazonaws.com')
64
- end
65
- end
66
-
67
- specify '#update_screenshot' do
68
- screenshot = VCR.use_cassette('update_screenshot') do
69
- test_client.update_screenshot project_id, screenshot_id, tags: %w[demo rspec],
70
- description: 'demo desc'
71
- end
72
-
73
- expect(screenshot.screenshot_id).to eq(screenshot_id)
74
- expect(screenshot.screenshot_tags).to eq(%w[demo rspec])
75
- expect(screenshot.description).to eq('demo desc')
76
- end
77
-
78
- specify '#destroy_screenshot' do
79
- response = VCR.use_cassette('delete_screenshot') do
80
- test_client.destroy_screenshot project_id, screenshot_id
81
- end
82
- expect(response['project_id']).to eq(project_id)
83
- expect(response['screenshot_deleted']).to be(true)
84
- end
85
-
86
- context 'when screenshot methods are chained' do
87
- it 'supports update and destroy' do
88
- screenshot = screenshot_from_file do |file|
89
- VCR.use_cassette('create_another_screenshot') do
90
- test_client.create_screenshots project_id, data: file.read, title: 'chained screen'
91
- end.collection.first
92
- end
93
-
94
- expect(screenshot.client.token).to eq(test_client.token)
95
- expect(screenshot.title).to eq('chained screen')
96
-
97
- path = screenshot.path
98
-
99
- updated_screenshot = VCR.use_cassette('update_screenshot_chained') do
100
- screenshot.update title: 'updated!'
101
- end
102
-
103
- expect(updated_screenshot.client.token).to eq(test_client.token)
104
- expect(updated_screenshot.title).to eq('updated!')
105
- expect(updated_screenshot.screenshot_id).to eq(screenshot.screenshot_id)
106
- expect(updated_screenshot.path).to eq(path)
107
-
108
- delete_response = VCR.use_cassette('delete_screenshot_chained') do
109
- updated_screenshot.destroy
110
- end
111
-
112
- expect(delete_response['project_id']).to eq(project_id)
113
- expect(delete_response['screenshot_deleted']).to be(true)
114
- end
115
- end
116
- end
117
-
118
- def screenshot_from_file
119
- file = File.open File.expand_path('spec/fixtures/screenshot_base64.txt')
120
- begin
121
- yield file
122
- rescue StandardError => e
123
- puts e
124
- ensure
125
- file.close
126
- end
127
- end
@@ -1,106 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- RSpec.describe RubyLokaliseApi::Client do
4
- let(:project_id) { '39066161618d4ecb9fdc12.00274309' }
5
- let(:key_id) { 129_358_815 }
6
-
7
- describe '#segments' do
8
- it 'returns all segments for a key under lang_iso' do
9
- segments = VCR.use_cassette('all_key_segments') do
10
- test_client.segments project_id, key_id, 'en'
11
- end.collection
12
-
13
- expect(segments.count).to eq(4)
14
- expect(segments.first.value).to eq('Hello!')
15
- end
16
- end
17
-
18
- describe '#segment' do
19
- it 'returns a single segment' do
20
- lang_iso = 'en'
21
- segment_number = 2
22
-
23
- segment = VCR.use_cassette('key_segment') do
24
- test_client.segment project_id, key_id, lang_iso, segment_number
25
- end
26
-
27
- expect(segment.key_id).to eq(key_id)
28
- expect(segment.segment_number).to eq(segment_number)
29
- expect(segment.language_iso).to eq(lang_iso)
30
- expect(segment.modified_at).to eq('2021-11-22 16:46:50 (Etc/UTC)')
31
- expect(segment.modified_at_timestamp).to eq(1_637_599_610)
32
- expect(segment.modified_by).to eq(20_181)
33
- expect(segment.modified_by_email).to eq('bodrovis@protonmail.com')
34
- expect(segment.value).to eq('This is just a simple text.')
35
- expect(segment.is_fuzzy).to be(false)
36
- expect(segment.is_reviewed).to be(false)
37
- expect(segment.reviewed_by).to eq(0)
38
- expect(segment.words).to eq(6)
39
- expect(segment.custom_translation_statuses.first['color']).to eq('#61bd4f')
40
- end
41
-
42
- it 'allows to pass params' do
43
- lang_iso = 'en'
44
- segment_number = 2
45
-
46
- segment = VCR.use_cassette('key_segment_params') do
47
- test_client.segment project_id, key_id, lang_iso, segment_number, disable_references: '1'
48
- end
49
-
50
- expect(segment.segment_number).to eq(segment_number)
51
- expect(segment.value).to eq('This is just a simple text.')
52
- expect(segment.language_iso).to eq(lang_iso)
53
- end
54
- end
55
-
56
- specify '#update_segment' do
57
- lang_iso = 'en'
58
- segment_number = 3
59
-
60
- segment = VCR.use_cassette('update_key_segment') do
61
- test_client.update_segment project_id, key_id, lang_iso, segment_number,
62
- value: 'Updated via API',
63
- is_reviewed: true
64
- end
65
-
66
- expect(segment.segment_number).to eq(segment_number)
67
- expect(segment.value).to eq('Updated via API')
68
- expect(segment.language_iso).to eq(lang_iso)
69
- end
70
-
71
- context 'when segment methods are chained' do
72
- specify '#reload_data' do
73
- lang_iso = 'en'
74
- segment_number = 2
75
-
76
- segment = VCR.use_cassette('key_segment') do
77
- test_client.segment project_id, key_id, lang_iso, segment_number
78
- end
79
-
80
- reloaded_segment = VCR.use_cassette('reload_key_segment') do
81
- segment.reload_data
82
- end
83
-
84
- expect(reloaded_segment.segment_number).to eq(segment_number)
85
- expect(reloaded_segment.key_id).to eq(key_id)
86
- end
87
-
88
- specify '#update' do
89
- lang_iso = 'en'
90
- segment_number = 4
91
-
92
- segment = VCR.use_cassette('another_key_segment') do
93
- test_client.segment project_id, key_id, lang_iso, segment_number
94
- end
95
-
96
- updated_segment = VCR.use_cassette('update_key_segment_chained') do
97
- segment.update value: 'Chain Updated',
98
- is_fuzzy: true
99
- end
100
-
101
- expect(updated_segment.segment_number).to eq(segment_number)
102
- expect(updated_segment.is_fuzzy).to be(true)
103
- expect(updated_segment.value).to eq('Chain Updated')
104
- end
105
- end
106
- end
@@ -1,117 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- RSpec.describe RubyLokaliseApi::Client do
4
- let(:project_id) { '803826145ba90b42d5d860.46800099' }
5
- let(:snapshot_id) { 27_881 }
6
-
7
- describe '#snapshots' do
8
- it 'returns all snapshots' do
9
- snapshots = VCR.use_cassette('all_snapshots') do
10
- test_client.snapshots project_id
11
- end.collection
12
-
13
- snapshot = snapshots.first
14
-
15
- expect(snapshots.count).to eq(1)
16
- expect(snapshot.title).to eq('test rspec')
17
- expect(snapshot.snapshot_id).to eq(27_882)
18
- expect(snapshot.created_at).to eq('2018-12-10 17:02:04 (Etc/UTC)')
19
- expect(snapshot.created_by).to eq(20_181)
20
- expect(snapshot.created_by_email).to eq('bodrovis@protonmail.com')
21
- expect(snapshot.created_at_timestamp).to eq(1_544_461_324)
22
- end
23
-
24
- it 'supports pagination' do
25
- snapshots = VCR.use_cassette('all_snapshots_pagination') do
26
- test_client.snapshots project_id, limit: 1, page: 2
27
- end
28
-
29
- expect(snapshots.collection.count).to eq(1)
30
- expect(snapshots.total_results).to eq(2)
31
- expect(snapshots.total_pages).to eq(2)
32
- expect(snapshots.results_per_page).to eq(1)
33
- expect(snapshots.current_page).to eq(2)
34
-
35
- expect(snapshots.next_page?).to be(false)
36
- expect(snapshots.last_page?).to be(true)
37
- expect(snapshots.prev_page?).to be(true)
38
- expect(snapshots.first_page?).to be(false)
39
- end
40
- end
41
-
42
- specify '#create_snapshot' do
43
- snapshot = VCR.use_cassette('create_snapshot') do
44
- test_client.create_snapshot project_id, title: 'test rspec'
45
- end
46
-
47
- expect(snapshot.title).to eq('test rspec')
48
- end
49
-
50
- specify '#restore_snapshot' do
51
- project = VCR.use_cassette('restore_snapshot') do
52
- test_client.restore_snapshot project_id, snapshot_id
53
- end
54
-
55
- expect(project.name).to eq('demo phoenix copy')
56
- expect(project.created_by_email).to eq('bodrovis@protonmail.com')
57
- # Restore creates a new copy of the project!
58
- expect(project.project_id).not_to eq(project_id)
59
- end
60
-
61
- specify '#destroy_snapshot' do
62
- response = VCR.use_cassette('delete_snapshot') do
63
- test_client.destroy_snapshot project_id, snapshot_id
64
- end
65
-
66
- expect(response['project_id']).to eq(project_id)
67
- expect(response['snapshot_deleted']).to be(true)
68
- end
69
-
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.token).to eq(test_client.token)
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 be(true)
94
- end
95
-
96
- it 'supports destroy and restore' do
97
- snapshot = VCR.use_cassette('create_another_snapshot') do
98
- test_client.create_snapshot project_id, title: 'chained'
99
- end
100
-
101
- expect(snapshot.title).to eq('chained')
102
-
103
- restored_project = VCR.use_cassette('restore_snapshot_chained') do
104
- snapshot.restore
105
- end
106
-
107
- expect(restored_project.name).to eq('demo phoenix copy')
108
-
109
- delete_response = VCR.use_cassette('delete_snapshot_chained') do
110
- snapshot.destroy
111
- end
112
-
113
- expect(delete_response['project_id']).to eq(project_id)
114
- expect(delete_response['snapshot_deleted']).to be(true)
115
- end
116
- end
117
- end