ruby-lokalise-api 1.0.1
Sign up to get free protection for your applications and to get access to all the features.
- 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
|