chemlab 0.0.1 → 0.1.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.
Files changed (547) hide show
  1. checksums.yaml +4 -4
  2. data/lib/chemlab.rb +35 -0
  3. data/lib/chemlab/api_fabricator.rb +134 -0
  4. data/lib/chemlab/attributable.rb +25 -0
  5. data/lib/chemlab/component.rb +87 -0
  6. data/lib/chemlab/configuration.rb +39 -0
  7. data/lib/chemlab/element.rb +22 -0
  8. data/lib/chemlab/page.rb +13 -0
  9. data/lib/chemlab/resource.rb +169 -0
  10. data/lib/chemlab/runtime/api_client.rb +18 -0
  11. data/lib/chemlab/runtime/browser.rb +66 -0
  12. data/lib/chemlab/runtime/env.rb +22 -0
  13. data/{qa → lib/chemlab}/runtime/logger.rb +1 -1
  14. data/{qa → lib/chemlab}/support/api.rb +2 -2
  15. data/lib/chemlab/support/logging.rb +176 -0
  16. data/{qa → lib/chemlab}/support/repeater.rb +1 -1
  17. data/{qa → lib/chemlab}/support/waiter.rb +2 -2
  18. data/lib/chemlab/version.rb +1 -1
  19. metadata +56 -629
  20. data/.gitignore +0 -4
  21. data/.rspec +0 -3
  22. data/.rspec_parallel +0 -5
  23. data/Dockerfile +0 -68
  24. data/Gemfile +0 -23
  25. data/Gemfile.lock +0 -137
  26. data/README.md +0 -201
  27. data/Rakefile +0 -47
  28. data/bin/qa +0 -7
  29. data/bin/test +0 -3
  30. data/chemlab.gemspec +0 -43
  31. data/knapsack/master_report.json +0 -54
  32. data/qa.rb +0 -513
  33. data/qa/ce/strategy.rb +0 -21
  34. data/qa/ee.rb +0 -234
  35. data/qa/ee/fixtures/gpg/admin.asc +0 -0
  36. data/qa/ee/fixtures/secure_license_files/.gitlab-ci.yml +0 -12
  37. data/qa/ee/fixtures/secure_license_files/gl-license-management-report.json +0 -24
  38. data/qa/ee/fixtures/secure_premade_reports/.gitlab-ci.yml +0 -61
  39. data/qa/ee/fixtures/secure_premade_reports/gl-container-scanning-report.json +0 -105
  40. data/qa/ee/fixtures/secure_premade_reports/gl-dast-report.json +0 -1
  41. data/qa/ee/fixtures/secure_premade_reports/gl-dependency-scanning-report.json +0 -226
  42. data/qa/ee/fixtures/secure_premade_reports/gl-license-management-report.json +0 -42
  43. data/qa/ee/fixtures/secure_premade_reports/gl-sast-report.json +0 -152
  44. data/qa/ee/fixtures/secure_premade_reports/yarn.lock +0 -10024
  45. data/qa/ee/page/admin/geo/nodes/new.rb +0 -36
  46. data/qa/ee/page/admin/geo/nodes/show.rb +0 -23
  47. data/qa/ee/page/admin/license.rb +0 -41
  48. data/qa/ee/page/admin/menu.rb +0 -55
  49. data/qa/ee/page/admin/monitoring/audit_log.rb +0 -27
  50. data/qa/ee/page/admin/overview/groups/edit.rb +0 -27
  51. data/qa/ee/page/admin/settings/component/elasticsearch.rb +0 -38
  52. data/qa/ee/page/admin/settings/component/email.rb +0 -35
  53. data/qa/ee/page/admin/settings/integration.rb +0 -25
  54. data/qa/ee/page/admin/settings/preferences.rb +0 -25
  55. data/qa/ee/page/admin/settings/templates.rb +0 -40
  56. data/qa/ee/page/component/design_management.rb +0 -80
  57. data/qa/ee/page/component/issue_board/show.rb +0 -154
  58. data/qa/ee/page/component/license_management.rb +0 -62
  59. data/qa/ee/page/component/secure_report.rb +0 -38
  60. data/qa/ee/page/component/web_ide/web_terminal_panel.rb +0 -58
  61. data/qa/ee/page/dashboard/projects.rb +0 -54
  62. data/qa/ee/page/file/show.rb +0 -49
  63. data/qa/ee/page/group/contribution_analytics.rb +0 -29
  64. data/qa/ee/page/group/epic/index.rb +0 -46
  65. data/qa/ee/page/group/epic/show.rb +0 -74
  66. data/qa/ee/page/group/issues_analytics.rb +0 -33
  67. data/qa/ee/page/group/members.rb +0 -19
  68. data/qa/ee/page/group/menu.rb +0 -117
  69. data/qa/ee/page/group/roadmap.rb +0 -34
  70. data/qa/ee/page/group/saml_sso_sign_in.rb +0 -22
  71. data/qa/ee/page/group/saml_sso_sign_up.rb +0 -34
  72. data/qa/ee/page/group/secure/show.rb +0 -24
  73. data/qa/ee/page/group/settings/general.rb +0 -112
  74. data/qa/ee/page/group/settings/ldap_sync.rb +0 -38
  75. data/qa/ee/page/group/settings/saml_sso.rb +0 -93
  76. data/qa/ee/page/insights/show.rb +0 -51
  77. data/qa/ee/page/main/banner.rb +0 -19
  78. data/qa/ee/page/merge_request/new.rb +0 -74
  79. data/qa/ee/page/merge_request/show.rb +0 -326
  80. data/qa/ee/page/profile/menu.rb +0 -15
  81. data/qa/ee/page/project/issue/index.rb +0 -46
  82. data/qa/ee/page/project/issue/show.rb +0 -97
  83. data/qa/ee/page/project/menu.rb +0 -17
  84. data/qa/ee/page/project/milestone/show.rb +0 -41
  85. data/qa/ee/page/project/new.rb +0 -56
  86. data/qa/ee/page/project/operations/kubernetes/show.rb +0 -50
  87. data/qa/ee/page/project/operations/metrics/show.rb +0 -101
  88. data/qa/ee/page/project/packages/index.rb +0 -30
  89. data/qa/ee/page/project/packages/show.rb +0 -29
  90. data/qa/ee/page/project/path_locks/index.rb +0 -30
  91. data/qa/ee/page/project/pipeline/show.rb +0 -34
  92. data/qa/ee/page/project/secure/dependency_list.rb +0 -19
  93. data/qa/ee/page/project/secure/show.rb +0 -17
  94. data/qa/ee/page/project/settings/ci_cd.rb +0 -25
  95. data/qa/ee/page/project/settings/integrations.rb +0 -21
  96. data/qa/ee/page/project/settings/license_compliance.rb +0 -67
  97. data/qa/ee/page/project/settings/merge_request.rb +0 -27
  98. data/qa/ee/page/project/settings/mirroring_repositories.rb +0 -30
  99. data/qa/ee/page/project/settings/protected_branches.rb +0 -37
  100. data/qa/ee/page/project/settings/push_rules.rb +0 -82
  101. data/qa/ee/page/project/settings/repository.rb +0 -27
  102. data/qa/ee/page/project/settings/services/jenkins.rb +0 -56
  103. data/qa/ee/page/project/show.rb +0 -35
  104. data/qa/ee/page/project/sub_menus/packages.rb +0 -27
  105. data/qa/ee/page/project/sub_menus/project.rb +0 -21
  106. data/qa/ee/page/project/sub_menus/repository.rb +0 -29
  107. data/qa/ee/page/project/sub_menus/security_compliance.rb +0 -44
  108. data/qa/ee/page/project/sub_menus/settings.rb +0 -42
  109. data/qa/ee/page/project/wiki/show.rb +0 -31
  110. data/qa/ee/resource/board/base_board.rb +0 -26
  111. data/qa/ee/resource/board/board_list/group/board_list.rb +0 -57
  112. data/qa/ee/resource/board/board_list/project/assignee_board_list.rb +0 -23
  113. data/qa/ee/resource/board/board_list/project/base_board_list.rb +0 -50
  114. data/qa/ee/resource/board/board_list/project/label_board_list.rb +0 -28
  115. data/qa/ee/resource/board/board_list/project/milestone_board_list.rb +0 -28
  116. data/qa/ee/resource/board/group_board.rb +0 -25
  117. data/qa/ee/resource/board/project_board.rb +0 -25
  118. data/qa/ee/resource/epic.rb +0 -60
  119. data/qa/ee/resource/geo/node.rb +0 -31
  120. data/qa/ee/resource/group_label.rb +0 -50
  121. data/qa/ee/resource/license.rb +0 -21
  122. data/qa/ee/resource/project_milestone.rb +0 -20
  123. data/qa/ee/resource/settings/elasticsearch.rb +0 -60
  124. data/qa/ee/runtime/env.rb +0 -30
  125. data/qa/ee/runtime/geo.rb +0 -28
  126. data/qa/ee/runtime/saml.rb +0 -37
  127. data/qa/ee/scenario/test/geo.rb +0 -211
  128. data/qa/ee/scenario/test/integration/elasticsearch.rb +0 -15
  129. data/qa/ee/scenario/test/integration/group_saml.rb +0 -17
  130. data/qa/ee/scenario/test/sanity/selectors.rb +0 -17
  131. data/qa/ee/strategy.rb +0 -28
  132. data/qa/fixtures/auto_devops_rack/Dockerfile +0 -9
  133. data/qa/fixtures/auto_devops_rack/Gemfile +0 -3
  134. data/qa/fixtures/auto_devops_rack/Gemfile.lock +0 -15
  135. data/qa/fixtures/auto_devops_rack/Rakefile +0 -7
  136. data/qa/fixtures/auto_devops_rack/config.ru +0 -1
  137. data/qa/fixtures/ldap/admin/1_add_nodes.ldif +0 -7
  138. data/qa/fixtures/ldap/admin/2_add_users.ldif +0 -63
  139. data/qa/fixtures/ldap/admin/3_add_groups.ldif +0 -16
  140. data/qa/fixtures/ldap/non_admin/1_add_nodes.ldif +0 -7
  141. data/qa/fixtures/ldap/non_admin/2_add_users.ldif +0 -61
  142. data/qa/fixtures/ldap/non_admin/3_add_groups.ldif +0 -16
  143. data/qa/fixtures/monitored_auto_devops/.gitlab-ci.yml +0 -337
  144. data/qa/flow/login.rb +0 -39
  145. data/qa/flow/project.rb +0 -19
  146. data/qa/flow/saml.rb +0 -72
  147. data/qa/flow/user.rb +0 -26
  148. data/qa/git/location.rb +0 -34
  149. data/qa/git/repository.rb +0 -269
  150. data/qa/page/admin/menu.rb +0 -110
  151. data/qa/page/admin/new_session.rb +0 -22
  152. data/qa/page/admin/overview/groups/edit.rb +0 -23
  153. data/qa/page/admin/overview/groups/index.rb +0 -32
  154. data/qa/page/admin/overview/groups/show.rb +0 -21
  155. data/qa/page/admin/overview/users/index.rb +0 -35
  156. data/qa/page/admin/overview/users/show.rb +0 -31
  157. data/qa/page/admin/settings/component/account_and_limit.rb +0 -26
  158. data/qa/page/admin/settings/component/ip_limits.rb +0 -30
  159. data/qa/page/admin/settings/component/outbound_requests.rb +0 -33
  160. data/qa/page/admin/settings/component/performance_bar.rb +0 -27
  161. data/qa/page/admin/settings/component/repository_storage.rb +0 -26
  162. data/qa/page/admin/settings/general.rb +0 -23
  163. data/qa/page/admin/settings/metrics_and_profiling.rb +0 -23
  164. data/qa/page/admin/settings/network.rb +0 -30
  165. data/qa/page/admin/settings/repository.rb +0 -23
  166. data/qa/page/alert/auto_devops_alert.rb +0 -13
  167. data/qa/page/base.rb +0 -348
  168. data/qa/page/component/breadcrumbs.rb +0 -19
  169. data/qa/page/component/ci_badge_link.rb +0 -49
  170. data/qa/page/component/clone_panel.rb +0 -38
  171. data/qa/page/component/confirm_modal.rb +0 -25
  172. data/qa/page/component/dropdown_filter.rb +0 -16
  173. data/qa/page/component/dropzone.rb +0 -33
  174. data/qa/page/component/groups_filter.rb +0 -37
  175. data/qa/page/component/issuable/common.rb +0 -31
  176. data/qa/page/component/lazy_loader.rb +0 -15
  177. data/qa/page/component/legacy_clone_panel.rb +0 -47
  178. data/qa/page/component/note.rb +0 -84
  179. data/qa/page/component/select2.rb +0 -48
  180. data/qa/page/component/users_select.rb +0 -14
  181. data/qa/page/component/web_ide/alert.rb +0 -27
  182. data/qa/page/dashboard/groups.rb +0 -34
  183. data/qa/page/dashboard/projects.rb +0 -37
  184. data/qa/page/dashboard/snippet/index.rb +0 -21
  185. data/qa/page/dashboard/snippet/new.rb +0 -70
  186. data/qa/page/dashboard/snippet/show.rb +0 -63
  187. data/qa/page/dashboard/welcome.rb +0 -17
  188. data/qa/page/element.rb +0 -55
  189. data/qa/page/file/edit.rb +0 -13
  190. data/qa/page/file/form.rb +0 -49
  191. data/qa/page/file/shared/commit_button.rb +0 -25
  192. data/qa/page/file/shared/commit_message.rb +0 -21
  193. data/qa/page/file/shared/editor.rb +0 -33
  194. data/qa/page/file/show.rb +0 -36
  195. data/qa/page/group/menu.rb +0 -52
  196. data/qa/page/group/new.rb +0 -37
  197. data/qa/page/group/settings/general.rb +0 -115
  198. data/qa/page/group/show.rb +0 -74
  199. data/qa/page/group/sub_menus/common.rb +0 -27
  200. data/qa/page/group/sub_menus/members.rb +0 -45
  201. data/qa/page/issuable/sidebar.rb +0 -27
  202. data/qa/page/label/index.rb +0 -34
  203. data/qa/page/label/new.rb +0 -32
  204. data/qa/page/layout/banner.rb +0 -19
  205. data/qa/page/layout/performance_bar.rb +0 -41
  206. data/qa/page/main/login.rb +0 -181
  207. data/qa/page/main/menu.rb +0 -150
  208. data/qa/page/main/oauth.rb +0 -21
  209. data/qa/page/main/sign_up.rb +0 -37
  210. data/qa/page/main/terms.rb +0 -21
  211. data/qa/page/mattermost/login.rb +0 -28
  212. data/qa/page/mattermost/main.rb +0 -15
  213. data/qa/page/merge_request/new.rb +0 -68
  214. data/qa/page/merge_request/show.rb +0 -232
  215. data/qa/page/profile/emails.rb +0 -29
  216. data/qa/page/profile/menu.rb +0 -52
  217. data/qa/page/profile/password.rb +0 -23
  218. data/qa/page/profile/personal_access_tokens.rb +0 -67
  219. data/qa/page/profile/ssh_keys.rb +0 -42
  220. data/qa/page/profile/two_factor_auth.rb +0 -17
  221. data/qa/page/project/activity.rb +0 -17
  222. data/qa/page/project/branches/show.rb +0 -56
  223. data/qa/page/project/commit/show.rb +0 -32
  224. data/qa/page/project/fork/new.rb +0 -19
  225. data/qa/page/project/import/github.rb +0 -78
  226. data/qa/page/project/issue/index.rb +0 -71
  227. data/qa/page/project/issue/new.rb +0 -35
  228. data/qa/page/project/issue/show.rb +0 -168
  229. data/qa/page/project/job/show.rb +0 -53
  230. data/qa/page/project/menu.rb +0 -43
  231. data/qa/page/project/milestone/index.rb +0 -19
  232. data/qa/page/project/milestone/new.rb +0 -29
  233. data/qa/page/project/new.rb +0 -76
  234. data/qa/page/project/operations/environments/index.rb +0 -21
  235. data/qa/page/project/operations/environments/show.rb +0 -23
  236. data/qa/page/project/operations/kubernetes/add.rb +0 -21
  237. data/qa/page/project/operations/kubernetes/add_existing.rb +0 -46
  238. data/qa/page/project/operations/kubernetes/index.rb +0 -25
  239. data/qa/page/project/operations/kubernetes/show.rb +0 -81
  240. data/qa/page/project/operations/metrics/show.rb +0 -87
  241. data/qa/page/project/pipeline/index.rb +0 -43
  242. data/qa/page/project/pipeline/show.rb +0 -76
  243. data/qa/page/project/settings/advanced.rb +0 -75
  244. data/qa/page/project/settings/auto_devops.rb +0 -21
  245. data/qa/page/project/settings/ci_cd.rb +0 -39
  246. data/qa/page/project/settings/ci_variables.rb +0 -56
  247. data/qa/page/project/settings/common.rb +0 -13
  248. data/qa/page/project/settings/deploy_keys.rb +0 -69
  249. data/qa/page/project/settings/deploy_tokens.rb +0 -64
  250. data/qa/page/project/settings/main.rb +0 -60
  251. data/qa/page/project/settings/members.rb +0 -62
  252. data/qa/page/project/settings/merge_request.rb +0 -32
  253. data/qa/page/project/settings/mirroring_repositories.rb +0 -132
  254. data/qa/page/project/settings/protected_branches.rb +0 -72
  255. data/qa/page/project/settings/repository.rb +0 -55
  256. data/qa/page/project/settings/runners.rb +0 -37
  257. data/qa/page/project/settings/visibility_features_permissions.rb +0 -26
  258. data/qa/page/project/show.rb +0 -165
  259. data/qa/page/project/sub_menus/ci_cd.rb +0 -27
  260. data/qa/page/project/sub_menus/common.rb +0 -19
  261. data/qa/page/project/sub_menus/issues.rb +0 -63
  262. data/qa/page/project/sub_menus/operations.rb +0 -58
  263. data/qa/page/project/sub_menus/project.rb +0 -29
  264. data/qa/page/project/sub_menus/repository.rb +0 -48
  265. data/qa/page/project/sub_menus/settings.rb +0 -81
  266. data/qa/page/project/web_ide/edit.rb +0 -139
  267. data/qa/page/project/wiki/edit.rb +0 -21
  268. data/qa/page/project/wiki/git_access.rb +0 -13
  269. data/qa/page/project/wiki/new.rb +0 -61
  270. data/qa/page/project/wiki/show.rb +0 -31
  271. data/qa/page/search/results.rb +0 -55
  272. data/qa/page/settings/common.rb +0 -26
  273. data/qa/page/sub_menus/common.rb +0 -50
  274. data/qa/page/validatable.rb +0 -21
  275. data/qa/page/validator.rb +0 -52
  276. data/qa/page/view.rb +0 -59
  277. data/qa/resource/api_fabricator.rb +0 -137
  278. data/qa/resource/base.rb +0 -170
  279. data/qa/resource/ci_variable.rb +0 -57
  280. data/qa/resource/deploy_key.rb +0 -39
  281. data/qa/resource/deploy_token.rb +0 -48
  282. data/qa/resource/events/base.rb +0 -42
  283. data/qa/resource/events/project.rb +0 -25
  284. data/qa/resource/file.rb +0 -63
  285. data/qa/resource/fork.rb +0 -92
  286. data/qa/resource/group.rb +0 -83
  287. data/qa/resource/issue.rb +0 -61
  288. data/qa/resource/kubernetes_cluster/base.rb +0 -40
  289. data/qa/resource/kubernetes_cluster/project_cluster.rb +0 -72
  290. data/qa/resource/label.rb +0 -61
  291. data/qa/resource/members.rb +0 -36
  292. data/qa/resource/merge_request.rb +0 -105
  293. data/qa/resource/merge_request_from_fork.rb +0 -33
  294. data/qa/resource/personal_access_token.rb +0 -31
  295. data/qa/resource/project.rb +0 -179
  296. data/qa/resource/project_imported_from_github.rb +0 -31
  297. data/qa/resource/project_member.rb +0 -35
  298. data/qa/resource/project_milestone.rb +0 -34
  299. data/qa/resource/protected_branch.rb +0 -76
  300. data/qa/resource/repository/commit.rb +0 -81
  301. data/qa/resource/repository/project_push.rb +0 -44
  302. data/qa/resource/repository/push.rb +0 -113
  303. data/qa/resource/repository/wiki_push.rb +0 -38
  304. data/qa/resource/runner.rb +0 -75
  305. data/qa/resource/sandbox.rb +0 -79
  306. data/qa/resource/settings/hashed_storage.rb +0 -26
  307. data/qa/resource/snippet.rb +0 -30
  308. data/qa/resource/ssh_key.rb +0 -57
  309. data/qa/resource/tag.rb +0 -30
  310. data/qa/resource/user.rb +0 -150
  311. data/qa/resource/user_gpg.rb +0 -46
  312. data/qa/resource/visibility.rb +0 -17
  313. data/qa/resource/wiki.rb +0 -48
  314. data/qa/runtime/address.rb +0 -29
  315. data/qa/runtime/api/client.rb +0 -90
  316. data/qa/runtime/api/request.rb +0 -49
  317. data/qa/runtime/application_settings.rb +0 -46
  318. data/qa/runtime/browser.rb +0 -220
  319. data/qa/runtime/env.rb +0 -330
  320. data/qa/runtime/feature.rb +0 -87
  321. data/qa/runtime/fixtures.rb +0 -43
  322. data/qa/runtime/gpg.rb +0 -37
  323. data/qa/runtime/ip_address.rb +0 -33
  324. data/qa/runtime/key/base.rb +0 -38
  325. data/qa/runtime/key/ecdsa.rb +0 -13
  326. data/qa/runtime/key/ed25519.rb +0 -13
  327. data/qa/runtime/key/rsa.rb +0 -13
  328. data/qa/runtime/mail_hog.rb +0 -15
  329. data/qa/runtime/namespace.rb +0 -27
  330. data/qa/runtime/path.rb +0 -13
  331. data/qa/runtime/release.rb +0 -40
  332. data/qa/runtime/scenario.rb +0 -38
  333. data/qa/runtime/search.rb +0 -124
  334. data/qa/runtime/user.rb +0 -57
  335. data/qa/scenario/actable.rb +0 -25
  336. data/qa/scenario/bootable.rb +0 -53
  337. data/qa/scenario/shared_attributes.rb +0 -14
  338. data/qa/scenario/template.rb +0 -64
  339. data/qa/scenario/test/instance.rb +0 -36
  340. data/qa/scenario/test/instance/all.rb +0 -18
  341. data/qa/scenario/test/instance/smoke.rb +0 -20
  342. data/qa/scenario/test/integration/github.rb +0 -20
  343. data/qa/scenario/test/integration/instance_saml.rb +0 -13
  344. data/qa/scenario/test/integration/kubernetes.rb +0 -13
  345. data/qa/scenario/test/integration/ldap_no_server.rb +0 -13
  346. data/qa/scenario/test/integration/ldap_no_tls.rb +0 -13
  347. data/qa/scenario/test/integration/ldap_tls.rb +0 -13
  348. data/qa/scenario/test/integration/mattermost.rb +0 -26
  349. data/qa/scenario/test/integration/object_storage.rb +0 -13
  350. data/qa/scenario/test/integration/smtp.rb +0 -13
  351. data/qa/scenario/test/sanity/framework.rb +0 -19
  352. data/qa/scenario/test/sanity/selectors.rb +0 -61
  353. data/qa/service/cluster_provider/base.rb +0 -41
  354. data/qa/service/cluster_provider/gcloud.rb +0 -115
  355. data/qa/service/cluster_provider/k3d.rb +0 -134
  356. data/qa/service/cluster_provider/k3s.rb +0 -94
  357. data/qa/service/cluster_provider/minikube.rb +0 -26
  358. data/qa/service/docker_run/base.rb +0 -47
  359. data/qa/service/docker_run/gitlab_runner.rb +0 -58
  360. data/qa/service/docker_run/jenkins.rb +0 -43
  361. data/qa/service/docker_run/k3s.rb +0 -46
  362. data/qa/service/docker_run/ldap.rb +0 -41
  363. data/qa/service/docker_run/maven.rb +0 -44
  364. data/qa/service/docker_run/node_js.rb +0 -38
  365. data/qa/service/docker_run/saml_idp.rb +0 -69
  366. data/qa/service/kubernetes_cluster.rb +0 -107
  367. data/qa/service/omnibus.rb +0 -23
  368. data/qa/service/shellout.rb +0 -31
  369. data/qa/specs/features/api/1_manage/.gitkeep +0 -0
  370. data/qa/specs/features/api/1_manage/rate_limits_spec.rb +0 -17
  371. data/qa/specs/features/api/1_manage/users_spec.rb +0 -35
  372. data/qa/specs/features/api/2_plan/.gitkeep +0 -0
  373. data/qa/specs/features/api/2_plan/closes_issue_via_pushing_a_commit_spec.rb +0 -48
  374. data/qa/specs/features/api/3_create/repository/files_spec.rb +0 -106
  375. data/qa/specs/features/api/3_create/repository/project_archive_compare_spec.rb +0 -74
  376. data/qa/specs/features/api/4_verify/.gitkeep +0 -0
  377. data/qa/specs/features/api/5_package/.gitkeep +0 -0
  378. data/qa/specs/features/api/6_release/.gitkeep +0 -0
  379. data/qa/specs/features/api/7_configure/.gitkeep +0 -0
  380. data/qa/specs/features/browser_ui/1_manage/group/create_group_with_mattermost_team_spec.rb +0 -20
  381. data/qa/specs/features/browser_ui/1_manage/group/transfer_project_spec.rb +0 -56
  382. data/qa/specs/features/browser_ui/1_manage/login/log_in_spec.rb +0 -25
  383. data/qa/specs/features/browser_ui/1_manage/login/log_into_gitlab_via_ldap_spec.rb +0 -15
  384. data/qa/specs/features/browser_ui/1_manage/login/log_into_mattermost_via_gitlab_spec.rb +0 -20
  385. data/qa/specs/features/browser_ui/1_manage/login/login_via_instance_wide_saml_sso_spec.rb +0 -19
  386. data/qa/specs/features/browser_ui/1_manage/login/register_spec.rb +0 -27
  387. data/qa/specs/features/browser_ui/1_manage/project/add_project_member_spec.rb +0 -24
  388. data/qa/specs/features/browser_ui/1_manage/project/create_project_spec.rb +0 -23
  389. data/qa/specs/features/browser_ui/1_manage/project/dashboard_images_spec.rb +0 -57
  390. data/qa/specs/features/browser_ui/1_manage/project/import_github_repo_spec.rb +0 -117
  391. data/qa/specs/features/browser_ui/1_manage/project/view_project_activity_spec.rb +0 -22
  392. data/qa/specs/features/browser_ui/2_plan/email/trigger_email_notification_spec.rb +0 -46
  393. data/qa/specs/features/browser_ui/2_plan/issue/check_mentions_for_xss_spec.rb +0 -45
  394. data/qa/specs/features/browser_ui/2_plan/issue/collapse_comments_in_discussions_spec.rb +0 -35
  395. data/qa/specs/features/browser_ui/2_plan/issue/comment_issue_spec.rb +0 -29
  396. data/qa/specs/features/browser_ui/2_plan/issue/create_issue_spec.rb +0 -40
  397. data/qa/specs/features/browser_ui/2_plan/issue/export_as_csv_spec.rb +0 -40
  398. data/qa/specs/features/browser_ui/2_plan/issue/filter_issue_comments_spec.rb +0 -36
  399. data/qa/specs/features/browser_ui/2_plan/issue/issue_suggestions_spec.rb +0 -28
  400. data/qa/specs/features/browser_ui/2_plan/issue/mentions_spec.rb +0 -35
  401. data/qa/specs/features/browser_ui/3_create/merge_request/create_merge_request_spec.rb +0 -64
  402. data/qa/specs/features/browser_ui/3_create/merge_request/merge_merge_request_from_fork_spec.rb +0 -26
  403. data/qa/specs/features/browser_ui/3_create/merge_request/rebase_merge_request_spec.rb +0 -49
  404. data/qa/specs/features/browser_ui/3_create/merge_request/squash_merge_request_spec.rb +0 -52
  405. data/qa/specs/features/browser_ui/3_create/merge_request/view_merge_request_diff_patch_spec.rb +0 -35
  406. data/qa/specs/features/browser_ui/3_create/repository/add_file_template_spec.rb +0 -68
  407. data/qa/specs/features/browser_ui/3_create/repository/add_list_delete_branches_spec.rb +0 -88
  408. data/qa/specs/features/browser_ui/3_create/repository/add_ssh_key_spec.rb +0 -30
  409. data/qa/specs/features/browser_ui/3_create/repository/clone_spec.rb +0 -51
  410. data/qa/specs/features/browser_ui/3_create/repository/create_edit_delete_file_via_web_spec.rb +0 -58
  411. data/qa/specs/features/browser_ui/3_create/repository/move_project_create_fork_spec.rb +0 -53
  412. data/qa/specs/features/browser_ui/3_create/repository/protocol_v2_push_http_spec.rb +0 -48
  413. data/qa/specs/features/browser_ui/3_create/repository/protocol_v2_push_ssh_spec.rb +0 -74
  414. data/qa/specs/features/browser_ui/3_create/repository/push_http_private_token_spec.rb +0 -34
  415. data/qa/specs/features/browser_ui/3_create/repository/push_mirroring_over_http_spec.rb +0 -43
  416. data/qa/specs/features/browser_ui/3_create/repository/push_over_http_file_size_spec.rb +0 -81
  417. data/qa/specs/features/browser_ui/3_create/repository/push_over_http_spec.rb +0 -44
  418. data/qa/specs/features/browser_ui/3_create/repository/push_protected_branch_spec.rb +0 -63
  419. data/qa/specs/features/browser_ui/3_create/repository/use_ssh_key_spec.rb +0 -37
  420. data/qa/specs/features/browser_ui/3_create/repository/user_views_commit_diff_patch_spec.rb +0 -66
  421. data/qa/specs/features/browser_ui/3_create/snippet/create_snippet_spec.rb +0 -29
  422. data/qa/specs/features/browser_ui/3_create/web_ide/add_file_template_spec.rb +0 -69
  423. data/qa/specs/features/browser_ui/3_create/web_ide/review_merge_request_spec.rb +0 -43
  424. data/qa/specs/features/browser_ui/3_create/wiki/create_edit_clone_push_wiki_spec.rb +0 -42
  425. data/qa/specs/features/browser_ui/4_verify/ci_variable/add_remove_ci_variable_spec.rb +0 -60
  426. data/qa/specs/features/browser_ui/4_verify/pipeline/create_and_process_pipeline_spec.rb +0 -89
  427. data/qa/specs/features/browser_ui/4_verify/runner/register_runner_spec.rb +0 -34
  428. data/qa/specs/features/browser_ui/5_package/.gitkeep +0 -0
  429. data/qa/specs/features/browser_ui/6_release/deploy_key/add_deploy_key_spec.rb +0 -28
  430. data/qa/specs/features/browser_ui/6_release/deploy_key/clone_using_deploy_key_spec.rb +0 -102
  431. data/qa/specs/features/browser_ui/6_release/deploy_token/add_deploy_token_spec.rb +0 -22
  432. data/qa/specs/features/browser_ui/6_release/pipeline/parent_child_pipelines_dependent_relationship_spec.rb +0 -122
  433. data/qa/specs/features/browser_ui/6_release/pipeline/parent_child_pipelines_independent_relationship_spec.rb +0 -121
  434. data/qa/specs/features/browser_ui/7_configure/auto_devops/create_project_with_auto_devops_spec.rb +0 -147
  435. data/qa/specs/features/browser_ui/7_configure/kubernetes/kubernetes_integration_spec.rb +0 -38
  436. data/qa/specs/features/browser_ui/8_monitor/apm/dashboards_spec.rb +0 -97
  437. data/qa/specs/features/browser_ui/non_devops/performance_bar_spec.rb +0 -38
  438. data/qa/specs/features/ee/api/1_manage/.gitkeep +0 -0
  439. data/qa/specs/features/ee/api/2_plan/.gitkeep +0 -0
  440. data/qa/specs/features/ee/api/2_plan/epics_milestone_dates_spec.rb +0 -173
  441. data/qa/specs/features/ee/api/3_create/.gitkeep +0 -0
  442. data/qa/specs/features/ee/api/4_verify/.gitkeep +0 -0
  443. data/qa/specs/features/ee/api/5_package/.gitkeep +0 -0
  444. data/qa/specs/features/ee/api/6_release/.gitkeep +0 -0
  445. data/qa/specs/features/ee/api/7_configure/.gitkeep +0 -0
  446. data/qa/specs/features/ee/api/enablement/elasticsearch/advanced_global_advanced_syntax_search_spec.rb +0 -70
  447. data/qa/specs/features/ee/api/enablement/elasticsearch/elasticsearch_api_spec.rb +0 -84
  448. data/qa/specs/features/ee/api/geo/geo_nodes_spec.rb +0 -91
  449. data/qa/specs/features/ee/browser_ui/1_manage/.gitkeep +0 -0
  450. data/qa/specs/features/ee/browser_ui/1_manage/group/group_audit_logs_1_spec.rb +0 -155
  451. data/qa/specs/features/ee/browser_ui/1_manage/group/group_audit_logs_2_spec.rb +0 -103
  452. data/qa/specs/features/ee/browser_ui/1_manage/group/group_file_template_spec.rb +0 -141
  453. data/qa/specs/features/ee/browser_ui/1_manage/group/group_ldap_sync_spec.rb +0 -183
  454. data/qa/specs/features/ee/browser_ui/1_manage/group/group_saml_enforced_sso_spec.rb +0 -115
  455. data/qa/specs/features/ee/browser_ui/1_manage/group/group_saml_group_managed_accounts_spec.rb +0 -178
  456. data/qa/specs/features/ee/browser_ui/1_manage/group/group_saml_non_enforced_sso_spec.rb +0 -87
  457. data/qa/specs/features/ee/browser_ui/1_manage/group/restrict_by_ip_address_spec.rb +0 -107
  458. data/qa/specs/features/ee/browser_ui/1_manage/insights/default_insights_spec.rb +0 -48
  459. data/qa/specs/features/ee/browser_ui/1_manage/instance/instance_audit_logs_spec.rb +0 -124
  460. data/qa/specs/features/ee/browser_ui/1_manage/ldap/admin_ldap_sync_spec.rb +0 -63
  461. data/qa/specs/features/ee/browser_ui/1_manage/project/project_audit_logs_spec.rb +0 -127
  462. data/qa/specs/features/ee/browser_ui/1_manage/project/project_templates_spec.rb +0 -165
  463. data/qa/specs/features/ee/browser_ui/2_plan/.gitkeep +0 -0
  464. data/qa/specs/features/ee/browser_ui/2_plan/burndown_chart/burndown_chart_spec.rb +0 -46
  465. data/qa/specs/features/ee/browser_ui/2_plan/custom_email/custom_email_spec.rb +0 -28
  466. data/qa/specs/features/ee/browser_ui/2_plan/epic/epics_management_spec.rb +0 -96
  467. data/qa/specs/features/ee/browser_ui/2_plan/epic/promote_issue_to_epic_spec.rb +0 -40
  468. data/qa/specs/features/ee/browser_ui/2_plan/epic/roadmap_spec.rb +0 -31
  469. data/qa/specs/features/ee/browser_ui/2_plan/issue_boards/configurable_issue_board_spec.rb +0 -28
  470. data/qa/specs/features/ee/browser_ui/2_plan/issue_boards/configure_issue_board_by_label_spec.rb +0 -44
  471. data/qa/specs/features/ee/browser_ui/2_plan/issue_boards/create_group_issue_board_spec.rb +0 -31
  472. data/qa/specs/features/ee/browser_ui/2_plan/issue_boards/focus_mode_spec.rb +0 -28
  473. data/qa/specs/features/ee/browser_ui/2_plan/issue_boards/group_issue_boards_spec.rb +0 -48
  474. data/qa/specs/features/ee/browser_ui/2_plan/issue_boards/project_issue_boards_spec.rb +0 -103
  475. data/qa/specs/features/ee/browser_ui/2_plan/issue_boards/read_only_board_configuration_spec.rb +0 -37
  476. data/qa/specs/features/ee/browser_ui/2_plan/issue_boards/sum_of_issues_weights_spec.rb +0 -40
  477. data/qa/specs/features/ee/browser_ui/2_plan/issues_analytics/issues_analytics_spec.rb +0 -35
  478. data/qa/specs/features/ee/browser_ui/2_plan/issues_weight/issue_weight_visualization_spec.rb +0 -46
  479. data/qa/specs/features/ee/browser_ui/2_plan/multiple_assignees_for_issues/four_assignees_spec.rb +0 -45
  480. data/qa/specs/features/ee/browser_ui/2_plan/multiple_assignees_for_issues/more_than_four_assignees_spec.rb +0 -70
  481. data/qa/specs/features/ee/browser_ui/2_plan/related_issues/related_issues_spec.rb +0 -50
  482. data/qa/specs/features/ee/browser_ui/2_plan/scoped_labels/editing_scoped_labels_spec.rb +0 -58
  483. data/qa/specs/features/ee/browser_ui/3_create/.gitkeep +0 -0
  484. data/qa/specs/features/ee/browser_ui/3_create/contribution_analytics_spec.rb +0 -53
  485. data/qa/specs/features/ee/browser_ui/3_create/design_management_spec.rb +0 -29
  486. data/qa/specs/features/ee/browser_ui/3_create/jenkins/jenkins_build_status_spec.rb +0 -158
  487. data/qa/specs/features/ee/browser_ui/3_create/merge_request/add_batch_comments_in_merge_request_spec.rb +0 -80
  488. data/qa/specs/features/ee/browser_ui/3_create/merge_request/approval_rules_spec.rb +0 -97
  489. data/qa/specs/features/ee/browser_ui/3_create/repository/assign_code_owners_spec.rb +0 -83
  490. data/qa/specs/features/ee/browser_ui/3_create/repository/code_owners_spec.rb +0 -75
  491. data/qa/specs/features/ee/browser_ui/3_create/repository/file_locking_spec.rb +0 -161
  492. data/qa/specs/features/ee/browser_ui/3_create/repository/pull_mirroring_over_http_spec.rb +0 -52
  493. data/qa/specs/features/ee/browser_ui/3_create/repository/pull_mirroring_over_ssh_with_key_spec.rb +0 -71
  494. data/qa/specs/features/ee/browser_ui/3_create/repository/push_rules_spec.rb +0 -202
  495. data/qa/specs/features/ee/browser_ui/3_create/repository/restrict_push_protected_branch_spec.rb +0 -120
  496. data/qa/specs/features/ee/browser_ui/3_create/web_ide/web_terminal_spec.rb +0 -80
  497. data/qa/specs/features/ee/browser_ui/4_verify/.gitkeep +0 -0
  498. data/qa/specs/features/ee/browser_ui/5_package/.gitkeep +0 -0
  499. data/qa/specs/features/ee/browser_ui/5_package/maven_repository_spec.rb +0 -102
  500. data/qa/specs/features/ee/browser_ui/5_package/npm_registry_spec.rb +0 -75
  501. data/qa/specs/features/ee/browser_ui/6_release/.gitkeep +0 -0
  502. data/qa/specs/features/ee/browser_ui/6_release/multi-project_pipelines_spec.rb +0 -98
  503. data/qa/specs/features/ee/browser_ui/6_release/pipelines_for_merged_results_and_merge_trains_spec.rb +0 -137
  504. data/qa/specs/features/ee/browser_ui/7_configure/.gitkeep +0 -0
  505. data/qa/specs/features/ee/browser_ui/8_monitor/.gitkeep +0 -0
  506. data/qa/specs/features/ee/browser_ui/8_monitor/apm/metrics_spec.rb +0 -68
  507. data/qa/specs/features/ee/browser_ui/8_monitor/health/alerting_spec.rb +0 -106
  508. data/qa/specs/features/ee/browser_ui/8_monitor/health/cluster_health_spec.rb +0 -52
  509. data/qa/specs/features/ee/browser_ui/enablement/elasticsearch/elasticsearch_reindexing_spec.rb +0 -78
  510. data/qa/specs/features/ee/browser_ui/geo/attachment_replication_spec.rb +0 -63
  511. data/qa/specs/features/ee/browser_ui/geo/database_delete_replication_spec.rb +0 -60
  512. data/qa/specs/features/ee/browser_ui/geo/http_push_spec.rb +0 -121
  513. data/qa/specs/features/ee/browser_ui/geo/http_push_to_secondary_spec.rb +0 -174
  514. data/qa/specs/features/ee/browser_ui/geo/rename_replication_spec.rb +0 -75
  515. data/qa/specs/features/ee/browser_ui/geo/ssh_push_spec.rb +0 -151
  516. data/qa/specs/features/ee/browser_ui/geo/ssh_push_to_secondary_spec.rb +0 -189
  517. data/qa/specs/features/ee/browser_ui/geo/wiki_http_push_spec.rb +0 -68
  518. data/qa/specs/features/ee/browser_ui/geo/wiki_http_push_to_secondary_spec.rb +0 -105
  519. data/qa/specs/features/ee/browser_ui/geo/wiki_ssh_push_spec.rb +0 -93
  520. data/qa/specs/features/ee/browser_ui/geo/wiki_ssh_push_to_secondary_spec.rb +0 -110
  521. data/qa/specs/features/ee/browser_ui/secure/create_merge_request_with_secure_spec.rb +0 -79
  522. data/qa/specs/features/ee/browser_ui/secure/license_compliance_spec.rb +0 -98
  523. data/qa/specs/features/ee/browser_ui/secure/merge_request_license_widget_spec.rb +0 -134
  524. data/qa/specs/features/ee/browser_ui/secure/security_reports_spec.rb +0 -143
  525. data/qa/specs/features/ee/browser_ui/secure/vulnerability_management_spec.rb +0 -101
  526. data/qa/specs/features/sanity/framework_spec.rb +0 -21
  527. data/qa/specs/helpers/quarantine.rb +0 -84
  528. data/qa/specs/loop_runner.rb +0 -21
  529. data/qa/specs/parallel_runner.rb +0 -33
  530. data/qa/specs/runner.rb +0 -78
  531. data/qa/support/dates.rb +0 -21
  532. data/qa/support/page/logging.rb +0 -178
  533. data/qa/support/retrier.rb +0 -64
  534. data/qa/support/wait_for_requests.rb +0 -25
  535. data/qa/tools/delete_subgroups.rb +0 -66
  536. data/qa/tools/delete_test_ssh_keys.rb +0 -61
  537. data/qa/tools/generate_perf_testdata.rb +0 -301
  538. data/qa/tools/revoke_all_personal_access_tokens.rb +0 -44
  539. data/qa/vendor/jenkins/page/base.rb +0 -24
  540. data/qa/vendor/jenkins/page/configure.rb +0 -48
  541. data/qa/vendor/jenkins/page/configure_job.rb +0 -72
  542. data/qa/vendor/jenkins/page/last_job_console.rb +0 -44
  543. data/qa/vendor/jenkins/page/login.rb +0 -31
  544. data/qa/vendor/jenkins/page/new_credentials.rb +0 -50
  545. data/qa/vendor/jenkins/page/new_job.rb +0 -38
  546. data/qa/vendor/saml_idp/page/base.rb +0 -14
  547. data/qa/vendor/saml_idp/page/login.rb +0 -31
