crowdin-api 1.1.1 → 1.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (71) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/test-and-lint.yml +1 -1
  3. data/.gitignore +2 -2
  4. data/.rubocop_todo.yml +114 -42
  5. data/README.md +26 -13
  6. data/bin/crowdin-console +5 -5
  7. data/crowdin-api.gemspec +1 -2
  8. data/lib/crowdin-api/api_resources/dictionaries.rb +32 -0
  9. data/lib/crowdin-api/api_resources/distributions.rb +92 -0
  10. data/lib/crowdin-api/api_resources/glossaries.rb +199 -0
  11. data/lib/crowdin-api/api_resources/labels.rb +98 -0
  12. data/lib/crowdin-api/api_resources/languages.rb +61 -0
  13. data/lib/crowdin-api/api_resources/machine_translation_engines.rb +79 -0
  14. data/lib/crowdin-api/api_resources/projects.rb +124 -0
  15. data/lib/crowdin-api/api_resources/reports.rb +120 -0
  16. data/lib/crowdin-api/api_resources/screenshots.rb +172 -0
  17. data/lib/crowdin-api/{api-resources → api_resources}/source_files.rb +68 -130
  18. data/lib/crowdin-api/{api-resources → api_resources}/source_strings.rb +19 -24
  19. data/lib/crowdin-api/api_resources/storages.rb +54 -0
  20. data/lib/crowdin-api/api_resources/string_comments.rb +68 -0
  21. data/lib/crowdin-api/api_resources/string_translations.rb +193 -0
  22. data/lib/crowdin-api/api_resources/tasks.rb +102 -0
  23. data/lib/crowdin-api/api_resources/teams.rb +135 -0
  24. data/lib/crowdin-api/api_resources/translation_memory.rb +131 -0
  25. data/lib/crowdin-api/{api-resources → api_resources}/translation_status.rb +24 -30
  26. data/lib/crowdin-api/{api-resources → api_resources}/translations.rb +41 -59
  27. data/lib/crowdin-api/api_resources/users.rb +161 -0
  28. data/lib/crowdin-api/api_resources/vendors.rb +21 -0
  29. data/lib/crowdin-api/api_resources/webhooks.rb +68 -0
  30. data/lib/crowdin-api/api_resources/workflows.rb +59 -0
  31. data/lib/crowdin-api/client/client.rb +72 -50
  32. data/lib/crowdin-api/client/configuration.rb +16 -12
  33. data/lib/crowdin-api/client/version.rb +1 -1
  34. data/lib/crowdin-api/core/errors.rb +2 -1
  35. data/lib/crowdin-api/core/{api_errors_raiser.rb → errors_raisers.rb} +21 -11
  36. data/lib/crowdin-api/core/request.rb +53 -88
  37. data/lib/crowdin-api/core/send_request.rb +67 -0
  38. data/lib/crowdin-api.rb +20 -11
  39. data/spec/api_resources/dictionaries_spec.rb +23 -0
  40. data/spec/api_resources/distributions_spec.rb +71 -0
  41. data/spec/api_resources/glossaries_spec.rb +167 -0
  42. data/spec/api_resources/labels_spec.rb +71 -0
  43. data/spec/api_resources/languages_spec.rb +51 -0
  44. data/spec/api_resources/machine_translation_engines_spec.rb +63 -0
  45. data/spec/api_resources/projects_spec.rb +215 -0
  46. data/spec/api_resources/reports_spec.rb +95 -0
  47. data/spec/api_resources/screenshots_spec.rb +134 -0
  48. data/spec/api_resources/source_files_spec.rb +13 -0
  49. data/spec/api_resources/source_strings_spec.rb +51 -0
  50. data/spec/api_resources/storages_spec.rb +13 -0
  51. data/spec/api_resources/string_comments_spec.rb +13 -0
  52. data/spec/api_resources/string_translations_spec.rb +13 -0
  53. data/spec/api_resources/tasks_spec.rb +79 -0
  54. data/spec/api_resources/teams_spec.rb +13 -0
  55. data/spec/api_resources/translation_memory_spec.rb +13 -0
  56. data/spec/api_resources/translation_status_spec.rb +15 -0
  57. data/spec/api_resources/translations_spec.rb +107 -0
  58. data/spec/api_resources/users_spec.rb +117 -0
  59. data/spec/api_resources/vendors_spec.rb +13 -0
  60. data/spec/api_resources/webhooks_spec.rb +51 -0
  61. data/spec/api_resources/workflows_spec.rb +41 -0
  62. data/spec/spec_helper.rb +20 -2
  63. data/spec/unit/client_spec.rb +85 -0
  64. metadata +65 -28
  65. data/bin/setup +0 -6
  66. data/lib/crowdin-api/api-resources/languages.rb +0 -81
  67. data/lib/crowdin-api/api-resources/projects.rb +0 -134
  68. data/lib/crowdin-api/api-resources/storages.rb +0 -102
  69. data/lib/crowdin-api/api-resources/workflows.rb +0 -59
  70. data/spec/core/config-instance_spec.rb +0 -72
  71. data/spec/crowdin-api_spec.rb +0 -7
