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,173 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module QA
4
- context 'Plan', :reliable do
5
- describe 'Epics milestone dates API' do
6
- before(:context) do
7
- @api_client = Runtime::API::Client.new(:gitlab)
8
- @group_id = Resource::Group.fabricate_via_api!.id
9
- @project_id = create_project
10
- @milestone_start_date = (Date.today.to_date + 100).strftime("%Y-%m-%d")
11
- @milestone_due_date = (Date.today.to_date + 120).strftime("%Y-%m-%d")
12
- @fixed_start_date = Date.today.to_date.strftime("%Y-%m-%d")
13
- @fixed_due_date = (Date.today.to_date + 90).strftime("%Y-%m-%d")
14
- end
15
-
16
- it 'changes epic dates when updating milestones' do
17
- epic_iid, milestone_id = create_epic_issue_milestone
18
- milestone_start_date = Date.today.to_date.strftime("%Y-%m-%d")
19
- milestone_due_date = (Date.today.to_date + 30).strftime("%Y-%m-%d")
20
-
21
- # Update Milestone to different dates and see it reflecting in the epics
22
- request = create_request("/projects/#{@project_id}/milestones/#{milestone_id}")
23
- put request.url, start_date: milestone_start_date, due_date: milestone_due_date
24
- expect_status(200)
25
-
26
- # Get Epic Details
27
- request = create_request("/groups/#{@group_id}/epics/#{epic_iid}")
28
- get request.url
29
- expect_status(200)
30
-
31
- expect_json('start_date_from_milestones', milestone_start_date)
32
- expect_json('due_date_from_milestones', milestone_due_date)
33
- expect_json('start_date', milestone_start_date)
34
- expect_json('due_date', milestone_due_date)
35
- end
36
-
37
- it 'updates epic dates when adding another issue' do
38
- epic_iid = create_epic_issue_milestone[0]
39
- milestone_start_date = Date.today.to_date.strftime("%Y-%m-%d")
40
- milestone_due_date = (Date.today.to_date + 150).strftime("%Y-%m-%d")
41
-
42
- # Add another Issue and milestone
43
- second_milestone_id = create_milestone(milestone_start_date, milestone_due_date)
44
- second_issue_id = create_issue(second_milestone_id)
45
- request = create_request("/groups/#{@group_id}/epics/#{epic_iid}/issues/#{second_issue_id}")
46
- post request.url
47
- expect_status(201)
48
-
49
- # and check milestone dates
50
- request = create_request("/groups/#{@group_id}/epics/#{epic_iid}")
51
- get request.url
52
- expect_status(200)
53
-
54
- expect_json('start_date_from_milestones', milestone_start_date)
55
- expect_json('due_date_from_milestones', milestone_due_date)
56
- expect_json('start_date', milestone_start_date)
57
- expect_json('due_date', milestone_due_date)
58
- end
59
-
60
- it 'updates epic dates when removing issue' do
61
- epic_iid = create_epic_issue_milestone[0]
62
-
63
- # Get epic_issue_id
64
- request = create_request("/groups/#{@group_id}/epics/#{epic_iid}/issues")
65
- get request.url
66
- expect_status(200)
67
- epic_issue_id = json_body[0][:epic_issue_id]
68
-
69
- # Remove Issue
70
- request = create_request("/groups/#{@group_id}/epics/#{epic_iid}/issues/#{epic_issue_id}")
71
- delete request.url
72
- expect_status(200)
73
-
74
- # and check milestone dates
75
- request = create_request("/groups/#{@group_id}/epics/#{epic_iid}")
76
- get request.url
77
- expect_status(200)
78
-
79
- expect_json('start_date_from_milestones', nil)
80
- expect_json('due_date_from_milestones', nil)
81
- expect_json('start_date', nil)
82
- expect_json('due_date', nil)
83
- end
84
-
85
- it 'updates epic dates when deleting milestones' do
86
- epic_iid, milestone_id = create_epic_issue_milestone
87
-
88
- # Delete Milestone
89
- request = create_request("/projects/#{@project_id}/milestones/#{milestone_id}")
90
- delete request.url
91
- expect_status(204)
92
-
93
- # and check milestone dates
94
- request = create_request("/groups/#{@group_id}/epics/#{epic_iid}")
95
- get request.url
96
- expect_status(200)
97
-
98
- expect_json('start_date_from_milestones', nil)
99
- expect_json('due_date_from_milestones', nil)
100
- expect_json('start_date', nil)
101
- expect_json('due_date', nil)
102
- end
103
-
104
- private
105
-
106
- def create_epic_issue_milestone
107
- epic_iid = create_epic
108
- milestone_id = create_milestone(@milestone_start_date, @milestone_due_date)
109
- issue_id = create_issue(milestone_id)
110
- add_issue_to_epic(epic_iid, issue_id)
111
- use_epics_milestone_dates(epic_iid)
112
- [epic_iid, milestone_id]
113
- end
114
-
115
- def create_request(api_endpoint)
116
- Runtime::API::Request.new(@api_client, api_endpoint)
117
- end
118
-
119
- def create_project
120
- project_name = "project_#{SecureRandom.hex(8)}"
121
- create_project_request = create_request('/projects')
122
- post create_project_request.url, path: project_name, name: project_name, namespace_id: @group_id
123
- expect_status(201)
124
- json_body[:id]
125
- end
126
-
127
- def create_issue(milestone_id)
128
- request = create_request("/projects/#{@project_id}/issues")
129
- post request.url, title: 'My Test Issue', milestone_id: milestone_id
130
- expect_status(201)
131
- json_body[:id]
132
- end
133
-
134
- def create_milestone(start_date, due_date)
135
- request = create_request("/projects/#{@project_id}/milestones")
136
- post request.url, title: "Test_Milestone_#{SecureRandom.hex(8)}", due_date: due_date, start_date: start_date
137
- expect_status(201)
138
- json_body[:id]
139
- end
140
-
141
- def create_epic
142
- request = create_request("/groups/#{@group_id}/epics")
143
- post request.url, title: 'My New Epic', due_date_fixed: @fixed_due_date, start_date_fixed: @fixed_start_date, start_date_is_fixed: true, due_date_is_fixed: true
144
- expect_status(201)
145
- json_body[:iid]
146
- end
147
-
148
- def add_issue_to_epic(epic_iid, issue_id)
149
- # Add Issue with milestone to an epic
150
- request = create_request("/groups/#{@group_id}/epics/#{epic_iid}/issues/#{issue_id}")
151
- post request.url
152
-
153
- expect_status(201)
154
- expect_json('epic.title', 'My New Epic*')
155
- expect_json('issue.title', 'My Test Issue')
156
- end
157
-
158
- def use_epics_milestone_dates(epic_iid)
159
- # Update Epic to use Milestone Dates
160
- request = create_request("/groups/#{@group_id}/epics/#{epic_iid}")
161
- put request.url, start_date_is_fixed: false, due_date_is_fixed: false
162
-
163
- expect_status(200)
164
- expect_json('start_date_from_milestones', @milestone_start_date)
165
- expect_json('due_date_from_milestones', @milestone_due_date)
166
- expect_json('due_date_fixed', @fixed_due_date)
167
- expect_json('start_date_fixed', @fixed_start_date)
168
- expect_json('start_date', @milestone_start_date)
169
- expect_json('due_date', @milestone_due_date)
170
- end
171
- end
172
- end
173
- end
@@ -1,70 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'securerandom'
4
-
5
- module QA
6
- context 'Enablement:Search' do
7
- include Support::Api
8
- describe 'Elasticsearch advanced global search with advanced syntax', :orchestrated, :elasticsearch, :requires_admin, quarantine: { type: :new } do
9
- let(:project_name_suffix) { SecureRandom.hex(8) }
10
- let(:api_client) { Runtime::API::Client.new(:gitlab) }
11
-
12
- let(:project) do
13
- Resource::Project.fabricate_via_api! do |project|
14
- project.name = "es-adv-global-search-#{project_name_suffix}"
15
- project.description = "This is a unique project description #{project_name_suffix}"
16
- end
17
- end
18
-
19
- let(:elasticsearch_original_state_on?) { Runtime::Search.elasticsearch_on?(api_client) }
20
-
21
- before do
22
- unless elasticsearch_original_state_on?
23
- QA::EE::Resource::Settings::Elasticsearch.fabricate_via_api!
24
- sleep(60)
25
- # wait for the change to propagate before inserting records or else
26
- # Gitlab::CurrentSettings.elasticsearch_indexing and
27
- # Elastic::ApplicationVersionedSearch::searchable? will be false
28
- # this sleep can be removed after we're able to query logs via the API
29
- # as per this issue https://gitlab.com/gitlab-org/quality/team-tasks/issues/395
30
- end
31
-
32
- Resource::Repository::Commit.fabricate_via_api! do |commit|
33
- commit.project = project
34
- commit.add_files([
35
- { file_path: 'elasticsearch.rb', content: "elasticsearch: #{SecureRandom.hex(8)}" }
36
- ])
37
- end
38
- end
39
-
40
- after do
41
- if !elasticsearch_original_state_on? && !api_client.nil?
42
- Runtime::Search.disable_elasticsearch(api_client)
43
- end
44
- end
45
-
46
- context 'when searching for projects using advanced syntax' do
47
- it 'searches in the project name' do
48
- expect_search_to_find_project("es-adv-*#{project_name_suffix}")
49
- end
50
-
51
- it 'searches in the project description' do
52
- expect_search_to_find_project("unique +#{project_name_suffix}")
53
- end
54
- end
55
-
56
- private
57
-
58
- def expect_search_to_find_project(search_term)
59
- QA::Support::Retrier.retry_on_exception(max_attempts: 10, sleep_interval: 3) do
60
- get Runtime::Search.create_search_request(api_client, 'projects', search_term).url
61
- expect_status(QA::Support::Api::HTTP_STATUS_OK)
62
-
63
- raise 'Empty search result returned' if json_body.empty?
64
-
65
- expect(json_body[0][:name]).to eq(project.name)
66
- end
67
- end
68
- end
69
- end
70
- end
@@ -1,84 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'securerandom'
4
-
5
- module QA
6
- context 'Enablement:Search' do
7
- include Support::Api
8
- describe 'When using elasticsearch API to search for a known blob', :orchestrated, :elasticsearch, :requires_admin, quarantine: { type: :new } do
9
- let(:project_file_content) { "elasticsearch: #{SecureRandom.hex(8)}" }
10
- let(:non_member_user) { Resource::User.fabricate_or_use('non_member_user', 'non_member_user_password') }
11
- let(:api_client) { Runtime::API::Client.new(:gitlab) }
12
- let(:non_member_api_client) { Runtime::API::Client.new(user: non_member_user) }
13
-
14
- let(:project) do
15
- Resource::Project.fabricate_via_api! do |project|
16
- project.name = "api-es-#{SecureRandom.hex(8)}"
17
- end
18
- end
19
-
20
- let(:elasticsearch_original_state_on?) { Runtime::Search.elasticsearch_on?(api_client) }
21
-
22
- before do
23
- unless elasticsearch_original_state_on?
24
- QA::EE::Resource::Settings::Elasticsearch.fabricate_via_api!
25
- sleep(60)
26
- # wait for the change to propagate before inserting records or else
27
- # Gitlab::CurrentSettings.elasticsearch_indexing and
28
- # Elastic::ApplicationVersionedSearch::searchable? will be false
29
- # this sleep can be removed after we're able to query logs via the API
30
- # as per this issue https://gitlab.com/gitlab-org/quality/team-tasks/issues/395
31
- end
32
-
33
- Resource::Repository::Commit.fabricate_via_api! do |commit|
34
- commit.project = project
35
- commit.add_files([
36
- { file_path: 'README.md', content: project_file_content }
37
- ])
38
- end
39
- end
40
-
41
- after do
42
- if !elasticsearch_original_state_on? && !api_client.nil?
43
- Runtime::Search.disable_elasticsearch(api_client)
44
- end
45
- end
46
-
47
- it 'searches public project and finds a blob as an non-member user' do
48
- successful_search(non_member_api_client)
49
- end
50
-
51
- describe 'When searching a private repository' do
52
- before do
53
- project.set_visibility(:private)
54
- end
55
-
56
- it 'finds a blob as an authorized user' do
57
- successful_search(api_client)
58
- end
59
-
60
- it 'does not find a blob as an non-member user' do
61
- QA::Support::Retrier.retry_on_exception(max_attempts: 10, sleep_interval: 3) do
62
- get Runtime::Search.create_search_request(non_member_api_client, 'blobs', project_file_content).url
63
- expect_status(QA::Support::Api::HTTP_STATUS_OK)
64
- expect(json_body).to be_empty
65
- end
66
- end
67
- end
68
-
69
- private
70
-
71
- def successful_search(api_client)
72
- QA::Support::Retrier.retry_on_exception(max_attempts: 10, sleep_interval: 3) do
73
- get Runtime::Search.create_search_request(api_client, 'blobs', project_file_content).url
74
- expect_status(QA::Support::Api::HTTP_STATUS_OK)
75
-
76
- raise 'Empty search result returned' if json_body.empty?
77
-
78
- expect(json_body[0][:data]).to match(project_file_content)
79
- expect(json_body[0][:project_id]).to equal(project.id)
80
- end
81
- end
82
- end
83
- end
84
- end
@@ -1,91 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module QA
4
- context 'Geo', :orchestrated, :geo do
5
- describe 'Geo Nodes API' do
6
- before(:all) do
7
- get_personal_access_token
8
- end
9
-
10
- shared_examples 'retrieving configuration about Geo nodes' do
11
- it 'GET /geo_nodes' do
12
- get api_endpoint('/geo_nodes')
13
-
14
- expect_status(200)
15
- expect(json_body.size).to be >= 2
16
- expect_json('?', primary: true)
17
- expect_json_types('*', primary: :boolean, current: :boolean,
18
- files_max_capacity: :integer, repos_max_capacity: :integer,
19
- clone_protocol: :string, _links: :object)
20
- end
21
-
22
- it 'GET /geo_nodes/:id' do
23
- get api_endpoint("/geo_nodes/#{geo_node[:id]}")
24
-
25
- expect_status(200)
26
- expect(json_body).to eq geo_node
27
- end
28
- end
29
-
30
- describe 'Geo Nodes API on primary node', :geo do
31
- before(:context) do
32
- fetch_nodes(:geo_primary)
33
- end
34
-
35
- include_examples 'retrieving configuration about Geo nodes' do
36
- let(:geo_node) { @primary_node }
37
- end
38
-
39
- describe 'editing a Geo node' do
40
- it 'PUT /geo_nodes/:id for secondary node' do
41
- endpoint = api_endpoint("/geo_nodes/#{@secondary_node[:id]}")
42
- new_attributes = { enabled: false, files_max_capacity: 1000, repos_max_capacity: 2000 }
43
-
44
- put endpoint, new_attributes
45
-
46
- expect_status(200)
47
- expect_json(new_attributes)
48
-
49
- # restore the original values
50
- put endpoint, { enabled: @secondary_node[:enabled],
51
- files_max_capacity: @secondary_node[:files_max_capacity],
52
- repos_max_capacity: @secondary_node[:repos_max_capacity] }
53
-
54
- expect_status(200)
55
- end
56
- end
57
- end
58
-
59
- describe 'Geo Nodes API on secondary node', :geo do
60
- before(:context) do
61
- fetch_nodes(:geo_secondary)
62
- end
63
-
64
- include_examples 'retrieving configuration about Geo nodes' do
65
- let(:geo_node) { @nodes.first }
66
- end
67
- end
68
-
69
- def api_endpoint(endpoint)
70
- QA::Runtime::API::Request.new(@api_client, endpoint).url
71
- end
72
-
73
- def fetch_nodes(node_type)
74
- @api_client = Runtime::API::Client.new(node_type, personal_access_token: @personal_access_token)
75
-
76
- get api_endpoint('/geo_nodes')
77
-
78
- @nodes = json_body
79
- @primary_node = @nodes.detect { |node| node[:primary] == true }
80
- @secondary_node = @nodes.detect { |node| node[:primary] == false }
81
- end
82
-
83
- # go to the primary and create a personal_access_token, which will be used
84
- # for accessing both the primary and secondary
85
- def get_personal_access_token
86
- api_client = Runtime::API::Client.new(:geo_primary)
87
- @personal_access_token = api_client.personal_access_token
88
- end
89
- end
90
- end
91
- end
@@ -1,155 +0,0 @@
1
- # frozen_string_literal: true
2
- require 'securerandom'
3
-
4
- module QA
5
- context 'Manage' do
6
- include Support::Api
7
-
8
- let(:api_client) { Runtime::API::Client.new(:gitlab) }
9
-
10
- shared_examples 'audit event' do |expected_events|
11
- it 'logs audit events for UI operations' do
12
- wait_for_audit_events(expected_events, group)
13
-
14
- Page::Group::Menu.perform(&:go_to_audit_events_settings)
15
- expected_events.each do |expected_event|
16
- # Sometimes the audit logs are not displayed in the UI
17
- # right away so a refresh may be needed.
18
- # https://gitlab.com/gitlab-org/gitlab/issues/119203
19
- # TODO: https://gitlab.com/gitlab-org/gitlab/issues/195424
20
- Support::Retrier.retry_on_exception(reload_page: page) do
21
- expect(page).to have_text(expected_event)
22
- end
23
- end
24
- end
25
- end
26
-
27
- describe 'Group' do
28
- before(:all) do
29
- @group = Resource::Group.fabricate_via_api! do |resource|
30
- resource.path = "test-group-#{SecureRandom.hex(8)}"
31
- end
32
- end
33
-
34
- before do
35
- @event_count = get_audit_event_count(@group)
36
- end
37
-
38
- let(:project) do
39
- Resource::Project.fabricate_via_api! do |resource|
40
- resource.name = 'project-shared-with-group'
41
- end
42
- end
43
-
44
- let(:user) { Resource::User.fabricate_or_use(Runtime::Env.gitlab_qa_username_1, Runtime::Env.gitlab_qa_password_1) }
45
- let(:group) { @group }
46
-
47
- context 'Add group' do
48
- let(:group_name) { 'new group' }
49
-
50
- before do
51
- @event_count = 0
52
- sign_in
53
- Resource::Group.fabricate_via_browser_ui! do |group|
54
- group.name = group_name
55
- end.visit!
56
- Page::Group::Menu.perform(&:click_group_general_settings_item)
57
- end
58
-
59
- it_behaves_like 'audit event', ['Add group'] do
60
- let(:group) do
61
- Resource::Group.fabricate_via_api! do |group|
62
- group.name = group_name
63
- end
64
- end
65
- end
66
- end
67
-
68
- context 'Change repository size limit', :requires_admin do
69
- before do
70
- sign_in(as_admin: true)
71
- @group.visit!
72
- Page::Group::Menu.perform(&:click_group_general_settings_item)
73
- Page::Group::Settings::General.perform do |settings|
74
- settings.set_repository_size_limit(100)
75
- settings.click_save_name_visibility_settings_button
76
- end
77
- end
78
- it_behaves_like 'audit event', ['Change repository size limit']
79
- end
80
-
81
- context 'Update group name' do
82
- before do
83
- sign_in
84
- @group.visit!
85
- updated_group_name = "#{@group.path}-updated"
86
- Page::Group::Menu.perform(&:click_group_general_settings_item)
87
- Page::Group::Settings::General.perform do |settings|
88
- settings.set_group_name(updated_group_name)
89
- settings.click_save_name_visibility_settings_button
90
- end
91
- end
92
-
93
- it_behaves_like 'audit event', ['Change name']
94
- end
95
-
96
- context 'Add user, change access level, remove user' do
97
- before do
98
- sign_in
99
- @group.visit!
100
- Page::Group::Menu.perform(&:click_group_members_item)
101
- Page::Group::SubMenus::Members.perform do |members_page|
102
- members_page.add_member(user.username)
103
- members_page.update_access_level(user.username, "Developer")
104
- members_page.remove_member(user.username)
105
- end
106
- end
107
-
108
- it_behaves_like 'audit event', ['Add user access as guest', 'Change access level', 'Remove user access']
109
- end
110
-
111
- context 'Add and remove project access' do
112
- before do
113
- sign_in
114
- project.visit!
115
-
116
- Page::Project::Menu.perform(&:go_to_members_settings)
117
- Page::Project::Settings::Members.perform do |members|
118
- members.invite_group(@group.path)
119
- end
120
-
121
- Page::Project::Menu.perform(&:go_to_members_settings)
122
- Page::Project::Settings::Members.perform do |members|
123
- members.remove_group(@group.path)
124
- end
125
-
126
- @group.visit!
127
- end
128
-
129
- it_behaves_like 'audit event', ['Add project access', 'Remove project access']
130
- end
131
- end
132
-
133
- def sign_in(as_admin: false)
134
- unless Page::Main::Menu.perform(&:signed_in?)
135
- Runtime::Browser.visit(:gitlab, Page::Main::Login)
136
- Page::Main::Login.perform do |login|
137
- as_admin ? login.sign_in_using_admin_credentials : login.sign_in_using_credentials
138
- end
139
- end
140
- end
141
-
142
- def get_audit_event_count(group)
143
- response = get Runtime::API::Request.new(api_client, "/groups/#{group.id}/audit_events").url
144
- parse_body(response).length
145
- end
146
-
147
- def wait_for_audit_events(expected_events, group)
148
- new_event_count = @event_count + expected_events.length
149
-
150
- Support::Retrier.retry_until(max_duration: QA::Support::Repeater::DEFAULT_MAX_WAIT_TIME, sleep_interval: 1) do
151
- get_audit_event_count(group) == new_event_count
152
- end
153
- end
154
- end
155
- end