ruby-lokalise-api 2.10.0 → 3.0.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 +23 -0
- data/README.md +275 -180
- data/lib/ruby-lokalise-api.rb +2 -0
- data/lib/ruby-lokalise-api/client.rb +1 -0
- data/lib/ruby-lokalise-api/collections/base.rb +3 -2
- data/lib/ruby-lokalise-api/collections/queued_process.rb +15 -0
- data/lib/ruby-lokalise-api/data/attributes.json +12 -1
- data/lib/ruby-lokalise-api/resources/base.rb +33 -17
- data/lib/ruby-lokalise-api/resources/branch.rb +1 -1
- data/lib/ruby-lokalise-api/resources/contributor.rb +1 -1
- data/lib/ruby-lokalise-api/resources/custom_translation_status.rb +1 -1
- data/lib/ruby-lokalise-api/resources/file.rb +4 -1
- data/lib/ruby-lokalise-api/resources/key.rb +1 -1
- data/lib/ruby-lokalise-api/resources/key_comment.rb +1 -1
- data/lib/ruby-lokalise-api/resources/order.rb +2 -0
- data/lib/ruby-lokalise-api/resources/payment_card.rb +1 -1
- data/lib/ruby-lokalise-api/resources/project.rb +1 -1
- data/lib/ruby-lokalise-api/resources/queued_process.rb +18 -0
- data/lib/ruby-lokalise-api/resources/screenshot.rb +1 -1
- data/lib/ruby-lokalise-api/resources/snapshot.rb +3 -1
- data/lib/ruby-lokalise-api/resources/task.rb +1 -1
- data/lib/ruby-lokalise-api/resources/team_user.rb +1 -1
- data/lib/ruby-lokalise-api/resources/translation.rb +1 -1
- data/lib/ruby-lokalise-api/resources/webhook.rb +1 -1
- data/lib/ruby-lokalise-api/rest/comments.rb +5 -5
- data/lib/ruby-lokalise-api/rest/contributors.rb +5 -5
- data/lib/ruby-lokalise-api/rest/custom_translation_statuses.rb +6 -6
- data/lib/ruby-lokalise-api/rest/files.rb +3 -3
- data/lib/ruby-lokalise-api/rest/keys.rb +7 -7
- data/lib/ruby-lokalise-api/rest/languages.rb +6 -6
- data/lib/ruby-lokalise-api/rest/payment_cards.rb +3 -3
- data/lib/ruby-lokalise-api/rest/projects.rb +6 -6
- data/lib/ruby-lokalise-api/rest/queued_processes.rb +26 -0
- data/lib/ruby-lokalise-api/rest/screenshots.rb +5 -5
- data/lib/ruby-lokalise-api/rest/snapshots.rb +4 -4
- data/lib/ruby-lokalise-api/rest/tasks.rb +5 -5
- data/lib/ruby-lokalise-api/rest/team_users.rb +4 -4
- data/lib/ruby-lokalise-api/rest/teams.rb +1 -1
- data/lib/ruby-lokalise-api/rest/translation_providers.rb +2 -2
- data/lib/ruby-lokalise-api/rest/translations.rb +3 -3
- data/lib/ruby-lokalise-api/rest/webhooks.rb +5 -5
- data/lib/ruby-lokalise-api/version.rb +1 -1
- data/ruby-lokalise-api.gemspec +1 -2
- data/spec/lib/ruby-lokalise-api/error_spec.rb +8 -0
- data/spec/lib/ruby-lokalise-api/rest/branches_spec.rb +12 -0
- data/spec/lib/ruby-lokalise-api/rest/comments_spec.rb +12 -0
- data/spec/lib/ruby-lokalise-api/rest/contributors_spec.rb +12 -0
- data/spec/lib/ruby-lokalise-api/rest/custom_translation_statuses_spec.rb +12 -0
- data/spec/lib/ruby-lokalise-api/rest/files_spec.rb +17 -9
- data/spec/lib/ruby-lokalise-api/rest/keys_spec.rb +12 -0
- data/spec/lib/ruby-lokalise-api/rest/orders_spec.rb +12 -0
- data/spec/lib/ruby-lokalise-api/rest/payment_cards_spec.rb +12 -0
- data/spec/lib/ruby-lokalise-api/rest/projects_spec.rb +12 -0
- data/spec/lib/ruby-lokalise-api/rest/queued_processes_spec.rb +58 -0
- data/spec/lib/ruby-lokalise-api/rest/screenshots_spec.rb +12 -0
- data/spec/lib/ruby-lokalise-api/rest/snapshots_spec.rb +25 -0
- data/spec/lib/ruby-lokalise-api/rest/tasks_spec.rb +12 -0
- data/spec/lib/ruby-lokalise-api/rest/team_users_spec.rb +12 -0
- data/spec/lib/ruby-lokalise-api/rest/translations_spec.rb +12 -0
- data/spec/lib/ruby-lokalise-api/rest/webhooks_spec.rb +13 -0
- metadata +11 -6
@@ -4,7 +4,7 @@ module Lokalise
|
|
4
4
|
class Client
|
5
5
|
# Returns all teams available to the user
|
6
6
|
#
|
7
|
-
# @see https://lokalise.
|
7
|
+
# @see https://app.lokalise.com/api2docs/curl/#transition-list-all-teams-get
|
8
8
|
# @return [Lokalise::Collection::Team<Lokalise::Resources::Team>]
|
9
9
|
# @param params [Hash]
|
10
10
|
def teams(params = {})
|
@@ -4,7 +4,7 @@ module Lokalise
|
|
4
4
|
class Client
|
5
5
|
# Returns all translation providers for the given team
|
6
6
|
#
|
7
|
-
# @see https://lokalise.
|
7
|
+
# @see https://app.lokalise.com/api2docs/curl/#transition-list-all-providers-get
|
8
8
|
# @return [Lokalise::Collection::TranslationProvider<Lokalise::Resources::TranslationProvider>]
|
9
9
|
# @param team_id [String]
|
10
10
|
# @param params [Hash]
|
@@ -14,7 +14,7 @@ module Lokalise
|
|
14
14
|
|
15
15
|
# Returns a single translation provider for the given team
|
16
16
|
#
|
17
|
-
# @see https://lokalise.
|
17
|
+
# @see https://app.lokalise.com/api2docs/curl/#transition-retrieve-a-provider-get
|
18
18
|
# @return [Lokalise::Resources::TranslationProvider]
|
19
19
|
# @param team_id [String]
|
20
20
|
# @param provider_id [String, Integer]
|
@@ -4,7 +4,7 @@ module Lokalise
|
|
4
4
|
class Client
|
5
5
|
# Returns all translations for the given project (ungrouped)
|
6
6
|
#
|
7
|
-
# @see https://lokalise.
|
7
|
+
# @see https://app.lokalise.com/api2docs/curl/#transition-list-all-translations-get
|
8
8
|
# @return [Lokalise::Collection::Translation<Lokalise::Resources::Translation>]
|
9
9
|
# @param project_id [String]
|
10
10
|
# @param params [Hash]
|
@@ -14,7 +14,7 @@ module Lokalise
|
|
14
14
|
|
15
15
|
# Returns translation of the given project
|
16
16
|
#
|
17
|
-
# @see https://lokalise.
|
17
|
+
# @see https://app.lokalise.com/api2docs/curl/#transition-retrieve-a-translation-get
|
18
18
|
# @return [Lokalise::Resources::Translation]
|
19
19
|
# @param project_id [String]
|
20
20
|
# @param translation_id [String, Integer]
|
@@ -25,7 +25,7 @@ module Lokalise
|
|
25
25
|
|
26
26
|
# Updates translation of the given project
|
27
27
|
#
|
28
|
-
# @see https://lokalise.
|
28
|
+
# @see https://app.lokalise.com/api2docs/curl/#transition-update-a-translation-put
|
29
29
|
# @return [Lokalise::Resources::Translation]
|
30
30
|
# @param project_id [String]
|
31
31
|
# @param translation_id [String, Integer]
|
@@ -4,7 +4,7 @@ module Lokalise
|
|
4
4
|
class Client
|
5
5
|
# Returns all webhooks for the given project
|
6
6
|
#
|
7
|
-
# @see https://lokalise.
|
7
|
+
# @see https://app.lokalise.com/api2docs/curl/#transition-list-all-webhooks-get
|
8
8
|
# @return [Lokalise::Collection::Webhook<Lokalise::Resources::Webhook>]
|
9
9
|
# @param project_id [String]
|
10
10
|
# @param params [Hash]
|
@@ -14,7 +14,7 @@ module Lokalise
|
|
14
14
|
|
15
15
|
# Returns a single webhook for the given project
|
16
16
|
#
|
17
|
-
# @see https://lokalise.
|
17
|
+
# @see https://app.lokalise.com/api2docs/curl/#transition-retrieve-a-webhook-get
|
18
18
|
# @return [Lokalise::Resources::Webhook]
|
19
19
|
# @param project_id [String]
|
20
20
|
# @param webhook_id [String, Integer]
|
@@ -24,7 +24,7 @@ module Lokalise
|
|
24
24
|
|
25
25
|
# Creates webhook for the given project
|
26
26
|
#
|
27
|
-
# @see https://lokalise.
|
27
|
+
# @see https://app.lokalise.com/api2docs/curl/#transition-create-a-webhook-post
|
28
28
|
# @return [Lokalise::Resources::Webhook]
|
29
29
|
# @param project_id [String]
|
30
30
|
# @param params [Hash]
|
@@ -34,7 +34,7 @@ module Lokalise
|
|
34
34
|
|
35
35
|
# Updates webhook for the given project
|
36
36
|
#
|
37
|
-
# @see https://lokalise.
|
37
|
+
# @see https://app.lokalise.com/api2docs/curl/#transition-update-a-webhook-put
|
38
38
|
# @return [Lokalise::Resources::Webhook]
|
39
39
|
# @param project_id [String]
|
40
40
|
# @param webhook_id [String, Integer]
|
@@ -45,7 +45,7 @@ module Lokalise
|
|
45
45
|
|
46
46
|
# Deletes webhook for the given project
|
47
47
|
#
|
48
|
-
# @see https://lokalise.
|
48
|
+
# @see https://app.lokalise.com/api2docs/curl/#transition-delete-a-webhook-delete
|
49
49
|
# @return [Hash]
|
50
50
|
# @param project_id [String]
|
51
51
|
# @param webhook_id [String, Integer]
|
data/ruby-lokalise-api.gemspec
CHANGED
@@ -12,7 +12,6 @@ Gem::Specification.new do |spec|
|
|
12
12
|
spec.homepage = 'https://github.com/lokalise/ruby-lokalise-api'
|
13
13
|
spec.license = 'MIT'
|
14
14
|
spec.platform = Gem::Platform::RUBY
|
15
|
-
spec.required_ruby_version = '>= 2.4.0'
|
16
15
|
|
17
16
|
spec.files = Dir['README.md', 'LICENSE',
|
18
17
|
'CHANGELOG.md', 'lib/**/*.rb', 'lib/ruby-lokalise-api/data/attributes.json',
|
@@ -28,7 +27,7 @@ Gem::Specification.new do |spec|
|
|
28
27
|
|
29
28
|
spec.add_development_dependency 'codecov', '~> 0.1'
|
30
29
|
spec.add_development_dependency 'dotenv', '~> 2.5'
|
31
|
-
spec.add_development_dependency 'oj', '~> 3.
|
30
|
+
spec.add_development_dependency 'oj', '~> 3.10'
|
32
31
|
spec.add_development_dependency 'rake', '~> 13.0'
|
33
32
|
spec.add_development_dependency 'rspec', '~> 3.6'
|
34
33
|
spec.add_development_dependency 'rubocop', '~> 0.60'
|
@@ -7,6 +7,14 @@ RSpec.describe Lokalise::Error do
|
|
7
7
|
|
8
8
|
after { Lokalise.reset_client! }
|
9
9
|
|
10
|
+
it 'raises a generic error when the code is unknown' do
|
11
|
+
expect do
|
12
|
+
VCR.use_cassette('error_unknown_code') do
|
13
|
+
get 'projects', Lokalise.client('invalid')
|
14
|
+
end
|
15
|
+
end.to raise_error(described_class)
|
16
|
+
end
|
17
|
+
|
10
18
|
it 'raises BadRequest when API token is invalid' do
|
11
19
|
expect do
|
12
20
|
VCR.use_cassette('error_invalid_token') do
|
@@ -40,6 +40,18 @@ RSpec.describe Lokalise::Client do
|
|
40
40
|
expect(branch.created_by_email).to eq('bodrovis@protonmail.com')
|
41
41
|
end
|
42
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
|
+
|
43
55
|
specify '#create_branch' do
|
44
56
|
branch = VCR.use_cassette('create_branch') do
|
45
57
|
test_client.create_branch project_id, name: 'ruby-branch'
|
@@ -49,6 +49,18 @@ RSpec.describe Lokalise::Client do
|
|
49
49
|
expect(comment.added_at_timestamp).to eq(1_544_380_904)
|
50
50
|
end
|
51
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
|
+
|
52
64
|
specify '#create_comments' do
|
53
65
|
comments = VCR.use_cassette('create_comments') do
|
54
66
|
test_client.create_comments project_id, key_id, [
|
@@ -48,6 +48,18 @@ RSpec.describe Lokalise::Client do
|
|
48
48
|
expect(contributor.created_at_timestamp).to eq(1_534_865_725)
|
49
49
|
end
|
50
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
|
+
|
51
63
|
specify '#create_contributors' do
|
52
64
|
contributor = VCR.use_cassette('create_contributors') do
|
53
65
|
test_client.create_contributors project_id,
|
@@ -43,6 +43,18 @@ RSpec.describe Lokalise::Client do
|
|
43
43
|
expect(status.color).to eq('#0079bf')
|
44
44
|
end
|
45
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
|
+
|
46
58
|
specify '#create_translation_status' do
|
47
59
|
title = 'Reviewed by doctors'
|
48
60
|
color = '#f2d600'
|
@@ -35,8 +35,8 @@ RSpec.describe Lokalise::Client do
|
|
35
35
|
specify '#download_files' do
|
36
36
|
response = VCR.use_cassette('download_files') do
|
37
37
|
test_client.download_files project_id,
|
38
|
-
|
39
|
-
|
38
|
+
format: 'po',
|
39
|
+
original_filenames: true
|
40
40
|
end
|
41
41
|
|
42
42
|
expect(response['project_id']).to eq(project_id)
|
@@ -44,15 +44,23 @@ RSpec.describe Lokalise::Client do
|
|
44
44
|
end
|
45
45
|
|
46
46
|
specify '#upload_file' do
|
47
|
-
|
47
|
+
process = VCR.use_cassette('upload_file') do
|
48
48
|
test_client.upload_file project_id,
|
49
|
-
|
50
|
-
|
51
|
-
|
49
|
+
data: 'ZnI6DQogIHRlc3Q6IHRyYW5zbGF0aW9u',
|
50
|
+
filename: 'rspec_async.yml',
|
51
|
+
lang_iso: 'ru'
|
52
52
|
end
|
53
53
|
|
54
|
-
expect(
|
55
|
-
expect(
|
56
|
-
expect(
|
54
|
+
expect(process).to be_an_instance_of(Lokalise::Resources::QueuedProcess)
|
55
|
+
expect(process.process_id).to eq('ff1876382b7ba81f2bb465da8f030196ec401fa6')
|
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')
|
57
65
|
end
|
58
66
|
end
|
@@ -58,6 +58,18 @@ RSpec.describe Lokalise::Client do
|
|
58
58
|
expect(key.base_words).to eq(1)
|
59
59
|
end
|
60
60
|
|
61
|
+
specify '#reload_data' do
|
62
|
+
key = VCR.use_cassette('key') do
|
63
|
+
test_client.key project_id, key_id, disable_references: 0
|
64
|
+
end
|
65
|
+
|
66
|
+
reloaded_key = VCR.use_cassette('key') do
|
67
|
+
key.reload_data disable_references: 0
|
68
|
+
end
|
69
|
+
|
70
|
+
expect(reloaded_key.key_id).to eq(key.key_id)
|
71
|
+
end
|
72
|
+
|
61
73
|
specify '#create_keys' do
|
62
74
|
keys = VCR.use_cassette('create_keys') do
|
63
75
|
test_client.create_keys project_id, key_name: 'rspec_k', platforms: %w[ios]
|
@@ -54,6 +54,18 @@ RSpec.describe Lokalise::Client do
|
|
54
54
|
expect(order.total).to eq(0.07)
|
55
55
|
end
|
56
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
|
+
|
57
69
|
specify '#create_order' do
|
58
70
|
order = VCR.use_cassette('create_order') do
|
59
71
|
test_client.create_order team_id,
|
@@ -55,6 +55,18 @@ RSpec.describe Lokalise::Client do
|
|
55
55
|
expect(card.created_at).to eq('2019-03-19 17:01:22 (Etc/UTC)')
|
56
56
|
end
|
57
57
|
|
58
|
+
specify '#reload_data' do
|
59
|
+
card = VCR.use_cassette('payment_card') do
|
60
|
+
test_client.payment_card card_id
|
61
|
+
end
|
62
|
+
|
63
|
+
reloaded_card = VCR.use_cassette('payment_card') do
|
64
|
+
card.reload_data
|
65
|
+
end
|
66
|
+
|
67
|
+
expect(reloaded_card.card_id).to eq(card.card_id)
|
68
|
+
end
|
69
|
+
|
58
70
|
specify '#destroy_payment_card' do
|
59
71
|
result = VCR.use_cassette('destroy_payment_card') do
|
60
72
|
test_client.destroy_payment_card card_id
|
@@ -51,6 +51,18 @@ RSpec.describe Lokalise::Client do
|
|
51
51
|
expect(project.statistics['progress_total']).to eq(18)
|
52
52
|
end
|
53
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
|
+
|
54
66
|
specify '#create_project' do
|
55
67
|
project = VCR.use_cassette('new_project') do
|
56
68
|
test_client.create_project name: 'rspec proj', description: 'demo project for rspec'
|
@@ -0,0 +1,58 @@
|
|
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) { 'ff1876382b7ba81f2bb465da8f030196ec401fa6' }
|
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
|
+
puts processes.count
|
17
|
+
expect(processes.count).to eq(8)
|
18
|
+
expect(processes.first.process_id).to eq(process_id)
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
specify '#queued_process' do
|
23
|
+
process = VCR.use_cassette('queued_process') do
|
24
|
+
test_client.queued_process project_id, process_id
|
25
|
+
end
|
26
|
+
|
27
|
+
expect(process.branch).to eq('master')
|
28
|
+
expect(process.process_id).to eq(process_id)
|
29
|
+
expect(process.type).to eq('file-import')
|
30
|
+
expect(process.status).to eq('finished')
|
31
|
+
expect(process.message).to eq('')
|
32
|
+
expect(process.created_by).to eq(20_181)
|
33
|
+
expect(process.created_by_email).to eq('bodrovis@protonmail.com')
|
34
|
+
expect(process.created_at).to eq('2020-05-13 11:24:37 (Etc/UTC)')
|
35
|
+
expect(process.created_at_timestamp).to eq(1_589_369_077)
|
36
|
+
files = process.details['files']
|
37
|
+
expect(files.count).to eq(1)
|
38
|
+
expect(files[0]['status']).to eq('finished')
|
39
|
+
expect(files[0]['name_original']).to eq('test_async.json')
|
40
|
+
end
|
41
|
+
|
42
|
+
describe 'process status check' do
|
43
|
+
specify '#reload_data' do
|
44
|
+
queued_process = VCR.use_cassette('upload_file_status') do
|
45
|
+
test_client.queued_process project_id, queued_process_id
|
46
|
+
end
|
47
|
+
|
48
|
+
expect(queued_process.status).to eq('queued')
|
49
|
+
|
50
|
+
reloaded_process = VCR.use_cassette('upload_file_queued_reload') do
|
51
|
+
queued_process.reload_data
|
52
|
+
end
|
53
|
+
|
54
|
+
expect(reloaded_process.process_id).to eq(queued_process.process_id)
|
55
|
+
expect(reloaded_process.status).to eq('finished')
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
@@ -41,6 +41,18 @@ RSpec.describe Lokalise::Client do
|
|
41
41
|
expect(screenshot.height).to eq(32)
|
42
42
|
end
|
43
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
|
+
|
44
56
|
specify '#create_screenshots' do
|
45
57
|
screenshot_from_file do |file|
|
46
58
|
screenshot = VCR.use_cassette('create_screenshots') do
|
@@ -68,6 +68,31 @@ RSpec.describe Lokalise::Client do
|
|
68
68
|
end
|
69
69
|
|
70
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
|
+
|
71
96
|
it 'supports destroy and restore' do
|
72
97
|
snapshot = VCR.use_cassette('create_another_snapshot') do
|
73
98
|
test_client.create_snapshot project_id, title: 'chained'
|