@@ -0,0 +1,134 @@
1
+ # frozen_string_literal: true
2
+
3
+ describe Crowdin::ApiResources::Screenshots do
4
+ describe 'Default endpoints' do
5
+ describe '#list_screenshots' do
6
+ it 'when request are valid', :default do
7
+ stub_request(:get, "https://api.crowdin.com/#{target_api_url}/projects/#{project_id}/screenshots")
8
+ list_screenshots = @crowdin.list_screenshots({}, project_id)
9
+ expect(list_screenshots).to eq(200)
10
+ end
11
+ end
12
+
13
+ describe '#add_screenshot' do
14
+ it 'when request are valid', :default do
15
+ stub_request(:post, "https://api.crowdin.com/#{target_api_url}/projects/#{project_id}/screenshots")
16
+ add_screenshot = @crowdin.add_screenshot({}, project_id)
17
+ expect(add_screenshot).to eq(200)
18
+ end
19
+ end
20
+
21
+ describe '#get_screenshot' do
22
+ let(:screenshot_id) { 1 }
23
+
24
+ it 'when request are valid', :default do
25
+ stub_request(:get, "https://api.crowdin.com/#{target_api_url}/projects/#{project_id}/screenshots/#{screenshot_id}")
26
+ get_screenshot = @crowdin.get_screenshot(screenshot_id, project_id)
27
+ expect(get_screenshot).to eq(200)
28
+ end
29
+ end
30
+
31
+ describe '#update_screenshot' do
32
+ let(:screenshot_id) { 1 }
33
+
34
+ it 'when request are valid', :default do
35
+ stub_request(:put, "https://api.crowdin.com/#{target_api_url}/projects/#{project_id}/screenshots/#{screenshot_id}")
36
+ update_screenshot = @crowdin.update_screenshot(screenshot_id, {}, project_id)
37
+ expect(update_screenshot).to eq(200)
38
+ end
39
+ end
40
+
41
+ describe '#delete_screenshot' do
42
+ let(:screenshot_id) { 1 }
43
+
44
+ it 'when request are valid', :default do
45
+ stub_request(:delete, "https://api.crowdin.com/#{target_api_url}/projects/#{project_id}/screenshots/#{screenshot_id}")
46
+ delete_screenshot = @crowdin.delete_screenshot(screenshot_id, project_id)
47
+ expect(delete_screenshot).to eq(200)
48
+ end
49
+ end
50
+
51
+ describe '#edit_screenshot' do
52
+ let(:screenshot_id) { 1 }
53
+
54
+ it 'when request are valid', :default do
55
+ stub_request(:patch, "https://api.crowdin.com/#{target_api_url}/projects/#{project_id}/screenshots/#{screenshot_id}")
56
+ edit_screenshot = @crowdin.edit_screenshot(screenshot_id, {}, project_id)
57
+ expect(edit_screenshot).to eq(200)
58
+ end
59
+ end
60
+
61
+ describe '#list_tags' do
62
+ let(:screenshot_id) { 1 }
63
+
64
+ it 'when request are valid', :default do
65
+ stub_request(:get, "https://api.crowdin.com/#{target_api_url}/projects/#{project_id}/screenshots/#{screenshot_id}/tags")
66
+ list_tags = @crowdin.list_tags(screenshot_id, {}, project_id)
67
+ expect(list_tags).to eq(200)
68
+ end
69
+ end
70
+
71
+ describe '#replace_tags' do
72
+ let(:screenshot_id) { 1 }
73
+
74
+ it 'when request are valid', :default do
75
+ stub_request(:put, "https://api.crowdin.com/#{target_api_url}/projects/#{project_id}/screenshots/#{screenshot_id}/tags")
76
+ replace_tags = @crowdin.replace_tags(screenshot_id, {}, project_id)
77
+ expect(replace_tags).to eq(200)
78
+ end
79
+ end
80
+
81
+ describe '#add_tag' do
82
+ let(:screenshot_id) { 1 }
83
+
84
+ it 'when request are valid', :default do
85
+ stub_request(:post, "https://api.crowdin.com/#{target_api_url}/projects/#{project_id}/screenshots/#{screenshot_id}/tags")
86
+ add_tag = @crowdin.add_tag(screenshot_id, {}, project_id)
87
+ expect(add_tag).to eq(200)
88
+ end
89
+ end
90
+
91
+ describe '#clear_tags' do
92
+ let(:screenshot_id) { 1 }
93
+
94
+ it 'when request are valid', :default do
95
+ stub_request(:delete, "https://api.crowdin.com/#{target_api_url}/projects/#{project_id}/screenshots/#{screenshot_id}/tags")
96
+ clear_tags = @crowdin.clear_tags(screenshot_id, project_id)
97
+ expect(clear_tags).to eq(200)
98
+ end
99
+ end
100
+
101
+ describe '#get_tag' do
102
+ let(:screenshot_id) { 1 }
103
+ let(:tag_id) { 1 }
104
+
105
+ it 'when request are valid', :default do
106
+ stub_request(:get, "https://api.crowdin.com/#{target_api_url}/projects/#{project_id}/screenshots/#{screenshot_id}/tags/#{tag_id}")
107
+ get_tag = @crowdin.get_tag(screenshot_id, tag_id, project_id)
108
+ expect(get_tag).to eq(200)
109
+ end
110
+ end
111
+
112
+ describe '#delete_tag' do
113
+ let(:screenshot_id) { 1 }
114
+ let(:tag_id) { 1 }
115
+
116
+ it 'when request are valid', :default do
117
+ stub_request(:delete, "https://api.crowdin.com/#{target_api_url}/projects/#{project_id}/screenshots/#{screenshot_id}/tags/#{tag_id}")
118
+ delete_tag = @crowdin.delete_tag(screenshot_id, tag_id, project_id)
119
+ expect(delete_tag).to eq(200)
120
+ end
121
+ end
122
+
123
+ describe '#edit_tag' do
124
+ let(:screenshot_id) { 1 }
125
+ let(:tag_id) { 1 }
126
+
127
+ it 'when request are valid', :default do
128
+ stub_request(:patch, "https://api.crowdin.com/#{target_api_url}/projects/#{project_id}/screenshots/#{screenshot_id}/tags/#{tag_id}")
129
+ edit_tag = @crowdin.edit_tag(screenshot_id, tag_id, {}, project_id)
130
+ expect(edit_tag).to eq(200)
131
+ end
132
+ end
133
+ end
134
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ describe Crowdin::ApiResources::SourceFiles do
4
+ describe 'Default endpoints' do
5
+ describe '#list_branches' do
6
+ it 'when request are valid', :default do
7
+ stub_request(:get, "https://api.crowdin.com/#{target_api_url}/projects/#{project_id}/branches")
8
+ list_branches = @crowdin.list_branches({}, project_id)
9
+ expect(list_branches).to eq(200)
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,51 @@
1
+ # frozen_string_literal: true
2
+
3
+ describe Crowdin::ApiResources::SourceStrings do
4
+ describe 'Default endpoints' do
5
+ describe '#list_strings' do
6
+ it 'when request are valid', :default do
7
+ stub_request(:get, "https://api.crowdin.com/#{target_api_url}/projects/#{project_id}/strings")
8
+ list_strings = @crowdin.list_strings({}, project_id)
9
+ expect(list_strings).to eq(200)
10
+ end
11
+ end
12
+
13
+ describe '#add_string' do
14
+ it 'when request are valid', :default do
15
+ stub_request(:post, "https://api.crowdin.com/#{target_api_url}/projects/#{project_id}/strings")
16
+ add_string = @crowdin.add_string({}, project_id)
17
+ expect(add_string).to eq(200)
18
+ end
19
+ end
20
+
21
+ describe '#get_string' do
22
+ let(:string_id) { 1 }
23
+
24
+ it 'when request are valid', :default do
25
+ stub_request(:get, "https://api.crowdin.com/#{target_api_url}/projects/#{project_id}/strings/#{string_id}")
26
+ get_string = @crowdin.get_string(string_id, {}, project_id)
27
+ expect(get_string).to eq(200)
28
+ end
29
+ end
30
+
31
+ describe '#delete_string' do
32
+ let(:string_id) { 1 }
33
+
34
+ it 'when request are valid', :default do
35
+ stub_request(:delete, "https://api.crowdin.com/#{target_api_url}/projects/#{project_id}/strings/#{string_id}")
36
+ delete_string = @crowdin.delete_string(string_id, project_id)
37
+ expect(delete_string).to eq(200)
38
+ end
39
+ end
40
+
41
+ describe '#edit_string' do
42
+ let(:string_id) { 1 }
43
+
44
+ it 'when request are valid', :default do
45
+ stub_request(:patch, "https://api.crowdin.com/#{target_api_url}/projects/#{project_id}/strings/#{string_id}")
46
+ edit_string = @crowdin.edit_string(string_id, {}, project_id)
47
+ expect(edit_string).to eq(200)
48
+ end
49
+ end
50
+ end
51
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ describe Crowdin::ApiResources::Storages do
4
+ describe 'Default endpoints' do
5
+ describe '#list_storages' do
6
+ it 'when request are valid', :default do
7
+ stub_request(:get, "https://api.crowdin.com/#{target_api_url}/storages")
8
+ list_storages = @crowdin.list_storages
9
+ expect(list_storages).to eq(200)
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ describe Crowdin::ApiResources::StringComments do
4
+ describe 'Default endpoints' do
5
+ describe '#list_string_comments' do
6
+ it 'when request are valid', :default do
7
+ stub_request(:get, "https://api.crowdin.com/#{target_api_url}/projects/#{project_id}/comments")
8
+ list_string_comments = @crowdin.list_string_comments({}, project_id)
9
+ expect(list_string_comments).to eq(200)
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ describe Crowdin::ApiResources::StringTranslations do
4
+ describe 'Default endpoints' do
5
+ describe '#list_translation_approvals' do
6
+ it 'when request are valid', :default do
7
+ stub_request(:get, "https://api.crowdin.com/#{target_api_url}/projects/#{project_id}/approvals")
8
+ list_translation_approvals = @crowdin.list_translation_approvals({}, project_id)
9
+ expect(list_translation_approvals).to eq(200)
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,79 @@
1
+ # frozen_string_literal: true
2
+
3
+ describe Crowdin::ApiResources::Tasks do
4
+ describe 'Default endpoints' do
5
+ describe '#list_tasks' do
6
+ it 'when request are valid', :default do
7
+ stub_request(:get, "https://api.crowdin.com/#{target_api_url}/projects/#{project_id}/tasks")
8
+ list_tasks = @crowdin.list_tasks({}, project_id)
9
+ expect(list_tasks).to eq(200)
10
+ end
11
+ end
12
+
13
+ describe '#add_task' do
14
+ it 'when request are valid', :default do
15
+ stub_request(:post, "https://api.crowdin.com/#{target_api_url}/projects/#{project_id}/tasks")
16
+ add_task = @crowdin.add_task({}, project_id)
17
+ expect(add_task).to eq(200)
18
+ end
19
+ end
20
+
21
+ describe '#export_task_strings' do
22
+ let(:task_id) { 1 }
23
+
24
+ it 'when request are valid', :default do
25
+ stub_request(:post, "https://api.crowdin.com/#{target_api_url}/projects/#{project_id}/tasks/#{task_id}/exports")
26
+ export_task_strings = @crowdin.export_task_strings(task_id, nil, project_id)
27
+ expect(export_task_strings).to eq(200)
28
+ end
29
+ end
30
+
31
+ describe '#get_task' do
32
+ let(:task_id) { 1 }
33
+
34
+ it 'when request are valid', :default do
35
+ stub_request(:get, "https://api.crowdin.com/#{target_api_url}/projects/#{project_id}/tasks/#{task_id}")
36
+ get_task = @crowdin.get_task(task_id, project_id)
37
+ expect(get_task).to eq(200)
38
+ end
39
+ end
40
+
41
+ describe '#delete_task' do
42
+ let(:task_id) { 1 }
43
+
44
+ it 'when request are valid', :default do
45
+ stub_request(:delete, "https://api.crowdin.com/#{target_api_url}/projects/#{project_id}/tasks/#{task_id}")
46
+ delete_task = @crowdin.delete_task(task_id, project_id)
47
+ expect(delete_task).to eq(200)
48
+ end
49
+ end
50
+
51
+ describe '#edit_task' do
52
+ let(:task_id) { 1 }
53
+
54
+ it 'when request are valid', :default do
55
+ stub_request(:patch, "https://api.crowdin.com/#{target_api_url}/projects/#{project_id}/tasks/#{task_id}")
56
+ edit_task = @crowdin.edit_task(task_id, {}, project_id)
57
+ expect(edit_task).to eq(200)
58
+ end
59
+ end
60
+
61
+ describe '#list_user_tasks' do
62
+ it 'when request are valid', :default do
63
+ stub_request(:get, "https://api.crowdin.com/#{target_api_url}/user/tasks")
64
+ list_user_tasks = @crowdin.list_user_tasks({})
65
+ expect(list_user_tasks).to eq(200)
66
+ end
67
+ end
68
+
69
+ describe '#edit_task_archived_status' do
70
+ let(:task_id) { 1 }
71
+
72
+ it 'when request are valid', :default do
73
+ stub_request(:patch, "https://api.crowdin.com/#{target_api_url}/user/tasks/#{task_id}")
74
+ edit_task_archived_status = @crowdin.edit_task_archived_status(task_id, {})
75
+ expect(edit_task_archived_status).to eq(200)
76
+ end
77
+ end
78
+ end
79
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ describe Crowdin::ApiResources::Teams do
4
+ describe 'Enterprise endpoints' do
5
+ describe '#add_team_to_project' do
6
+ it 'when request are valid', :enterprise do
7
+ stub_request(:post, "https://domain.api.crowdin.com/#{target_api_url}/projects/#{project_id}/teams")
8
+ add_team_to_project = @crowdin.add_team_to_project({}, project_id)
9
+ expect(add_team_to_project).to eq(200)
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ describe Crowdin::ApiResources::TranslationMemory do
4
+ describe 'Default endpoints' do
5
+ describe '#list_tms' do
6
+ it 'when request are valid', :default do
7
+ stub_request(:get, "https://api.crowdin.com/#{target_api_url}/tms")
8
+ list_tms = @crowdin.list_tms
9
+ expect(list_tms).to eq(200)
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ describe Crowdin::ApiResources::TranslationStatus do
4
+ describe 'Default endpoints' do
5
+ describe '#get_branch_progress' do
6
+ let(:branch_id) { 1 }
7
+
8
+ it 'when request are valid', :default do
9
+ stub_request(:get, "https://api.crowdin.com/#{target_api_url}/projects/#{project_id}/branches/#{branch_id}/languages/progress")
10
+ get_branch_progress = @crowdin.get_branch_progress(branch_id, {}, project_id)
11
+ expect(get_branch_progress).to eq(200)
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,107 @@
1
+ # frozen_string_literal: true
2
+
3
+ describe Crowdin::ApiResources::Translations do
4
+ describe 'Default endpoints' do
5
+ describe '#pre_translation_status' do
6
+ let(:pre_translation_id) { 1 }
7
+
8
+ it 'when request are valid', :default do
9
+ stub_request(:get, "https://api.crowdin.com/#{target_api_url}/projects/#{project_id}/pre-translations/#{pre_translation_id}")
10
+ pre_translation_status = @crowdin.pre_translation_status(pre_translation_id, project_id)
11
+ expect(pre_translation_status).to eq(200)
12
+ end
13
+ end
14
+
15
+ describe '#apply_pre_translation' do
16
+ it 'when request are valid', :default do
17
+ stub_request(:post, "https://api.crowdin.com/#{target_api_url}/projects/#{project_id}/pre-translations")
18
+ apply_pre_translation = @crowdin.apply_pre_translation({}, project_id)
19
+ expect(apply_pre_translation).to eq(200)
20
+ end
21
+ end
22
+
23
+ describe '#build_project_directory_translation' do
24
+ let(:directory_id) { 1 }
25
+
26
+ it 'when request are valid', :default do
27
+ stub_request(:post, "https://api.crowdin.com/#{target_api_url}/projects/#{project_id}/translations/builds/directories/#{directory_id}")
28
+ build_project_directory_translation = @crowdin.build_project_directory_translation(directory_id, {}, project_id)
29
+ expect(build_project_directory_translation).to eq(200)
30
+ end
31
+ end
32
+
33
+ describe '#build_project_file_translation' do
34
+ let(:file_id) { 1 }
35
+
36
+ it 'when request are valid', :default do
37
+ stub_request(:post, "https://api.crowdin.com/#{target_api_url}/projects/#{project_id}/translations/builds/files/#{file_id}")
38
+ build_project_file_translation = @crowdin.build_project_file_translation(file_id, {}, nil, project_id)
39
+ expect(build_project_file_translation).to eq(200)
40
+ end
41
+ end
42
+
43
+ describe '#list_project_builds' do
44
+ it 'when request are valid', :default do
45
+ stub_request(:get, "https://api.crowdin.com/#{target_api_url}/projects/#{project_id}/translations/builds")
46
+ list_project_builds = @crowdin.list_project_builds({}, project_id)
47
+ expect(list_project_builds).to eq(200)
48
+ end
49
+ end
50
+
51
+ describe '#build_project_translation' do
52
+ it 'when request are valid', :default do
53
+ stub_request(:post, "https://api.crowdin.com/#{target_api_url}/projects/#{project_id}/translations/builds")
54
+ build_project_translation = @crowdin.build_project_translation({}, project_id)
55
+ expect(build_project_translation).to eq(200)
56
+ end
57
+ end
58
+
59
+ describe '#upload_translations' do
60
+ let(:language_id) { 1 }
61
+
62
+ it 'when request are valid', :default do
63
+ stub_request(:post, "https://api.crowdin.com/#{target_api_url}/projects/#{project_id}/translations/#{language_id}")
64
+ upload_translations = @crowdin.upload_translations(language_id, {}, project_id)
65
+ expect(upload_translations).to eq(200)
66
+ end
67
+ end
68
+
69
+ describe '#download_project_translations' do
70
+ let(:build_id) { 1 }
71
+
72
+ it 'when request are valid', :default do
73
+ stub_request(:get, "https://api.crowdin.com/#{target_api_url}/projects/#{project_id}/translations/builds/#{build_id}/download")
74
+ download_project_translations = @crowdin.download_project_translations(build_id, nil, project_id)
75
+ expect(download_project_translations).to eq(200)
76
+ end
77
+ end
78
+
79
+ describe '#check_project_build_status' do
80
+ let(:build_id) { 1 }
81
+
82
+ it 'when request are valid', :default do
83
+ stub_request(:get, "https://api.crowdin.com/#{target_api_url}/projects/#{project_id}/translations/builds/#{build_id}")
84
+ check_project_build_status = @crowdin.check_project_build_status(build_id, project_id)
85
+ expect(check_project_build_status).to eq(200)
86
+ end
87
+ end
88
+
89
+ describe '#cancel_build' do
90
+ let(:build_id) { 1 }
91
+
92
+ it 'when request are valid', :default do
93
+ stub_request(:delete, "https://api.crowdin.com/#{target_api_url}/projects/#{project_id}/translations/builds/#{build_id}")
94
+ cancel_build = @crowdin.cancel_build(build_id, project_id)
95
+ expect(cancel_build).to eq(200)
96
+ end
97
+ end
98
+
99
+ describe '#export_project_translation' do
100
+ it 'when request are valid', :default do
101
+ stub_request(:post, "https://api.crowdin.com/#{target_api_url}/projects/#{project_id}/translations/exports")
102
+ export_project_translation = @crowdin.export_project_translation({}, nil, project_id)
103
+ expect(export_project_translation).to eq(200)
104
+ end
105
+ end
106
+ end
107
+ end
@@ -0,0 +1,117 @@
1
+ # frozen_string_literal: true
2
+
3
+ describe Crowdin::ApiResources::Users do
4
+ describe 'Default endpoints' do
5
+ describe '#get_authenticated_user' do
6
+ it 'when request are valid', :default do
7
+ stub_request(:get, "https://api.crowdin.com/#{target_api_url}/user")
8
+ get_authenticated_user = @crowdin.get_authenticated_user
9
+ expect(get_authenticated_user).to eq(200)
10
+ end
11
+ end
12
+
13
+ describe '#list_project_members' do
14
+ it 'when request are valid', :default do
15
+ stub_request(:get, "https://api.crowdin.com/#{target_api_url}/projects/#{project_id}/members")
16
+ list_project_members = @crowdin.list_project_members({}, project_id)
17
+ expect(list_project_members).to eq(200)
18
+ end
19
+ end
20
+
21
+ describe '#get_member_info' do
22
+ let(:member_id) { 1 }
23
+
24
+ it 'when request are valid', :default do
25
+ stub_request(:get, "https://api.crowdin.com/#{target_api_url}/projects/#{project_id}/members/#{member_id}")
26
+ get_member_info = @crowdin.get_member_info(member_id, project_id)
27
+ expect(get_member_info).to eq(200)
28
+ end
29
+ end
30
+ end
31
+
32
+ describe 'Enterprise endpoints' do
33
+ describe '#add_project_member' do
34
+ it 'when request are valid', :enterprise do
35
+ stub_request(:post, "https://domain.api.crowdin.com/#{target_api_url}/projects/#{project_id}/members")
36
+ add_project_member = @crowdin.add_project_member({}, project_id)
37
+ expect(add_project_member).to eq(200)
38
+ end
39
+ end
40
+
41
+ describe '#get_project_member_permissions' do
42
+ let(:member_id) { 1 }
43
+
44
+ it 'when request are valid', :enterprise do
45
+ stub_request(:get, "https://domain.api.crowdin.com/#{target_api_url}/projects/#{project_id}/members/#{member_id}")
46
+ get_project_member_permissions = @crowdin.get_project_member_permissions(member_id, project_id)
47
+ expect(get_project_member_permissions).to eq(200)
48
+ end
49
+ end
50
+
51
+ describe '#replace_project_permissions' do
52
+ let(:member_id) { 1 }
53
+
54
+ it 'when request are valid', :enterprise do
55
+ stub_request(:put, "https://domain.api.crowdin.com/#{target_api_url}/projects/#{project_id}/members/#{member_id}")
56
+ replace_project_permissions = @crowdin.replace_project_permissions(member_id, {}, project_id)
57
+ expect(replace_project_permissions).to eq(200)
58
+ end
59
+ end
60
+
61
+ describe '#delete_member_from_project' do
62
+ let(:member_id) { 1 }
63
+
64
+ it 'when request are valid', :enterprise do
65
+ stub_request(:delete, "https://domain.api.crowdin.com/#{target_api_url}/projects/#{project_id}/members/#{member_id}")
66
+ delete_member_from_project = @crowdin.delete_member_from_project(member_id, {}, project_id)
67
+ expect(delete_member_from_project).to eq(200)
68
+ end
69
+ end
70
+
71
+ describe '#list_users' do
72
+ it 'when request are valid', :enterprise do
73
+ stub_request(:get, "https://domain.api.crowdin.com/#{target_api_url}/users")
74
+ list_users = @crowdin.list_users
75
+ expect(list_users).to eq(200)
76
+ end
77
+ end
78
+
79
+ describe '#invite_user' do
80
+ it 'when request are valid', :enterprise do
81
+ stub_request(:post, "https://domain.api.crowdin.com/#{target_api_url}/users")
82
+ invite_user = @crowdin.invite_user
83
+ expect(invite_user).to eq(200)
84
+ end
85
+ end
86
+
87
+ describe '#get_user' do
88
+ let(:user_id) { 1 }
89
+
90
+ it 'when request are valid', :enterprise do
91
+ stub_request(:get, "https://domain.api.crowdin.com/#{target_api_url}/users/#{user_id}")
92
+ get_user = @crowdin.get_user(user_id)
93
+ expect(get_user).to eq(200)
94
+ end
95
+ end
96
+
97
+ describe '#delete_user' do
98
+ let(:user_id) { 1 }
99
+
100
+ it 'when request are valid', :enterprise do
101
+ stub_request(:delete, "https://domain.api.crowdin.com/#{target_api_url}/users/#{user_id}")
102
+ delete_user = @crowdin.delete_user(user_id)
103
+ expect(delete_user).to eq(200)
104
+ end
105
+ end
106
+
107
+ describe '#edit_user' do
108
+ let(:user_id) { 1 }
109
+
110
+ it 'when request are valid', :enterprise do
111
+ stub_request(:patch, "https://domain.api.crowdin.com/#{target_api_url}/users/#{user_id}")
112
+ edit_user = @crowdin.edit_user(user_id)
113
+ expect(edit_user).to eq(200)
114
+ end
115
+ end
116
+ end
117
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ describe Crowdin::ApiResources::Vendors do
4
+ describe 'Enterprise endpoints' do
5
+ describe '#list_vendors' do
6
+ it 'when request are valid', :enterprise do
7
+ stub_request(:get, "https://domain.api.crowdin.com/#{target_api_url}/vendors")
8
+ list_vendors = @crowdin.list_vendors
9
+ expect(list_vendors).to eq(200)
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,51 @@
1
+ # frozen_string_literal: true
2
+
3
+ describe Crowdin::ApiResources::Webhooks do
4
+ describe 'Default endpoints' do
5
+ describe '#list_webhooks' do
6
+ it 'when request are valid', :default do
7
+ stub_request(:get, "https://api.crowdin.com/#{target_api_url}/projects/#{project_id}/webhooks")
8
+ list_webhooks = @crowdin.list_webhooks({}, project_id)
9
+ expect(list_webhooks).to eq(200)
10
+ end
11
+ end
12
+
13
+ describe '#add_webhook' do
14
+ it 'when request are valid', :default do
15
+ stub_request(:post, "https://api.crowdin.com/#{target_api_url}/projects/#{project_id}/webhooks")
16
+ add_webhook = @crowdin.add_webhook({}, project_id)
17
+ expect(add_webhook).to eq(200)
18
+ end
19
+ end
20
+
21
+ describe '#get_webhook' do
22
+ let(:webhook_id) { 1 }
23
+
24
+ it 'when request are valid', :default do
25
+ stub_request(:get, "https://api.crowdin.com/#{target_api_url}/projects/#{project_id}/webhooks/#{webhook_id}")
26
+ get_webhook = @crowdin.get_webhook(webhook_id, project_id)
27
+ expect(get_webhook).to eq(200)
28
+ end
29
+ end
30
+
31
+ describe '#delete_webhook' do
32
+ let(:webhook_id) { 1 }
33
+
34
+ it 'when request are valid', :default do
35
+ stub_request(:delete, "https://api.crowdin.com/#{target_api_url}/projects/#{project_id}/webhooks/#{webhook_id}")
36
+ delete_webhook = @crowdin.delete_webhook(webhook_id, project_id)
37
+ expect(delete_webhook).to eq(200)
38
+ end
39
+ end
40
+
41
+ describe '#edit_webhook' do
42
+ let(:webhook_id) { 1 }
43
+
44
+ it 'when request are valid', :default do
45
+ stub_request(:patch, "https://api.crowdin.com/#{target_api_url}/projects/#{project_id}/webhooks/#{webhook_id}")
46
+ edit_webhook = @crowdin.edit_webhook(webhook_id, {}, project_id)
47
+ expect(edit_webhook).to eq(200)
48
+ end
49
+ end
50
+ end
51
+ end