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,174 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module QA
4
- context 'Geo', :orchestrated, :geo do
5
- let(:git_push_http_path_prefix) { '/-/push_from_secondary' }
6
-
7
- describe 'GitLab Geo HTTP push secondary' do
8
- let(:file_content_primary) { 'This is a Geo project! Commit from primary.' }
9
- let(:file_content_secondary) { 'This is a Geo project! Commit from secondary.' }
10
-
11
- context 'regular git commit' do
12
- it 'is redirected to the primary and ultimately replicated to the secondary' do
13
- file_name = 'README.md'
14
- project = nil
15
-
16
- QA::Flow::Login.while_signed_in(address: :geo_primary) do
17
- # Create a new Project
18
- project = Resource::Project.fabricate_via_api! do |project|
19
- project.name = 'geo-project'
20
- project.description = 'Geo test project'
21
- end
22
-
23
- # Perform a git push over HTTP directly to the primary
24
- #
25
- # This push is required to ensure we have the primary credentials
26
- # written out to the .netrc
27
- Resource::Repository::ProjectPush.fabricate! do |push|
28
- push.project = project
29
- push.file_name = file_name
30
- push.file_content = "# #{file_content_primary}"
31
- push.commit_message = "Add #{file_name}"
32
- end
33
- project.visit!
34
- end
35
-
36
- QA::Runtime::Logger.debug('Visiting the secondary geo node')
37
-
38
- QA::Flow::Login.while_signed_in(address: :geo_secondary) do
39
- EE::Page::Main::Banner.perform do |banner|
40
- expect(banner).to have_secondary_read_only_banner
41
- end
42
-
43
- Page::Main::Menu.perform(&:go_to_projects)
44
-
45
- Page::Dashboard::Projects.perform do |dashboard|
46
- dashboard.wait_for_project_replication(project.name)
47
- dashboard.go_to_project(project.name)
48
- end
49
-
50
- # Grab the HTTP URI for the secondary and store as 'location'
51
- location = Page::Project::Show.perform do |project_page|
52
- project_page.wait_for_repository_replication
53
- project_page.repository_clone_http_location
54
- end
55
-
56
- # Perform a git push over HTTP at the secondary
57
- push = Resource::Repository::Push.fabricate! do |push|
58
- push.new_branch = false
59
- push.repository_http_uri = location.uri
60
- push.file_name = file_name
61
- push.file_content = "# #{file_content_secondary}"
62
- push.commit_message = "Update #{file_name}"
63
- end
64
-
65
- # We need to strip off the user from the URI, otherwise we won't
66
- # get the correct output produced from the git CLI.
67
- primary_uri = project.repository_http_location.uri
68
- primary_uri.user = nil
69
-
70
- # The secondary inserts a special path prefix.
71
- # See `Gitlab::Geo::GitPushHttp::PATH_PREFIX`.
72
- path = File.join(git_push_http_path_prefix, '\d+', primary_uri.path)
73
- absolute_path = primary_uri.to_s.sub(primary_uri.path, path)
74
-
75
- # The git cli produces the 'warning: redirecting to..' output
76
- # internally.
77
- expect(push.output).to match(/warning: redirecting to #{absolute_path}/)
78
-
79
- # Validate git push worked and new content is visible
80
- Page::Project::Show.perform do |show|
81
- show.wait_for_repository_replication_with(file_content_secondary)
82
- show.refresh
83
-
84
- expect(page).to have_content(file_name)
85
- expect(page).to have_content(file_content_secondary)
86
- end
87
- end
88
- end
89
- end
90
-
91
- context 'git-lfs commit' do
92
- it 'is redirected to the primary and ultimately replicated to the secondary' do
93
- file_name_primary = 'README.md'
94
- file_name_secondary = 'README_MORE.md'
95
- project = nil
96
-
97
- QA::Flow::Login.while_signed_in(address: :geo_primary) do
98
- # Create a new Project
99
- project = Resource::Project.fabricate_via_api! do |project|
100
- project.name = 'geo-project'
101
- project.description = 'Geo test project'
102
- end
103
-
104
- # Perform a git push over HTTP directly to the primary
105
- #
106
- # This push is required to ensure we have the primary credentials
107
- # written out to the .netrc
108
- Resource::Repository::Push.fabricate! do |push|
109
- push.use_lfs = true
110
- push.repository_http_uri = project.repository_http_location.uri
111
- push.file_name = file_name_primary
112
- push.file_content = "# #{file_content_primary}"
113
- push.commit_message = "Add #{file_name_primary}"
114
- end
115
- end
116
-
117
- QA::Runtime::Logger.debug('Visiting the secondary geo node')
118
-
119
- QA::Flow::Login.while_signed_in(address: :geo_secondary) do
120
- EE::Page::Main::Banner.perform do |banner|
121
- expect(banner).to have_secondary_read_only_banner
122
- end
123
-
124
- Page::Main::Menu.perform(&:go_to_projects)
125
-
126
- Page::Dashboard::Projects.perform do |dashboard|
127
- dashboard.wait_for_project_replication(project.name)
128
- dashboard.go_to_project(project.name)
129
- end
130
-
131
- # Grab the HTTP URI for the secondary and store as 'location'
132
- location = Page::Project::Show.perform do |project_page|
133
- project_page.wait_for_repository_replication
134
- project_page.repository_clone_http_location
135
- end
136
-
137
- # Perform a git push over HTTP at the secondary
138
- push = Resource::Repository::Push.fabricate! do |push|
139
- push.use_lfs = true
140
- push.new_branch = false
141
- push.repository_http_uri = location.uri
142
- push.file_name = file_name_secondary
143
- push.file_content = "# #{file_content_secondary}"
144
- push.commit_message = "Add #{file_name_secondary}"
145
- end
146
-
147
- # We need to strip off the user from the URI, otherwise we won't
148
- # get the correct output produced from the git CLI.
149
- primary_uri = project.repository_http_location.uri
150
- primary_uri.user = nil
151
-
152
- # The secondary inserts a special path prefix.
153
- # See `Gitlab::Geo::GitPushHttp::PATH_PREFIX`.
154
- path = File.join(git_push_http_path_prefix, '\d+', primary_uri.path)
155
- absolute_path = primary_uri.to_s.sub(primary_uri.path, path)
156
-
157
- # The git cli produces the 'warning: redirecting to..' output
158
- # internally.
159
- expect(push.output).to match(/warning: redirecting to #{absolute_path}/)
160
- expect(push.output).to match(/Locking support detected on remote "#{location.uri}"/)
161
-
162
- # Validate git push worked and new content is visible
163
- Page::Project::Show.perform do |show|
164
- show.wait_for_repository_replication_with(file_name_secondary)
165
- show.refresh
166
-
167
- expect(page).to have_content(file_name_secondary)
168
- end
169
- end
170
- end
171
- end
172
- end
173
- end
174
- end
@@ -1,75 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module QA
4
- context 'Geo', :orchestrated, :geo do
5
- describe 'GitLab Geo project rename replication' do
6
- it 'user renames project' do
7
- original_project_name = 'geo-before-rename'
8
- original_readme_content = "The original project name was #{original_project_name}"
9
- readme_file_name = 'README.md'
10
-
11
- # create the project and push code
12
- QA::Flow::Login.while_signed_in(address: :geo_primary) do
13
- project = Resource::Project.fabricate_via_api! do |project|
14
- project.name = original_project_name
15
- project.description = 'Geo project to be renamed'
16
- end
17
-
18
- geo_project_name = project.name
19
-
20
- Resource::Repository::ProjectPush.fabricate! do |push|
21
- push.project = project
22
- push.file_name = readme_file_name
23
- push.file_content = original_readme_content
24
- push.commit_message = "Add #{readme_file_name}"
25
- end
26
-
27
- # rename the project
28
- Page::Main::Menu.act { go_to_projects }
29
-
30
- Page::Dashboard::Projects.perform do |dashboard|
31
- dashboard.go_to_project(geo_project_name)
32
- end
33
-
34
- Page::Project::Menu.act { click_settings }
35
-
36
- @geo_project_renamed = "geo-after-rename-#{SecureRandom.hex(8)}"
37
- Page::Project::Settings::Main.perform do |settings|
38
- settings.rename_project_to(@geo_project_renamed)
39
- expect(page).to have_content "Project '#{@geo_project_renamed}' was successfully updated."
40
-
41
- settings.expand_advanced_settings do |page|
42
- page.update_project_path_to(@geo_project_renamed)
43
- end
44
- end
45
- end
46
-
47
- # check renamed project exist on secondary node
48
- QA::Runtime::Logger.debug('Visiting the secondary geo node')
49
-
50
- QA::Flow::Login.while_signed_in(address: :geo_secondary) do
51
- EE::Page::Main::Banner.perform do |banner|
52
- expect(banner).to have_secondary_read_only_banner
53
- end
54
-
55
- Page::Main::Menu.perform do |menu|
56
- menu.go_to_projects
57
- end
58
-
59
- Page::Dashboard::Projects.perform do |dashboard|
60
- dashboard.wait_for_project_replication(@geo_project_renamed)
61
-
62
- dashboard.go_to_project(@geo_project_renamed)
63
- end
64
-
65
- Page::Project::Show.perform do |show|
66
- show.wait_for_repository_replication
67
-
68
- expect(page).to have_content readme_file_name
69
- expect(page).to have_content original_readme_content
70
- end
71
- end
72
- end
73
- end
74
- end
75
- end
@@ -1,151 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module QA
4
- context 'Geo', :orchestrated, :geo do
5
- describe 'GitLab SSH push' do
6
- let(:file_name) { 'README.md' }
7
-
8
- context 'regular git commit' do
9
- it "is replicated to the secondary" do
10
- key_title = "key for ssh tests #{Time.now.to_f}"
11
- file_content = 'This is a Geo project! Commit from primary.'
12
- project = nil
13
- key = nil
14
-
15
- QA::Flow::Login.while_signed_in(address: :geo_primary) do
16
- # Create a new SSH key for the user
17
- key = Resource::SSHKey.fabricate_via_api! do |resource|
18
- resource.title = key_title
19
- end
20
-
21
- # Create a new Project
22
- project = Resource::Project.fabricate_via_api! do |project|
23
- project.name = 'geo-project'
24
- project.description = 'Geo test project'
25
- end
26
-
27
- # Perform a git push over SSH directly to the primary
28
- Resource::Repository::ProjectPush.fabricate! do |push|
29
- push.ssh_key = key
30
- push.project = project
31
- push.file_name = file_name
32
- push.file_content = "# #{file_content}"
33
- push.commit_message = 'Add README.md'
34
- end.project.visit!
35
-
36
- # Validate git push worked and file exists with content
37
- Page::Project::Show.perform do |show|
38
- show.wait_for_repository_replication
39
-
40
- expect(page).to have_content(file_name)
41
- expect(page).to have_content(file_content)
42
- end
43
- end
44
-
45
- QA::Runtime::Logger.debug('Visiting the secondary geo node')
46
-
47
- QA::Flow::Login.while_signed_in(address: :geo_secondary) do
48
- EE::Page::Main::Banner.perform do |banner|
49
- expect(banner).to have_secondary_read_only_banner
50
- end
51
-
52
- # Ensure the SSH key has replicated
53
- Page::Main::Menu.act { click_settings_link }
54
- Page::Profile::Menu.act { click_ssh_keys }
55
-
56
- expect(page).to have_content(key_title)
57
- expect(page).to have_content(key.md5_fingerprint)
58
-
59
- # Ensure project has replicated
60
- Page::Main::Menu.perform { |menu| menu.go_to_projects }
61
- Page::Dashboard::Projects.perform do |dashboard|
62
- dashboard.wait_for_project_replication(project.name)
63
- dashboard.go_to_project(project.name)
64
- end
65
-
66
- # Validate the content has been sync'd from the primary
67
- Page::Project::Show.perform do |show|
68
- show.wait_for_repository_replication_with(file_content)
69
-
70
- expect(page).to have_content(file_name)
71
- expect(page).to have_content(file_content)
72
- end
73
- end
74
- end
75
- end
76
-
77
- context 'git-lfs commit' do
78
- it "is replicated to the secondary" do
79
- key_title = "key for ssh tests #{Time.now.to_f}"
80
- file_content = 'The rendered file could not be displayed because it is stored in LFS.'
81
- project = nil
82
- key = nil
83
-
84
- QA::Flow::Login.while_signed_in(address: :geo_primary) do
85
- # Create a new SSH key for the user
86
- key = Resource::SSHKey.fabricate_via_api! do |resource|
87
- resource.title = key_title
88
- end
89
-
90
- # Create a new Project
91
- project = Resource::Project.fabricate_via_api! do |project|
92
- project.name = 'geo-project'
93
- project.description = 'Geo test project'
94
- end
95
-
96
- # Perform a git push over SSH directly to the primary
97
- push = Resource::Repository::ProjectPush.fabricate! do |push|
98
- push.use_lfs = true
99
- push.ssh_key = key
100
- push.project = project
101
- push.file_name = file_name
102
- push.file_content = "# #{file_content}"
103
- push.commit_message = 'Add README.md'
104
- end
105
-
106
- expect(push.output).to match(/Locking support detected on remote/)
107
-
108
- # Validate git push worked and file exists with content
109
- push.project.visit!
110
- Page::Project::Show.perform do |show|
111
- show.wait_for_repository_replication
112
-
113
- expect(page).to have_content(file_name)
114
- expect(page).to have_content(file_content)
115
- end
116
- end
117
-
118
- QA::Runtime::Logger.debug('Visiting the secondary geo node')
119
-
120
- QA::Flow::Login.while_signed_in(address: :geo_secondary) do
121
- EE::Page::Main::Banner.perform do |banner|
122
- expect(banner).to have_secondary_read_only_banner
123
- end
124
-
125
- # Ensure the SSH key has replicated
126
- Page::Main::Menu.act { click_settings_link }
127
- Page::Profile::Menu.act { click_ssh_keys }
128
-
129
- expect(page).to have_content(key_title)
130
- expect(page).to have_content(key.md5_fingerprint)
131
-
132
- # Ensure project has replicated
133
- Page::Main::Menu.perform { |menu| menu.go_to_projects }
134
- Page::Dashboard::Projects.perform do |dashboard|
135
- dashboard.wait_for_project_replication(project.name)
136
- dashboard.go_to_project(project.name)
137
- end
138
-
139
- # Validate the content has been sync'd from the primary
140
- Page::Project::Show.perform do |show|
141
- show.wait_for_repository_replication_with(file_name)
142
-
143
- expect(page).to have_content(file_name)
144
- expect(page).to have_content(file_content)
145
- end
146
- end
147
- end
148
- end
149
- end
150
- end
151
- end
@@ -1,189 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module QA
4
- context 'Geo', :orchestrated, :geo do
5
- describe 'GitLab SSH push to secondary' do
6
- let(:file_content_primary) { 'This is a Geo project! Commit from primary.' }
7
- let(:file_content_secondary) { 'This is a Geo project! Commit from secondary.' }
8
-
9
- context 'regular git commit' do
10
- it 'is proxied to the primary and ultimately replicated to the secondary' do
11
- file_name = 'README.md'
12
- key_title = "key for ssh tests #{Time.now.to_f}"
13
- project = nil
14
- key = nil
15
-
16
- QA::Flow::Login.while_signed_in(address: :geo_primary) do
17
- # Create a new SSH key for the user
18
- key = Resource::SSHKey.fabricate_via_api! do |resource|
19
- resource.title = key_title
20
- end
21
-
22
- # Create a new Project
23
- project = Resource::Project.fabricate_via_api! do |project|
24
- project.name = 'geo-project'
25
- project.description = 'Geo test project'
26
- end
27
-
28
- # Perform a git push over SSH directly to the primary
29
- #
30
- # This push is required to ensure we have the primary credentials
31
- # written out to the .netrc
32
- Resource::Repository::ProjectPush.fabricate! do |push|
33
- push.ssh_key = key
34
- push.project = project
35
- push.file_name = file_name
36
- push.file_content = "# #{file_content_primary}"
37
- push.commit_message = "Add #{file_name}"
38
- end
39
- project.visit!
40
- end
41
-
42
- QA::Runtime::Logger.debug('Visiting the secondary geo node')
43
-
44
- QA::Flow::Login.while_signed_in(address: :geo_secondary) do
45
- EE::Page::Main::Banner.perform do |banner|
46
- expect(banner).to have_secondary_read_only_banner
47
- end
48
-
49
- # Ensure the SSH key has replicated
50
- Page::Main::Menu.perform(&:click_settings_link)
51
- Page::Profile::Menu.perform do |menu|
52
- menu.click_ssh_keys
53
- menu.wait_for_key_to_replicate(key_title)
54
- end
55
-
56
- expect(page).to have_content(key_title)
57
- expect(page).to have_content(key.md5_fingerprint)
58
-
59
- # Ensure project has replicated
60
- Page::Main::Menu.perform(&:go_to_projects)
61
- Page::Dashboard::Projects.perform do |dashboard|
62
- dashboard.wait_for_project_replication(project.name)
63
- dashboard.go_to_project(project.name)
64
- end
65
-
66
- # Grab the SSH URI for the secondary and store as 'location'
67
- location = Page::Project::Show.perform do |project_page|
68
- project_page.wait_for_repository_replication
69
- project_page.repository_clone_ssh_location
70
- end
71
-
72
- # Perform a git push over SSH at the secondary
73
- push = Resource::Repository::Push.fabricate! do |push|
74
- push.new_branch = false
75
- push.ssh_key = key
76
- push.repository_ssh_uri = location.uri
77
- push.file_name = file_name
78
- push.file_content = "# #{file_content_secondary}"
79
- push.commit_message = "Update #{file_name}"
80
- end
81
-
82
- # Remove ssh:// from the URI to ensure we can match accurately
83
- # as ssh:// can appear depending on how GitLab is configured.
84
- ssh_uri = project.repository_ssh_location.git_uri.to_s.gsub(%r{ssh://}, '')
85
-
86
- expect(push.output).to match(%r{This request to a Geo secondary node will be forwarded to the.*Geo primary node:.*#{ssh_uri}}m)
87
-
88
- # Validate git push worked and new content is visible
89
- Page::Project::Show.perform do |show|
90
- show.wait_for_repository_replication_with(file_content_secondary)
91
-
92
- expect(page).to have_content(file_content_secondary)
93
- end
94
- end
95
- end
96
- end
97
-
98
- context 'git-lfs commit' do
99
- it 'is proxied to the primary and ultimately replicated to the secondary' do
100
- key_title = "key for ssh tests #{Time.now.to_f}"
101
- file_name_primary = 'README.md'
102
- file_name_secondary = 'README_MORE.md'
103
- project = nil
104
- key = nil
105
-
106
- QA::Flow::Login.while_signed_in(address: :geo_primary) do
107
- # Create a new SSH key for the user
108
- key = Resource::SSHKey.fabricate_via_api! do |resource|
109
- resource.title = key_title
110
- end
111
-
112
- # Create a new Project
113
- project = Resource::Project.fabricate_via_api! do |project|
114
- project.name = 'geo-project'
115
- project.description = 'Geo test project'
116
- end
117
-
118
- # Perform a git push over SSH directly to the primary
119
- #
120
- # This push is required to ensure we have the primary credentials
121
- # written out to the .netrc
122
- Resource::Repository::Push.fabricate! do |push|
123
- push.use_lfs = true
124
- push.ssh_key = key
125
- push.repository_ssh_uri = project.repository_ssh_location.uri
126
- push.file_name = file_name_primary
127
- push.file_content = "# #{file_content_primary}"
128
- push.commit_message = "Add #{file_name_primary}"
129
- end
130
- end
131
-
132
- QA::Runtime::Logger.debug('Visiting the secondary geo node')
133
-
134
- QA::Flow::Login.while_signed_in(address: :geo_secondary) do
135
- EE::Page::Main::Banner.perform do |banner|
136
- expect(banner).to have_secondary_read_only_banner
137
- end
138
-
139
- # Ensure the SSH key has replicated
140
- Page::Main::Menu.perform(&:click_settings_link)
141
- Page::Profile::Menu.perform do |menu|
142
- menu.click_ssh_keys
143
- menu.wait_for_key_to_replicate(key_title)
144
- end
145
-
146
- expect(page).to have_content(key_title)
147
- expect(page).to have_content(key.md5_fingerprint)
148
-
149
- # Ensure project has replicated
150
- Page::Main::Menu.perform(&:go_to_projects)
151
- Page::Dashboard::Projects.perform do |dashboard|
152
- dashboard.wait_for_project_replication(project.name)
153
- dashboard.go_to_project(project.name)
154
- end
155
-
156
- # Grab the SSH URI for the secondary and store as 'location'
157
- location = Page::Project::Show.perform do |project_page|
158
- project_page.wait_for_repository_replication
159
- project_page.repository_clone_ssh_location
160
- end
161
-
162
- # Perform a git push over SSH at the secondary
163
- push = Resource::Repository::Push.fabricate! do |push|
164
- push.use_lfs = true
165
- push.new_branch = false
166
- push.ssh_key = key
167
- push.repository_ssh_uri = location.uri
168
- push.file_name = file_name_secondary
169
- push.file_content = "# #{file_content_secondary}"
170
- push.commit_message = "Add #{file_name_secondary}"
171
- end
172
-
173
- ssh_uri = project.repository_ssh_location.git_uri.to_s.gsub(%r{ssh://}, '')
174
- expect(push.output).to match(%r{This request to a Geo secondary node will be forwarded to the.*Geo primary node:.*#{ssh_uri}}m)
175
- expect(push.output).to match(/Locking support detected on remote "#{location.uri}"/)
176
-
177
- # Validate git push worked and new content is visible
178
- Page::Project::Show.perform do |show|
179
- show.wait_for_repository_replication_with(file_name_secondary)
180
- show.refresh
181
-
182
- expect(page).to have_content(file_name_secondary)
183
- end
184
- end
185
- end
186
- end
187
- end
188
- end
189
- end