@@ -1,80 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module QA
4
- context 'Create' do
5
- describe 'batch comments in merge request' do
6
- let(:project) do
7
- Resource::Project.fabricate_via_api! do |project|
8
- project.name = 'project-with-merge-request'
9
- end
10
- end
11
- let(:merge_request) do
12
- Resource::MergeRequest.fabricate_via_api! do |merge_request|
13
- merge_request.title = 'This is a merge request'
14
- merge_request.description = 'Great feature'
15
- merge_request.project = project
16
- end
17
- end
18
-
19
- it 'user submits a non-diff review' do
20
- Flow::Login.sign_in
21
-
22
- merge_request.visit!
23
-
24
- Page::MergeRequest::Show.perform do |show|
25
- show.click_discussions_tab
26
-
27
- # You can't start a review immediately, so we have to add a
28
- # comment (or start a thread) first
29
- show.start_discussion("I'm starting a new discussion")
30
- show.type_reply_to_discussion(1, "Could you please check this?")
31
- show.start_review
32
- show.submit_pending_reviews
33
-
34
- expect(show).to have_content("I'm starting a new discussion")
35
- expect(show).to have_content("Could you please check this?")
36
- expect(show).to have_content("1 unresolved thread")
37
- end
38
- end
39
-
40
- it 'user submits a diff review' do
41
- Flow::Login.sign_in
42
-
43
- merge_request.visit!
44
-
45
- Page::MergeRequest::Show.perform do |show|
46
- show.click_diffs_tab
47
- show.add_comment_to_diff("Can you check this line of code?")
48
- show.start_review
49
- show.submit_pending_reviews
50
- end
51
-
52
- # Overwrite the added file to create a system note as required to
53
- # trigger the bug described here: https://gitlab.com/gitlab-org/gitlab/issues/32157
54
- commit_message = 'Update file'
55
- Resource::Repository::Commit.fabricate_via_api! do |commit|
56
- commit.project = project
57
- commit.commit_message = commit_message
58
- commit.branch = merge_request.source_branch
59
- commit.update_files(
60
- [
61
- {
62
- file_path: merge_request.file_name,
63
- content: "File updated"
64
- }
65
- ]
66
- )
67
- end
68
- project.wait_for_push(commit_message)
69
-
70
- Page::MergeRequest::Show.perform do |show|
71
- show.click_discussions_tab
72
- show.resolve_discussion_at_index(0)
73
-
74
- expect(show).to have_content("Can you check this line of code?")
75
- expect(show).to have_content("All threads resolved")
76
- end
77
- end
78
- end
79
- end
80
- end
@@ -1,97 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module QA
4
- context 'Create' do
5
- describe 'Approval rules' do
6
- let(:approver1) { Resource::User.fabricate_or_use(Runtime::Env.gitlab_qa_username_1, Runtime::Env.gitlab_qa_password_1) }
7
- let(:approver2) { Resource::User.fabricate_or_use(Runtime::Env.gitlab_qa_username_2, Runtime::Env.gitlab_qa_password_2) }
8
- let(:project) do
9
- Resource::Project.fabricate_via_api! { |project| project.name = "approval-rules" }
10
- end
11
-
12
- def login(user = nil)
13
- Runtime::Browser.visit(:gitlab, Page::Main::Login)
14
- Page::Main::Login.perform { |login| login.sign_in_using_credentials(user: user) }
15
- end
16
-
17
- before do
18
- project.add_member(approver1)
19
- project.group.add_member(approver2)
20
-
21
- Page::Main::Menu.perform(&:sign_out_if_signed_in)
22
-
23
- login
24
- end
25
-
26
- it 'allows multiple approval rules with users and groups' do
27
- # Create a merge request with 2 rules
28
- merge_request = Resource::MergeRequest.fabricate_via_browser_ui! do |resource|
29
- resource.title = 'Add a new feature'
30
- resource.description = 'Great feature, much approval'
31
- resource.project = project
32
- resource.approval_rules = [
33
- {
34
- name: "user",
35
- approvals_required: 1,
36
- users: [approver1]
37
- },
38
- {
39
- name: "group",
40
- approvals_required: 1,
41
- groups: [project.group]
42
- }
43
- ]
44
- end
45
-
46
- Page::MergeRequest::Show.perform do |show|
47
- expect(show.num_approvals_required).to eq(2)
48
- expect(show.approvals_required_from).to include("user", "group")
49
- end
50
-
51
- # As approver1, approve the MR
52
- Page::Main::Menu.perform(&:sign_out)
53
- login(approver1)
54
-
55
- merge_request.visit!
56
-
57
- Page::MergeRequest::Show.perform do |show|
58
- show.click_approve
59
- end
60
-
61
- # Confirm that an approval was granted but it is not yet fully approved
62
- Page::MergeRequest::Show.perform do |show|
63
- expect(show).not_to be_approved
64
- expect(show.approvals_required_from).to include("group")
65
- expect(show.approvals_required_from).not_to include("user")
66
- end
67
-
68
- # As approver2, approve the MR
69
- Page::Main::Menu.perform(&:sign_out)
70
- login(approver2)
71
-
72
- merge_request.visit!
73
-
74
- Page::MergeRequest::Show.perform do |show|
75
- show.click_approve
76
- end
77
-
78
- # Confirm that the MR is fully approved
79
- Page::MergeRequest::Show.perform do |show|
80
- expect(show).to be_approved
81
- end
82
-
83
- # Merge the MR as the original user
84
- Page::Main::Menu.perform(&:sign_out)
85
- login
86
-
87
- merge_request.visit!
88
-
89
- Page::MergeRequest::Show.perform do |show|
90
- show.merge!
91
- end
92
-
93
- expect(page).to have_content('The changes were merged')
94
- end
95
- end
96
- end
97
- end
@@ -1,83 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module QA
4
- context 'Create' do
5
- describe 'Codeowners' do
6
- # Create one user to be the assigned approver and another user who will not be an approver
7
- let(:approver) { Resource::User.fabricate_or_use(Runtime::Env.gitlab_qa_username_1, Runtime::Env.gitlab_qa_password_1) }
8
- let(:non_approver) { Resource::User.fabricate_or_use(Runtime::Env.gitlab_qa_username_2, Runtime::Env.gitlab_qa_password_2) }
9
-
10
- let(:project) do
11
- Resource::Project.fabricate_via_api! do |project|
12
- project.name = "assign-approvers"
13
- project.initialize_with_readme = true
14
- end
15
- end
16
- let(:branch_name) { 'protected-branch' }
17
-
18
- before do
19
- project.add_member(approver, Resource::Members::AccessLevel::DEVELOPER)
20
- project.add_member(non_approver, Resource::Members::AccessLevel::DEVELOPER)
21
-
22
- Flow::Login.sign_in
23
-
24
- project.visit!
25
- end
26
-
27
- it 'merge request assigns code owners as approvers' do
28
- # Commit CODEOWNERS to master
29
- Resource::Repository::Commit.fabricate_via_api! do |commit|
30
- commit.project = project
31
- commit.commit_message = 'Add CODEOWNERS and test files'
32
- commit.add_files(
33
- [
34
- {
35
- file_path: 'CODEOWNERS',
36
- content: <<~CONTENT
37
- CODEOWNERS @#{approver.username}
38
- CONTENT
39
- }
40
- ]
41
- )
42
- end
43
-
44
- # Create a projected branch that requires approval from code owners
45
- Resource::ProtectedBranch.fabricate! do |protected_branch|
46
- protected_branch.branch_name = branch_name
47
- protected_branch.project = project
48
- end
49
-
50
- # Push a new CODEOWNERS file
51
- Resource::Repository::Push.fabricate! do |push|
52
- push.repository_http_uri = project.repository_http_location.uri
53
- push.branch_name = branch_name + '-patch'
54
- push.file_name = 'CODEOWNERS'
55
- push.file_content = <<~CONTENT
56
- CODEOWNERS @#{non_approver.username}
57
- CONTENT
58
- end
59
-
60
- # Create a merge request
61
- Resource::MergeRequest.fabricate! do |merge_request|
62
- merge_request.project = project
63
- merge_request.target_new_branch = false
64
- merge_request.source_branch = branch_name + '-patch'
65
- merge_request.target_branch = branch_name
66
- merge_request.no_preparation = true
67
- end.visit!
68
-
69
- # Check that the merge request assigns the original code owner as an
70
- # approver (because the current CODEOWNERS file in the master branch
71
- # doesn't have the new owner yet)
72
- Page::MergeRequest::Show.perform do |show|
73
- show.edit!
74
- approvers = show.approvers
75
-
76
- expect(approvers.size).to eq(1)
77
- expect(approvers).to include(approver.name)
78
- expect(approvers).not_to include(non_approver.name)
79
- end
80
- end
81
- end
82
- end
83
- end
@@ -1,75 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module QA
4
- context 'Create' do
5
- describe 'Codeowners' do
6
- let(:files) do
7
- [
8
- {
9
- name: 'file.txt',
10
- content: 'foo'
11
- },
12
- {
13
- name: 'README.md',
14
- content: 'bar'
15
- }
16
- ]
17
- end
18
-
19
- before do
20
- # Add two new users to a project as members
21
- Flow::Login.sign_in
22
-
23
- @user = Resource::User.fabricate_or_use(Runtime::Env.gitlab_qa_username_1, Runtime::Env.gitlab_qa_password_1)
24
- @user2 = Resource::User.fabricate_or_use(Runtime::Env.gitlab_qa_username_2, Runtime::Env.gitlab_qa_password_2)
25
-
26
- @project = Resource::Project.fabricate_via_api! do |project|
27
- project.name = "codeowners"
28
- end
29
- @project.visit!
30
-
31
- Page::Project::Menu.perform(&:go_to_members_settings)
32
- Page::Project::Settings::Members.perform do |members_page|
33
- members_page.add_member(@user.username)
34
- members_page.add_member(@user2.username)
35
- end
36
- end
37
-
38
- it 'displays owners specified in CODEOWNERS file' do
39
- codeowners_file_content =
40
- <<-CONTENT
41
- * @#{@user2.username}
42
- *.txt @#{@user.username}
43
- CONTENT
44
- files << {
45
- name: 'CODEOWNERS',
46
- content: codeowners_file_content
47
- }
48
-
49
- # Push CODEOWNERS and test files to the project
50
- Resource::Repository::ProjectPush.fabricate! do |push|
51
- push.project = @project
52
- push.files = files
53
- push.commit_message = 'Add CODEOWNERS and test files'
54
- end
55
- @project.visit!
56
-
57
- # Check the files and code owners
58
- Page::Project::Show.perform do |project_page|
59
- project_page.click_file 'file.txt'
60
- end
61
-
62
- expect(page).to have_content(@user.name)
63
- expect(page).not_to have_content(@user2.name)
64
-
65
- @project.visit!
66
- Page::Project::Show.perform do |project_page|
67
- project_page.click_file 'README.md'
68
- end
69
-
70
- expect(page).to have_content(@user2.name)
71
- expect(page).not_to have_content(@user.name)
72
- end
73
- end
74
- end
75
- end
@@ -1,161 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module QA
4
- context 'Create' do
5
- describe 'File Locking' do
6
- before do
7
- Flow::Login.sign_in
8
-
9
- @user_one = Resource::User.fabricate_or_use(Runtime::Env.gitlab_qa_username_1, Runtime::Env.gitlab_qa_password_1)
10
- @user_two = Resource::User.fabricate_or_use(Runtime::Env.gitlab_qa_username_2, Runtime::Env.gitlab_qa_password_2)
11
-
12
- @project = Resource::Project.fabricate_via_api! do |project|
13
- project.name = 'file_locking'
14
- end
15
-
16
- Resource::Repository::ProjectPush.fabricate! do |push|
17
- push.project = @project
18
- push.file_name = 'file'
19
- push.file_content = SecureRandom.hex(100000)
20
- end
21
-
22
- add_to_project user: @user_one
23
- add_to_project user: @user_two
24
-
25
- Resource::ProtectedBranch.unprotect_via_api! do |branch|
26
- branch.project = @project
27
- branch.branch_name = 'master'
28
- end
29
- end
30
-
31
- it 'locks a directory and tries to push as a second user' do
32
- push branch: 'master', file: 'directory/file', as_user: @user_one
33
-
34
- sign_out_and_sign_in_as user: @user_one
35
- go_to_directory
36
- click_lock
37
-
38
- expect_error_on_push for_file: 'directory/file', as_user: @user_two
39
- expect_no_error_on_push for_file: 'directory/file', as_user: @user_one
40
- end
41
-
42
- it 'locks a file and tries to push as a second user' do
43
- sign_out_and_sign_in_as user: @user_one
44
- go_to_file
45
- click_lock
46
-
47
- expect_error_on_push as_user: @user_two
48
- expect_no_error_on_push as_user: @user_one
49
- end
50
-
51
- it 'checks file locked by other user to be disabled' do
52
- go_to_file
53
- click_lock
54
- sign_out_and_sign_in_as user: @user_one
55
- go_to_file
56
-
57
- Page::File::Show.perform do |show|
58
- expect(show).to have_lock_button_disabled
59
- end
60
- end
61
-
62
- it 'creates a merge request and fails to merge', quarantine: { issue: 'https://gitlab.com/gitlab-org/gitlab/issues/40125', type: :bug } do
63
- push branch: 'test', as_user: @user_one
64
-
65
- merge_request = Resource::MergeRequest.fabricate_via_api! do |merge_request|
66
- merge_request.project = @project
67
- merge_request.source_branch = 'test'
68
- merge_request.target_branch = 'master'
69
- merge_request.no_preparation = true
70
- end
71
-
72
- go_to_file
73
- click_lock
74
- sign_out_and_sign_in_as user: @user_one
75
- try_to_merge merge_request: merge_request
76
- Page::MergeRequest::Show.perform(&:wait_for_merge_request_error_message)
77
- expect(page).to have_text("locked by #{admin_username}")
78
- end
79
-
80
- it 'locks a file and unlocks in list' do
81
- sign_out_and_sign_in_as user: @user_one
82
- go_to_file
83
- click_lock
84
- @project.visit!
85
-
86
- Page::Project::Menu.perform(&:go_to_repository_locked_files)
87
- EE::Page::Project::PathLocks::Index.perform do |list|
88
- expect(list).to have_file_with_title 'file'
89
- list.unlock_file 'file'
90
- end
91
-
92
- expect_no_error_on_push as_user: @user_two
93
- end
94
-
95
- def try_to_merge(merge_request:)
96
- merge_request.visit!
97
- Page::MergeRequest::Show.perform do |show|
98
- show.try_to_merge!
99
- end
100
- end
101
-
102
- def sign_out_and_sign_in_as(user:)
103
- Page::Main::Login.perform do |login|
104
- login.sign_out_and_sign_in_as user: user
105
- end
106
- end
107
-
108
- def go_to_file
109
- @project.visit!
110
- Page::Project::Show.perform do |project_page|
111
- project_page.click_file 'file'
112
- end
113
- end
114
-
115
- def go_to_directory
116
- @project.visit!
117
- Page::Project::Show.perform do |project_page|
118
- project_page.click_file 'directory'
119
- end
120
- end
121
-
122
- def click_lock
123
- Page::File::Show.perform(&:lock)
124
- end
125
-
126
- def add_to_project(user:)
127
- Resource::ProjectMember.fabricate_via_api! do |member|
128
- member.user = user
129
- member.project = @project
130
- member.access_level = member.level[:developer]
131
- end
132
- end
133
-
134
- def push(branch: 'master', file: 'file', as_user:)
135
- Resource::Repository::ProjectPush.fabricate! do |push|
136
- push.project = @project
137
- push.new_branch = false unless branch != 'master'
138
- push.file_name = file
139
- push.file_content = SecureRandom.hex(100000)
140
- push.user = as_user
141
- push.branch_name = branch
142
- end
143
- end
144
-
145
- def expect_error_on_push(for_file: 'file', as_user:)
146
- expect { push branch: 'master', file: for_file, as_user: as_user }.to raise_error(
147
- QA::Git::Repository::RepositoryCommandError)
148
- end
149
-
150
- def expect_no_error_on_push(for_file: 'file', as_user:)
151
- expect { push branch: 'master', file: for_file, as_user: as_user }.not_to raise_error
152
- end
153
-
154
- def admin_username
155
- Resource::User.fabricate_via_api! do |user|
156
- user.username = Runtime::User.username
157
- end.name
158
- end
159
- end
160
- end
161
- end