ruby-lokalise-api 1.0.1
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 +7 -0
- data/.github/CODE_OF_CONDUCT.md +46 -0
- data/.github/CONTRIBUTING.md +14 -0
- data/.github/ISSUE_TEMPLATE.md +13 -0
- data/.github/PULL_REQUEST_TEMPLATE.md +11 -0
- data/CHANGELOG.md +5 -0
- data/Gemfile +3 -0
- data/LICENSE +22 -0
- data/README.md +917 -0
- data/Rakefile +16 -0
- data/lib/ruby-lokalise-api.rb +60 -0
- data/lib/ruby-lokalise-api/client.rb +22 -0
- data/lib/ruby-lokalise-api/collections/base.rb +46 -0
- data/lib/ruby-lokalise-api/collections/contributor.rb +13 -0
- data/lib/ruby-lokalise-api/collections/file.rb +13 -0
- data/lib/ruby-lokalise-api/collections/key.rb +13 -0
- data/lib/ruby-lokalise-api/collections/key_comment.rb +13 -0
- data/lib/ruby-lokalise-api/collections/project.rb +13 -0
- data/lib/ruby-lokalise-api/collections/project_comment.rb +13 -0
- data/lib/ruby-lokalise-api/collections/project_language.rb +13 -0
- data/lib/ruby-lokalise-api/collections/screenshot.rb +13 -0
- data/lib/ruby-lokalise-api/collections/snapshot.rb +13 -0
- data/lib/ruby-lokalise-api/collections/system_language.rb +13 -0
- data/lib/ruby-lokalise-api/collections/task.rb +13 -0
- data/lib/ruby-lokalise-api/collections/team.rb +13 -0
- data/lib/ruby-lokalise-api/collections/team_user.rb +13 -0
- data/lib/ruby-lokalise-api/collections/translation.rb +13 -0
- data/lib/ruby-lokalise-api/connection.rb +17 -0
- data/lib/ruby-lokalise-api/data/attributes.json +127 -0
- data/lib/ruby-lokalise-api/error.rb +47 -0
- data/lib/ruby-lokalise-api/request.rb +60 -0
- data/lib/ruby-lokalise-api/resources/base.rb +117 -0
- data/lib/ruby-lokalise-api/resources/contributor.rb +13 -0
- data/lib/ruby-lokalise-api/resources/file.rb +25 -0
- data/lib/ruby-lokalise-api/resources/key.rb +13 -0
- data/lib/ruby-lokalise-api/resources/key_comment.rb +15 -0
- data/lib/ruby-lokalise-api/resources/project.rb +18 -0
- data/lib/ruby-lokalise-api/resources/project_comment.rb +7 -0
- data/lib/ruby-lokalise-api/resources/project_language.rb +15 -0
- data/lib/ruby-lokalise-api/resources/screenshot.rb +13 -0
- data/lib/ruby-lokalise-api/resources/snapshot.rb +17 -0
- data/lib/ruby-lokalise-api/resources/system_language.rb +7 -0
- data/lib/ruby-lokalise-api/resources/task.rb +13 -0
- data/lib/ruby-lokalise-api/resources/team.rb +6 -0
- data/lib/ruby-lokalise-api/resources/team_user.rb +13 -0
- data/lib/ruby-lokalise-api/resources/translation.rb +13 -0
- data/lib/ruby-lokalise-api/rest/comments.rb +57 -0
- data/lib/ruby-lokalise-api/rest/contributors.rb +54 -0
- data/lib/ruby-lokalise-api/rest/files.rb +33 -0
- data/lib/ruby-lokalise-api/rest/keys.rb +75 -0
- data/lib/ruby-lokalise-api/rest/languages.rb +63 -0
- data/lib/ruby-lokalise-api/rest/projects.rb +58 -0
- data/lib/ruby-lokalise-api/rest/screenshots.rb +54 -0
- data/lib/ruby-lokalise-api/rest/snapshots.rb +43 -0
- data/lib/ruby-lokalise-api/rest/tasks.rb +54 -0
- data/lib/ruby-lokalise-api/rest/team_users.rb +44 -0
- data/lib/ruby-lokalise-api/rest/teams.rb +12 -0
- data/lib/ruby-lokalise-api/rest/translations.rb +35 -0
- data/lib/ruby-lokalise-api/utils/attribute_helpers.rb +52 -0
- data/lib/ruby-lokalise-api/utils/string_utils.rb +21 -0
- data/lib/ruby-lokalise-api/version.rb +3 -0
- data/ruby-lokalise-api.gemspec +32 -0
- data/spec/lib/ruby-lokalise-api/error_spec.rb +23 -0
- data/spec/lib/ruby-lokalise-api/rest/comments_spec.rb +78 -0
- data/spec/lib/ruby-lokalise-api/rest/contributors_spec.rb +79 -0
- data/spec/lib/ruby-lokalise-api/rest/files_spec.rb +53 -0
- data/spec/lib/ruby-lokalise-api/rest/keys_spec.rb +119 -0
- data/spec/lib/ruby-lokalise-api/rest/languages_spec.rb +91 -0
- data/spec/lib/ruby-lokalise-api/rest/projects_spec.rb +79 -0
- data/spec/lib/ruby-lokalise-api/rest/screenshots_spec.rb +76 -0
- data/spec/lib/ruby-lokalise-api/rest/snapshots_spec.rb +61 -0
- data/spec/lib/ruby-lokalise-api/rest/tasks_spec.rb +89 -0
- data/spec/lib/ruby-lokalise-api/rest/team_users_spec.rb +56 -0
- data/spec/lib/ruby-lokalise-api/rest/teams_spec.rb +22 -0
- data/spec/lib/ruby-lokalise-api/rest/translations_spec.rb +54 -0
- data/spec/lib/ruby-lokalise-api/utils/snakecase_spec.rb +17 -0
- data/spec/lib/ruby-lokalise-api_spec.rb +13 -0
- data/spec/spec_helper.rb +15 -0
- data/spec/support/test_client.rb +5 -0
- data/spec/support/vcr.rb +8 -0
- metadata +255 -0
@@ -0,0 +1,91 @@
|
|
1
|
+
RSpec.describe Lokalise::Client do
|
2
|
+
let(:project_id) { '803826145ba90b42d5d860.46800099' }
|
3
|
+
let(:language_id) { 640 }
|
4
|
+
let(:new_language_id) { 894 }
|
5
|
+
|
6
|
+
describe '#system_languages' do
|
7
|
+
it 'should return all system languages' do
|
8
|
+
languages = VCR.use_cassette('all_system_languages') do
|
9
|
+
test_client.system_languages
|
10
|
+
end.collection
|
11
|
+
|
12
|
+
expect(languages.count).to eq(100)
|
13
|
+
expect(languages.first.lang_iso).to eq('ab')
|
14
|
+
end
|
15
|
+
|
16
|
+
it 'should support pagination' do
|
17
|
+
languages = VCR.use_cassette('all_system_languages_pagination') do
|
18
|
+
test_client.system_languages limit: 10, page: 3
|
19
|
+
end
|
20
|
+
|
21
|
+
expect(languages.collection.count).to eq(10)
|
22
|
+
expect(languages.total_results).to eq(618)
|
23
|
+
expect(languages.total_pages).to eq(62)
|
24
|
+
expect(languages.results_per_page).to eq(10)
|
25
|
+
expect(languages.current_page).to eq(3)
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
describe '#project_languages' do
|
30
|
+
it 'should return all project languages' do
|
31
|
+
languages = VCR.use_cassette('all_project_languages') do
|
32
|
+
test_client.project_languages project_id
|
33
|
+
end.collection
|
34
|
+
|
35
|
+
expect(languages.count).to eq(3)
|
36
|
+
expect(languages.first.lang_iso).to eq('en')
|
37
|
+
end
|
38
|
+
|
39
|
+
it 'should support pagination' do
|
40
|
+
languages = VCR.use_cassette('all_project_languages_pagination') do
|
41
|
+
test_client.project_languages project_id, limit: 1, page: 2
|
42
|
+
end
|
43
|
+
|
44
|
+
expect(languages.collection.count).to eq(1)
|
45
|
+
expect(languages.total_results).to eq(3)
|
46
|
+
expect(languages.total_pages).to eq(3)
|
47
|
+
expect(languages.results_per_page).to eq(1)
|
48
|
+
expect(languages.current_page).to eq(2)
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
specify '#language' do
|
53
|
+
language = VCR.use_cassette('language') do
|
54
|
+
test_client.language project_id, language_id
|
55
|
+
end
|
56
|
+
|
57
|
+
expect(language.lang_id).to eq(language_id)
|
58
|
+
expect(language.lang_iso).to eq('en')
|
59
|
+
expect(language.lang_name).to eq('English')
|
60
|
+
expect(language.is_rtl).to eq(false)
|
61
|
+
expect(language.plural_forms).to eq(%w[one other])
|
62
|
+
end
|
63
|
+
|
64
|
+
specify '#create_languages' do
|
65
|
+
language = VCR.use_cassette('create_languages') do
|
66
|
+
test_client.create_languages project_id, lang_iso: 'ab', custom_name: 'rspec lang'
|
67
|
+
end.collection.first
|
68
|
+
|
69
|
+
expect(language.lang_name).to eq('rspec lang')
|
70
|
+
expect(language.lang_iso).to eq('ab')
|
71
|
+
end
|
72
|
+
|
73
|
+
specify '#update_language' do
|
74
|
+
language = VCR.use_cassette('update_language') do
|
75
|
+
test_client.update_language project_id, new_language_id, lang_name: 'updated lang',
|
76
|
+
plural_forms: %w[one]
|
77
|
+
end
|
78
|
+
|
79
|
+
expect(language.lang_name).to eq('updated lang')
|
80
|
+
expect(language.lang_iso).to eq('ab')
|
81
|
+
expect(language.plural_forms).to eq(%w[one])
|
82
|
+
end
|
83
|
+
|
84
|
+
specify '#delete_language' do
|
85
|
+
response = VCR.use_cassette('delete_language') do
|
86
|
+
test_client.delete_language project_id, new_language_id
|
87
|
+
end
|
88
|
+
expect(response['project_id']).to eq(project_id)
|
89
|
+
expect(response['language_deleted']).to eq(true)
|
90
|
+
end
|
91
|
+
end
|
@@ -0,0 +1,79 @@
|
|
1
|
+
RSpec.describe Lokalise::Client do
|
2
|
+
let(:new_project_id) { '572222075c0953fd70d492.30502628' }
|
3
|
+
|
4
|
+
describe '#projects' do
|
5
|
+
it 'should return all projects' do
|
6
|
+
projects = VCR.use_cassette('all_projects') do
|
7
|
+
test_client.projects
|
8
|
+
end.collection
|
9
|
+
project = projects.first
|
10
|
+
|
11
|
+
expect(projects.count).to eq(5)
|
12
|
+
expect(project.name).to eq('demo phoenix')
|
13
|
+
end
|
14
|
+
|
15
|
+
it 'should support pagination' do
|
16
|
+
projects = VCR.use_cassette('all_projects_pagination') do
|
17
|
+
test_client.projects limit: 1, page: 2
|
18
|
+
end
|
19
|
+
|
20
|
+
expect(projects.collection.count).to eq(1)
|
21
|
+
expect(projects.total_results).to eq(5)
|
22
|
+
expect(projects.total_pages).to eq(5)
|
23
|
+
expect(projects.results_per_page).to eq(1)
|
24
|
+
expect(projects.current_page).to eq(2)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
specify '#project' do
|
29
|
+
project = VCR.use_cassette('project') do
|
30
|
+
test_client.project '803826145ba90b42d5d860.46800099'
|
31
|
+
end
|
32
|
+
|
33
|
+
expect(project.project_id).to eq('803826145ba90b42d5d860.46800099')
|
34
|
+
expect(project.name).to eq('demo phoenix')
|
35
|
+
expect(project.team_id).to eq(176_692)
|
36
|
+
expect(project.description).to eq('')
|
37
|
+
expect(project.created_at).to eq('2018-09-24 18:05:22 (Etc/UTC)')
|
38
|
+
expect(project.created_by).to eq(20_181)
|
39
|
+
expect(project.created_by_email).to eq('bodrovis@protonmail.com')
|
40
|
+
end
|
41
|
+
|
42
|
+
specify '#create_project' do
|
43
|
+
project = VCR.use_cassette('new_project') do
|
44
|
+
test_client.create_project name: 'rspec proj', description: 'demo project for rspec'
|
45
|
+
end
|
46
|
+
|
47
|
+
expect(project.name).to eq('rspec proj')
|
48
|
+
expect(project.description).to eq('demo project for rspec')
|
49
|
+
expect(project.team_id).to eq(176_692)
|
50
|
+
end
|
51
|
+
|
52
|
+
specify '#update_project' do
|
53
|
+
project = VCR.use_cassette('update_project') do
|
54
|
+
test_client.update_project new_project_id,
|
55
|
+
name: 'rspec proj updated', description: 'updated project for rspec'
|
56
|
+
end
|
57
|
+
|
58
|
+
expect(project.name).to eq('rspec proj updated')
|
59
|
+
expect(project.description).to eq('updated project for rspec')
|
60
|
+
expect(project.team_id).to eq(176_692)
|
61
|
+
end
|
62
|
+
|
63
|
+
specify '#empty_project' do
|
64
|
+
response = VCR.use_cassette('empty_project') do
|
65
|
+
test_client.empty_project new_project_id
|
66
|
+
end
|
67
|
+
|
68
|
+
expect(response['project_id']).to eq(new_project_id)
|
69
|
+
expect(response['keys_deleted']).to eq(true)
|
70
|
+
end
|
71
|
+
|
72
|
+
specify '#delete_project' do
|
73
|
+
response = VCR.use_cassette('delete_project') do
|
74
|
+
test_client.delete_project new_project_id
|
75
|
+
end
|
76
|
+
expect(response['project_id']).to eq(new_project_id)
|
77
|
+
expect(response['project_deleted']).to eq(true)
|
78
|
+
end
|
79
|
+
end
|
@@ -0,0 +1,76 @@
|
|
1
|
+
RSpec.describe Lokalise::Client do
|
2
|
+
let(:project_id) { '803826145ba90b42d5d860.46800099' }
|
3
|
+
let(:screenshot_id) { 115_185 }
|
4
|
+
|
5
|
+
describe '#screenshots' do
|
6
|
+
it 'should return all screenshots' do
|
7
|
+
screenshots = VCR.use_cassette('all_screenshots') do
|
8
|
+
test_client.screenshots project_id
|
9
|
+
end.collection
|
10
|
+
|
11
|
+
expect(screenshots.count).to eq(1)
|
12
|
+
end
|
13
|
+
|
14
|
+
it 'should support pagination' do
|
15
|
+
screenshots = VCR.use_cassette('all_screenshots_pagination') do
|
16
|
+
test_client.screenshots project_id, limit: 1, page: 1
|
17
|
+
end
|
18
|
+
|
19
|
+
expect(screenshots.collection.count).to eq(1)
|
20
|
+
expect(screenshots.total_results).to eq(1)
|
21
|
+
expect(screenshots.total_pages).to eq(1)
|
22
|
+
expect(screenshots.results_per_page).to eq(1)
|
23
|
+
expect(screenshots.current_page).to eq(1)
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
specify '#screenshot' do
|
28
|
+
screenshot = VCR.use_cassette('screenshot') do
|
29
|
+
test_client.screenshot project_id, screenshot_id
|
30
|
+
end
|
31
|
+
|
32
|
+
expect(screenshot.screenshot_id).to eq(screenshot_id)
|
33
|
+
expect(screenshot.key_ids).to eq([])
|
34
|
+
expect(screenshot.url).to include('amazonaws.com')
|
35
|
+
expect(screenshot.title).to eq('rspec screen')
|
36
|
+
expect(screenshot.description).to eq('')
|
37
|
+
expect(screenshot.screenshot_tags).to eq([])
|
38
|
+
expect(screenshot.width).to eq(125)
|
39
|
+
expect(screenshot.height).to eq(32)
|
40
|
+
end
|
41
|
+
|
42
|
+
specify '#create_screenshots' do
|
43
|
+
file = File.open File.expand_path('spec/fixtures/screenshot_base64.txt')
|
44
|
+
begin
|
45
|
+
screenshot = VCR.use_cassette('create_screenshots') do
|
46
|
+
test_client.create_screenshots project_id, data: file.read, title: 'rspec screen'
|
47
|
+
end.collection.first
|
48
|
+
|
49
|
+
expect(screenshot.title).to eq('rspec screen')
|
50
|
+
expect(screenshot.url).to include('amazonaws.com')
|
51
|
+
rescue StandardError => e
|
52
|
+
puts e
|
53
|
+
ensure
|
54
|
+
file.close
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
specify '#update_screenshot' do
|
59
|
+
screenshot = VCR.use_cassette('update_screenshot') do
|
60
|
+
test_client.update_screenshot project_id, screenshot_id, tags: %w[demo rspec],
|
61
|
+
description: 'demo desc'
|
62
|
+
end
|
63
|
+
|
64
|
+
expect(screenshot.screenshot_id).to eq(screenshot_id)
|
65
|
+
expect(screenshot.screenshot_tags).to eq(%w[demo rspec])
|
66
|
+
expect(screenshot.description).to eq('demo desc')
|
67
|
+
end
|
68
|
+
|
69
|
+
specify '#delete_screenshot' do
|
70
|
+
response = VCR.use_cassette('delete_screenshot') do
|
71
|
+
test_client.delete_screenshot project_id, screenshot_id
|
72
|
+
end
|
73
|
+
expect(response['project_id']).to eq(project_id)
|
74
|
+
expect(response['screenshot_deleted']).to eq(true)
|
75
|
+
end
|
76
|
+
end
|
@@ -0,0 +1,61 @@
|
|
1
|
+
RSpec.describe Lokalise::Client do
|
2
|
+
let(:project_id) { '803826145ba90b42d5d860.46800099' }
|
3
|
+
let(:snapshot_id) { 27_881 }
|
4
|
+
|
5
|
+
describe '#snapshots' do
|
6
|
+
it 'should return all snapshots' do
|
7
|
+
snapshots = VCR.use_cassette('all_snapshots') do
|
8
|
+
test_client.snapshots project_id
|
9
|
+
end.collection
|
10
|
+
|
11
|
+
snapshot = snapshots.first
|
12
|
+
|
13
|
+
expect(snapshots.count).to eq(2)
|
14
|
+
expect(snapshot.title).to eq('test')
|
15
|
+
expect(snapshot.snapshot_id).to eq(snapshot_id)
|
16
|
+
expect(snapshot.created_at).to eq('2018-12-10 17:01:48 (Etc/UTC)')
|
17
|
+
expect(snapshot.created_by).to eq(20_181)
|
18
|
+
expect(snapshot.created_by_email).to eq('bodrovis@protonmail.com')
|
19
|
+
end
|
20
|
+
|
21
|
+
it 'should support pagination' do
|
22
|
+
snapshots = VCR.use_cassette('all_snapshots_pagination') do
|
23
|
+
test_client.snapshots project_id, limit: 1, page: 2
|
24
|
+
end
|
25
|
+
|
26
|
+
expect(snapshots.collection.count).to eq(1)
|
27
|
+
expect(snapshots.total_results).to eq(2)
|
28
|
+
expect(snapshots.total_pages).to eq(2)
|
29
|
+
expect(snapshots.results_per_page).to eq(1)
|
30
|
+
expect(snapshots.current_page).to eq(2)
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
specify '#create_snapshot' do
|
35
|
+
snapshot = VCR.use_cassette('create_snapshot') do
|
36
|
+
test_client.create_snapshot project_id, title: 'test rspec'
|
37
|
+
end
|
38
|
+
|
39
|
+
expect(snapshot.title).to eq('test rspec')
|
40
|
+
end
|
41
|
+
|
42
|
+
specify '#restore_snapshot' do
|
43
|
+
project = VCR.use_cassette('restore_snapshot') do
|
44
|
+
test_client.restore_snapshot project_id, snapshot_id
|
45
|
+
end
|
46
|
+
|
47
|
+
expect(project.name).to eq('demo phoenix copy')
|
48
|
+
expect(project.created_by_email).to eq('bodrovis@protonmail.com')
|
49
|
+
# Restore creates a new copy of the project!
|
50
|
+
expect(project.project_id).not_to eq(project_id)
|
51
|
+
end
|
52
|
+
|
53
|
+
specify '#delete_snapshot' do
|
54
|
+
response = VCR.use_cassette('delete_snapshot') do
|
55
|
+
test_client.delete_snapshot project_id, snapshot_id
|
56
|
+
end
|
57
|
+
|
58
|
+
expect(response['project_id']).to eq(project_id)
|
59
|
+
expect(response['snapshot_deleted']).to eq(true)
|
60
|
+
end
|
61
|
+
end
|
@@ -0,0 +1,89 @@
|
|
1
|
+
RSpec.describe Lokalise::Client do
|
2
|
+
let(:project_id) { '803826145ba90b42d5d860.46800099' }
|
3
|
+
let(:key_id) { 15_571_976 }
|
4
|
+
let(:task_id) { 4387 }
|
5
|
+
|
6
|
+
describe '#tasks' do
|
7
|
+
it 'should return all tasks' do
|
8
|
+
tasks = VCR.use_cassette('all_tasks') do
|
9
|
+
test_client.tasks project_id
|
10
|
+
end.collection
|
11
|
+
|
12
|
+
expect(tasks.count).to eq(3)
|
13
|
+
end
|
14
|
+
|
15
|
+
it 'should support pagination' do
|
16
|
+
tasks = VCR.use_cassette('all_tasks_pagination') do
|
17
|
+
test_client.tasks project_id, limit: 2, page: 2
|
18
|
+
end
|
19
|
+
|
20
|
+
expect(tasks.collection.count).to eq(1)
|
21
|
+
expect(tasks.total_results).to eq(3)
|
22
|
+
expect(tasks.total_pages).to eq(2)
|
23
|
+
expect(tasks.results_per_page).to eq(2)
|
24
|
+
expect(tasks.current_page).to eq(2)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
specify '#task' do
|
29
|
+
task = VCR.use_cassette('task') do
|
30
|
+
test_client.task project_id, task_id
|
31
|
+
end
|
32
|
+
|
33
|
+
expect(task.task_id).to eq(task_id)
|
34
|
+
expect(task.title).to eq('another rspec key')
|
35
|
+
expect(task.description).to eq('desc here')
|
36
|
+
expect(task.status).to eq('created')
|
37
|
+
expect(task.progress).to eq(0)
|
38
|
+
expect(task.due_date).to eq(nil)
|
39
|
+
expect(task.keys_count).to eq(1)
|
40
|
+
expect(task.words_count).to eq(0)
|
41
|
+
expect(task.created_at).to eq('2018-12-10 18:37:02 (Etc/UTC)')
|
42
|
+
expect(task.created_by).to eq(20_181)
|
43
|
+
expect(task.created_by_email).to eq('bodrovis@protonmail.com')
|
44
|
+
expect(task.can_be_parent).to eq(true)
|
45
|
+
expect(task.task_type).to eq('translation')
|
46
|
+
expect(task.parent_task_id).to eq(nil)
|
47
|
+
expect(task.closing_tags).to eq([])
|
48
|
+
expect(task.languages.first['language_iso']).to eq('ru')
|
49
|
+
expect(task.auto_close_languages).to eq(true)
|
50
|
+
expect(task.auto_close_task).to eq(true)
|
51
|
+
expect(task.completed_by).to eq(nil)
|
52
|
+
expect(task.completed_by_email).to eq(nil)
|
53
|
+
expect(task.completed_at).to eq(nil)
|
54
|
+
end
|
55
|
+
|
56
|
+
specify '#create_task' do
|
57
|
+
task = VCR.use_cassette('create_task') do
|
58
|
+
test_client.create_task project_id, title: 'another rspec key',
|
59
|
+
keys: [key_id],
|
60
|
+
languages: [
|
61
|
+
{
|
62
|
+
language_iso: 'ru',
|
63
|
+
users: ['20181']
|
64
|
+
}
|
65
|
+
]
|
66
|
+
end
|
67
|
+
|
68
|
+
expect(task.title).to eq('another rspec key')
|
69
|
+
expect(task.languages.first['language_iso']).to eq('ru')
|
70
|
+
end
|
71
|
+
|
72
|
+
specify '#update_task' do
|
73
|
+
task = VCR.use_cassette('update_task') do
|
74
|
+
test_client.update_task project_id, task_id, description: 'desc here', auto_close_task: true
|
75
|
+
end
|
76
|
+
|
77
|
+
expect(task.task_id).to eq(task_id)
|
78
|
+
expect(task.description).to eq('desc here')
|
79
|
+
expect(task.auto_close_task).to eq(true)
|
80
|
+
end
|
81
|
+
|
82
|
+
specify '#delete_task' do
|
83
|
+
response = VCR.use_cassette('delete_task') do
|
84
|
+
test_client.delete_task project_id, task_id
|
85
|
+
end
|
86
|
+
expect(response['project_id']).to eq(project_id)
|
87
|
+
expect(response['task_deleted']).to eq(true)
|
88
|
+
end
|
89
|
+
end
|
@@ -0,0 +1,56 @@
|
|
1
|
+
RSpec.describe Lokalise::Client do
|
2
|
+
let(:team_id) { 176_692 }
|
3
|
+
let(:team_user_id) { 25_953 }
|
4
|
+
|
5
|
+
describe '#team_users' do
|
6
|
+
it 'should return all team_users' do
|
7
|
+
team_users = VCR.use_cassette('team_users') do
|
8
|
+
test_client.team_users team_id
|
9
|
+
end
|
10
|
+
|
11
|
+
expect(team_users.collection.count).to eq(4)
|
12
|
+
expect(team_users.team_id).to eq(team_id)
|
13
|
+
end
|
14
|
+
|
15
|
+
it 'should support pagination' do
|
16
|
+
team_users = VCR.use_cassette('all_team_users_pagination') do
|
17
|
+
test_client.team_users team_id, limit: 1, page: 3
|
18
|
+
end
|
19
|
+
|
20
|
+
expect(team_users.collection.count).to eq(1)
|
21
|
+
expect(team_users.total_results).to eq(4)
|
22
|
+
expect(team_users.total_pages).to eq(4)
|
23
|
+
expect(team_users.results_per_page).to eq(1)
|
24
|
+
expect(team_users.current_page).to eq(3)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
specify '#team_user' do
|
29
|
+
team_user = VCR.use_cassette('team_user') do
|
30
|
+
test_client.team_user team_id, team_user_id
|
31
|
+
end
|
32
|
+
|
33
|
+
expect(team_user.user_id).to eq(team_user_id)
|
34
|
+
expect(team_user.email).to eq('rspec@test.com')
|
35
|
+
expect(team_user.fullname).to eq('Rspec test')
|
36
|
+
expect(team_user.created_at).to eq('2018-12-07 18:21:24 (Etc/UTC)')
|
37
|
+
expect(team_user.role).to eq('member')
|
38
|
+
end
|
39
|
+
|
40
|
+
specify '#update_team_user' do
|
41
|
+
team_user = VCR.use_cassette('update_team_user') do
|
42
|
+
test_client.update_team_user team_id, team_user_id, role: 'admin'
|
43
|
+
end
|
44
|
+
|
45
|
+
expect(team_user.user_id).to eq(team_user_id)
|
46
|
+
expect(team_user.role).to eq('admin')
|
47
|
+
end
|
48
|
+
|
49
|
+
specify '#delete_team_user' do
|
50
|
+
response = VCR.use_cassette('delete_team_user') do
|
51
|
+
test_client.delete_team_user team_id, team_user_id
|
52
|
+
end
|
53
|
+
expect(response['team_id']).to eq(team_id)
|
54
|
+
expect(response['team_user_deleted']).to eq(true)
|
55
|
+
end
|
56
|
+
end
|