PageRenderTime 39ms CodeModel.GetById 14ms RepoModel.GetById 0ms app.codeStats 0ms

/spec/routing/import_routing_spec.rb

https://gitlab.com/abuhazim/gitlab-foss
Ruby | 179 lines | 97 code | 24 blank | 58 comment | 0 complexity | 7f74eaa9d59b45fd95b034627ed25532 MD5 | raw file
  1. # frozen_string_literal: true
  2. require 'spec_helper'
  3. # Shared examples for a resource inside a Project
  4. #
  5. # By default it tests all the default REST actions: index, create, new, edit,
  6. # show, update, and destroy. You can remove actions by customizing the
  7. # `actions` variable.
  8. #
  9. # It also expects a `controller` variable to be available which defines both
  10. # the path to the resource as well as the controller name.
  11. #
  12. # Examples
  13. #
  14. # # Default behavior
  15. # it_behaves_like 'RESTful project resources' do
  16. # let(:controller) { 'issues' }
  17. # end
  18. #
  19. # # Customizing actions
  20. # it_behaves_like 'RESTful project resources' do
  21. # let(:actions) { [:index] }
  22. # let(:controller) { 'issues' }
  23. # end
  24. RSpec.shared_examples 'importer routing' do
  25. let(:except_actions) { [] }
  26. let(:is_realtime) { false }
  27. before do
  28. except_actions.push(is_realtime ? :jobs : :realtime_changes)
  29. end
  30. it 'to #create' do
  31. expect(post("/import/#{provider}")).to route_to("import/#{provider}#create") unless except_actions.include?(:create)
  32. end
  33. it 'to #new' do
  34. expect(get("/import/#{provider}/new")).to route_to("import/#{provider}#new") unless except_actions.include?(:new)
  35. end
  36. it 'to #status' do
  37. expect(get("/import/#{provider}/status")).to route_to("import/#{provider}#status") unless except_actions.include?(:status)
  38. end
  39. it 'to #callback' do
  40. expect(get("/import/#{provider}/callback")).to route_to("import/#{provider}#callback") unless except_actions.include?(:callback)
  41. end
  42. it 'to #jobs' do
  43. expect(get("/import/#{provider}/jobs")).to route_to("import/#{provider}#jobs") unless except_actions.include?(:jobs)
  44. end
  45. it 'to #realtime_changes' do
  46. expect(get("/import/#{provider}/realtime_changes")).to route_to("import/#{provider}#realtime_changes") unless except_actions.include?(:realtime_changes)
  47. end
  48. end
  49. # personal_access_token_import_github POST /import/github/personal_access_token(.:format) import/github#personal_access_token
  50. # status_import_github GET /import/github/status(.:format) import/github#status
  51. # callback_import_github GET /import/github/callback(.:format) import/github#callback
  52. # realtime_changes_import_github GET /import/github/realtime_changes(.:format) import/github#jobs
  53. # import_github POST /import/github(.:format) import/github#create
  54. # new_import_github GET /import/github/new(.:format) import/github#new
  55. RSpec.describe Import::GithubController, 'routing' do
  56. it_behaves_like 'importer routing' do
  57. let(:provider) { 'github' }
  58. let(:is_realtime) { true }
  59. end
  60. it 'to #personal_access_token' do
  61. expect(post('/import/github/personal_access_token')).to route_to('import/github#personal_access_token')
  62. end
  63. end
  64. # personal_access_token_import_gitea POST /import/gitea/personal_access_token(.:format) import/gitea#personal_access_token
  65. # status_import_gitea GET /import/gitea/status(.:format) import/gitea#status
  66. # realtime_changes_import_gitea GET /import/gitea/realtime_changes(.:format) import/gitea#jobs
  67. # import_gitea POST /import/gitea(.:format) import/gitea#create
  68. # new_import_gitea GET /import/gitea/new(.:format) import/gitea#new
  69. RSpec.describe Import::GiteaController, 'routing' do
  70. it_behaves_like 'importer routing' do
  71. let(:except_actions) { [:callback] }
  72. let(:provider) { 'gitea' }
  73. let(:is_realtime) { true }
  74. end
  75. it 'to #personal_access_token' do
  76. expect(post('/import/gitea/personal_access_token')).to route_to('import/gitea#personal_access_token')
  77. end
  78. end
  79. # status_import_gitlab GET /import/gitlab/status(.:format) import/gitlab#status
  80. # callback_import_gitlab GET /import/gitlab/callback(.:format) import/gitlab#callback
  81. # realtime_changes_import_gitlab GET /import/gitlab/realtime_changes(.:format) import/gitlab#realtime_changes
  82. # import_gitlab POST /import/gitlab(.:format) import/gitlab#create
  83. RSpec.describe Import::GitlabController, 'routing' do
  84. it_behaves_like 'importer routing' do
  85. let(:except_actions) { [:new] }
  86. let(:provider) { 'gitlab' }
  87. let(:is_realtime) { true }
  88. end
  89. end
  90. # status_import_bitbucket GET /import/bitbucket/status(.:format) import/bitbucket#status
  91. # callback_import_bitbucket GET /import/bitbucket/callback(.:format) import/bitbucket#callback
  92. # realtime_changes_import_bitbucket GET /import/bitbucket/realtime_changes(.:format) import/bitbucket#realtime_changes
  93. # import_bitbucket POST /import/bitbucket(.:format) import/bitbucket#create
  94. RSpec.describe Import::BitbucketController, 'routing' do
  95. it_behaves_like 'importer routing' do
  96. let(:except_actions) { [:new] }
  97. let(:provider) { 'bitbucket' }
  98. let(:is_realtime) { true }
  99. end
  100. end
  101. # status_import_bitbucket_server GET /import/bitbucket_server/status(.:format) import/bitbucket_server#status
  102. # callback_import_bitbucket_server GET /import/bitbucket_server/callback(.:format) import/bitbucket_server#callback
  103. # realtime_changes_import_bitbucket_server GET /import/bitbucket_server/realtime_changes(.:format) import/bitbucket_server#realtime_changes
  104. # new_import_bitbucket_server GET /import/bitbucket_server/new(.:format) import/bitbucket_server#new
  105. # import_bitbucket_server POST /import/bitbucket_server(.:format) import/bitbucket_server#create
  106. RSpec.describe Import::BitbucketServerController, 'routing' do
  107. it_behaves_like 'importer routing' do
  108. let(:provider) { 'bitbucket_server' }
  109. let(:is_realtime) { true }
  110. end
  111. end
  112. # status_import_fogbugz GET /import/fogbugz/status(.:format) import/fogbugz#status
  113. # callback_import_fogbugz POST /import/fogbugz/callback(.:format) import/fogbugz#callback
  114. # realtime_changes_import_fogbugz GET /import/fogbugz/realtime_changes(.:format) import/fogbugz#realtime_changes
  115. # new_user_map_import_fogbugz GET /import/fogbugz/user_map(.:format) import/fogbugz#new_user_map
  116. # create_user_map_import_fogbugz POST /import/fogbugz/user_map(.:format) import/fogbugz#create_user_map
  117. # import_fogbugz POST /import/fogbugz(.:format) import/fogbugz#create
  118. # new_import_fogbugz GET /import/fogbugz/new(.:format) import/fogbugz#new
  119. RSpec.describe Import::FogbugzController, 'routing' do
  120. it_behaves_like 'importer routing' do
  121. let(:except_actions) { [:callback] }
  122. let(:provider) { 'fogbugz' }
  123. let(:is_realtime) { true }
  124. end
  125. it 'to #callback' do
  126. expect(post("/import/fogbugz/callback")).to route_to("import/fogbugz#callback")
  127. end
  128. it 'to #new_user_map' do
  129. expect(get('/import/fogbugz/user_map')).to route_to('import/fogbugz#new_user_map')
  130. end
  131. it 'to #create_user_map' do
  132. expect(post('/import/fogbugz/user_map')).to route_to('import/fogbugz#create_user_map')
  133. end
  134. end
  135. # import_gitlab_project POST /import/gitlab_project(.:format) import/gitlab_projects#create
  136. # POST /import/gitlab_project(.:format) import/gitlab_projects#create
  137. # new_import_gitlab_project GET /import/gitlab_project/new(.:format) import/gitlab_projects#new
  138. RSpec.describe Import::GitlabProjectsController, 'routing' do
  139. it 'to #create' do
  140. expect(post('/import/gitlab_project')).to route_to('import/gitlab_projects#create')
  141. end
  142. it 'to #new' do
  143. expect(get('/import/gitlab_project/new')).to route_to('import/gitlab_projects#new')
  144. end
  145. end
  146. # new_import_phabricator GET /import/phabricator/new(.:format) import/phabricator#new
  147. # import_phabricator POST /import/phabricator(.:format) import/phabricator#create
  148. RSpec.describe Import::PhabricatorController, 'routing' do
  149. it 'to #create' do
  150. expect(post("/import/phabricator")).to route_to("import/phabricator#create")
  151. end
  152. it 'to #new' do
  153. expect(get("/import/phabricator/new")).to route_to("import/phabricator#new")
  154. end
  155. end