chemlab 0.0.1
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.
- checksums.yaml +7 -0
- data/.gitignore +4 -0
- data/.rspec +3 -0
- data/.rspec_parallel +5 -0
- data/Dockerfile +68 -0
- data/Gemfile +23 -0
- data/Gemfile.lock +137 -0
- data/README.md +201 -0
- data/Rakefile +47 -0
- data/bin/qa +7 -0
- data/bin/test +3 -0
- data/chemlab.gemspec +43 -0
- data/knapsack/master_report.json +54 -0
- data/lib/chemlab.rb +5 -0
- data/lib/chemlab/version.rb +5 -0
- data/qa.rb +513 -0
- data/qa/ce/strategy.rb +21 -0
- data/qa/ee.rb +234 -0
- data/qa/ee/fixtures/gpg/admin.asc +0 -0
- data/qa/ee/fixtures/secure_license_files/.gitlab-ci.yml +12 -0
- data/qa/ee/fixtures/secure_license_files/gl-license-management-report.json +24 -0
- data/qa/ee/fixtures/secure_premade_reports/.gitlab-ci.yml +61 -0
- data/qa/ee/fixtures/secure_premade_reports/gl-container-scanning-report.json +105 -0
- data/qa/ee/fixtures/secure_premade_reports/gl-dast-report.json +1 -0
- data/qa/ee/fixtures/secure_premade_reports/gl-dependency-scanning-report.json +226 -0
- data/qa/ee/fixtures/secure_premade_reports/gl-license-management-report.json +42 -0
- data/qa/ee/fixtures/secure_premade_reports/gl-sast-report.json +152 -0
- data/qa/ee/fixtures/secure_premade_reports/yarn.lock +10024 -0
- data/qa/ee/page/admin/geo/nodes/new.rb +36 -0
- data/qa/ee/page/admin/geo/nodes/show.rb +23 -0
- data/qa/ee/page/admin/license.rb +41 -0
- data/qa/ee/page/admin/menu.rb +55 -0
- data/qa/ee/page/admin/monitoring/audit_log.rb +27 -0
- data/qa/ee/page/admin/overview/groups/edit.rb +27 -0
- data/qa/ee/page/admin/settings/component/elasticsearch.rb +38 -0
- data/qa/ee/page/admin/settings/component/email.rb +35 -0
- data/qa/ee/page/admin/settings/integration.rb +25 -0
- data/qa/ee/page/admin/settings/preferences.rb +25 -0
- data/qa/ee/page/admin/settings/templates.rb +40 -0
- data/qa/ee/page/component/design_management.rb +80 -0
- data/qa/ee/page/component/issue_board/show.rb +154 -0
- data/qa/ee/page/component/license_management.rb +62 -0
- data/qa/ee/page/component/secure_report.rb +38 -0
- data/qa/ee/page/component/web_ide/web_terminal_panel.rb +58 -0
- data/qa/ee/page/dashboard/projects.rb +54 -0
- data/qa/ee/page/file/show.rb +49 -0
- data/qa/ee/page/group/contribution_analytics.rb +29 -0
- data/qa/ee/page/group/epic/index.rb +46 -0
- data/qa/ee/page/group/epic/show.rb +74 -0
- data/qa/ee/page/group/issues_analytics.rb +33 -0
- data/qa/ee/page/group/members.rb +19 -0
- data/qa/ee/page/group/menu.rb +117 -0
- data/qa/ee/page/group/roadmap.rb +34 -0
- data/qa/ee/page/group/saml_sso_sign_in.rb +22 -0
- data/qa/ee/page/group/saml_sso_sign_up.rb +34 -0
- data/qa/ee/page/group/secure/show.rb +24 -0
- data/qa/ee/page/group/settings/general.rb +112 -0
- data/qa/ee/page/group/settings/ldap_sync.rb +38 -0
- data/qa/ee/page/group/settings/saml_sso.rb +93 -0
- data/qa/ee/page/insights/show.rb +51 -0
- data/qa/ee/page/main/banner.rb +19 -0
- data/qa/ee/page/merge_request/new.rb +74 -0
- data/qa/ee/page/merge_request/show.rb +326 -0
- data/qa/ee/page/profile/menu.rb +15 -0
- data/qa/ee/page/project/issue/index.rb +46 -0
- data/qa/ee/page/project/issue/show.rb +97 -0
- data/qa/ee/page/project/menu.rb +17 -0
- data/qa/ee/page/project/milestone/show.rb +41 -0
- data/qa/ee/page/project/new.rb +56 -0
- data/qa/ee/page/project/operations/kubernetes/show.rb +50 -0
- data/qa/ee/page/project/operations/metrics/show.rb +101 -0
- data/qa/ee/page/project/packages/index.rb +30 -0
- data/qa/ee/page/project/packages/show.rb +29 -0
- data/qa/ee/page/project/path_locks/index.rb +30 -0
- data/qa/ee/page/project/pipeline/show.rb +34 -0
- data/qa/ee/page/project/secure/dependency_list.rb +19 -0
- data/qa/ee/page/project/secure/show.rb +17 -0
- data/qa/ee/page/project/settings/ci_cd.rb +25 -0
- data/qa/ee/page/project/settings/integrations.rb +21 -0
- data/qa/ee/page/project/settings/license_compliance.rb +67 -0
- data/qa/ee/page/project/settings/merge_request.rb +27 -0
- data/qa/ee/page/project/settings/mirroring_repositories.rb +30 -0
- data/qa/ee/page/project/settings/protected_branches.rb +37 -0
- data/qa/ee/page/project/settings/push_rules.rb +82 -0
- data/qa/ee/page/project/settings/repository.rb +27 -0
- data/qa/ee/page/project/settings/services/jenkins.rb +56 -0
- data/qa/ee/page/project/show.rb +35 -0
- data/qa/ee/page/project/sub_menus/packages.rb +27 -0
- data/qa/ee/page/project/sub_menus/project.rb +21 -0
- data/qa/ee/page/project/sub_menus/repository.rb +29 -0
- data/qa/ee/page/project/sub_menus/security_compliance.rb +44 -0
- data/qa/ee/page/project/sub_menus/settings.rb +42 -0
- data/qa/ee/page/project/wiki/show.rb +31 -0
- data/qa/ee/resource/board/base_board.rb +26 -0
- data/qa/ee/resource/board/board_list/group/board_list.rb +57 -0
- data/qa/ee/resource/board/board_list/project/assignee_board_list.rb +23 -0
- data/qa/ee/resource/board/board_list/project/base_board_list.rb +50 -0
- data/qa/ee/resource/board/board_list/project/label_board_list.rb +28 -0
- data/qa/ee/resource/board/board_list/project/milestone_board_list.rb +28 -0
- data/qa/ee/resource/board/group_board.rb +25 -0
- data/qa/ee/resource/board/project_board.rb +25 -0
- data/qa/ee/resource/epic.rb +60 -0
- data/qa/ee/resource/geo/node.rb +31 -0
- data/qa/ee/resource/group_label.rb +50 -0
- data/qa/ee/resource/license.rb +21 -0
- data/qa/ee/resource/project_milestone.rb +20 -0
- data/qa/ee/resource/settings/elasticsearch.rb +60 -0
- data/qa/ee/runtime/env.rb +30 -0
- data/qa/ee/runtime/geo.rb +28 -0
- data/qa/ee/runtime/saml.rb +37 -0
- data/qa/ee/scenario/test/geo.rb +211 -0
- data/qa/ee/scenario/test/integration/elasticsearch.rb +15 -0
- data/qa/ee/scenario/test/integration/group_saml.rb +17 -0
- data/qa/ee/scenario/test/sanity/selectors.rb +17 -0
- data/qa/ee/strategy.rb +28 -0
- data/qa/fixtures/auto_devops_rack/Dockerfile +9 -0
- data/qa/fixtures/auto_devops_rack/Gemfile +3 -0
- data/qa/fixtures/auto_devops_rack/Gemfile.lock +15 -0
- data/qa/fixtures/auto_devops_rack/Rakefile +7 -0
- data/qa/fixtures/auto_devops_rack/config.ru +1 -0
- data/qa/fixtures/ldap/admin/1_add_nodes.ldif +7 -0
- data/qa/fixtures/ldap/admin/2_add_users.ldif +63 -0
- data/qa/fixtures/ldap/admin/3_add_groups.ldif +16 -0
- data/qa/fixtures/ldap/non_admin/1_add_nodes.ldif +7 -0
- data/qa/fixtures/ldap/non_admin/2_add_users.ldif +61 -0
- data/qa/fixtures/ldap/non_admin/3_add_groups.ldif +16 -0
- data/qa/fixtures/monitored_auto_devops/.gitlab-ci.yml +337 -0
- data/qa/flow/login.rb +39 -0
- data/qa/flow/project.rb +19 -0
- data/qa/flow/saml.rb +72 -0
- data/qa/flow/user.rb +26 -0
- data/qa/git/location.rb +34 -0
- data/qa/git/repository.rb +269 -0
- data/qa/page/admin/menu.rb +110 -0
- data/qa/page/admin/new_session.rb +22 -0
- data/qa/page/admin/overview/groups/edit.rb +23 -0
- data/qa/page/admin/overview/groups/index.rb +32 -0
- data/qa/page/admin/overview/groups/show.rb +21 -0
- data/qa/page/admin/overview/users/index.rb +35 -0
- data/qa/page/admin/overview/users/show.rb +31 -0
- data/qa/page/admin/settings/component/account_and_limit.rb +26 -0
- data/qa/page/admin/settings/component/ip_limits.rb +30 -0
- data/qa/page/admin/settings/component/outbound_requests.rb +33 -0
- data/qa/page/admin/settings/component/performance_bar.rb +27 -0
- data/qa/page/admin/settings/component/repository_storage.rb +26 -0
- data/qa/page/admin/settings/general.rb +23 -0
- data/qa/page/admin/settings/metrics_and_profiling.rb +23 -0
- data/qa/page/admin/settings/network.rb +30 -0
- data/qa/page/admin/settings/repository.rb +23 -0
- data/qa/page/alert/auto_devops_alert.rb +13 -0
- data/qa/page/base.rb +348 -0
- data/qa/page/component/breadcrumbs.rb +19 -0
- data/qa/page/component/ci_badge_link.rb +49 -0
- data/qa/page/component/clone_panel.rb +38 -0
- data/qa/page/component/confirm_modal.rb +25 -0
- data/qa/page/component/dropdown_filter.rb +16 -0
- data/qa/page/component/dropzone.rb +33 -0
- data/qa/page/component/groups_filter.rb +37 -0
- data/qa/page/component/issuable/common.rb +31 -0
- data/qa/page/component/lazy_loader.rb +15 -0
- data/qa/page/component/legacy_clone_panel.rb +47 -0
- data/qa/page/component/note.rb +84 -0
- data/qa/page/component/select2.rb +48 -0
- data/qa/page/component/users_select.rb +14 -0
- data/qa/page/component/web_ide/alert.rb +27 -0
- data/qa/page/dashboard/groups.rb +34 -0
- data/qa/page/dashboard/projects.rb +37 -0
- data/qa/page/dashboard/snippet/index.rb +21 -0
- data/qa/page/dashboard/snippet/new.rb +70 -0
- data/qa/page/dashboard/snippet/show.rb +63 -0
- data/qa/page/dashboard/welcome.rb +17 -0
- data/qa/page/element.rb +55 -0
- data/qa/page/file/edit.rb +13 -0
- data/qa/page/file/form.rb +49 -0
- data/qa/page/file/shared/commit_button.rb +25 -0
- data/qa/page/file/shared/commit_message.rb +21 -0
- data/qa/page/file/shared/editor.rb +33 -0
- data/qa/page/file/show.rb +36 -0
- data/qa/page/group/menu.rb +52 -0
- data/qa/page/group/new.rb +37 -0
- data/qa/page/group/settings/general.rb +115 -0
- data/qa/page/group/show.rb +74 -0
- data/qa/page/group/sub_menus/common.rb +27 -0
- data/qa/page/group/sub_menus/members.rb +45 -0
- data/qa/page/issuable/sidebar.rb +27 -0
- data/qa/page/label/index.rb +34 -0
- data/qa/page/label/new.rb +32 -0
- data/qa/page/layout/banner.rb +19 -0
- data/qa/page/layout/performance_bar.rb +41 -0
- data/qa/page/main/login.rb +181 -0
- data/qa/page/main/menu.rb +150 -0
- data/qa/page/main/oauth.rb +21 -0
- data/qa/page/main/sign_up.rb +37 -0
- data/qa/page/main/terms.rb +21 -0
- data/qa/page/mattermost/login.rb +28 -0
- data/qa/page/mattermost/main.rb +15 -0
- data/qa/page/merge_request/new.rb +68 -0
- data/qa/page/merge_request/show.rb +232 -0
- data/qa/page/profile/emails.rb +29 -0
- data/qa/page/profile/menu.rb +52 -0
- data/qa/page/profile/password.rb +23 -0
- data/qa/page/profile/personal_access_tokens.rb +67 -0
- data/qa/page/profile/ssh_keys.rb +42 -0
- data/qa/page/profile/two_factor_auth.rb +17 -0
- data/qa/page/project/activity.rb +17 -0
- data/qa/page/project/branches/show.rb +56 -0
- data/qa/page/project/commit/show.rb +32 -0
- data/qa/page/project/fork/new.rb +19 -0
- data/qa/page/project/import/github.rb +78 -0
- data/qa/page/project/issue/index.rb +71 -0
- data/qa/page/project/issue/new.rb +35 -0
- data/qa/page/project/issue/show.rb +168 -0
- data/qa/page/project/job/show.rb +53 -0
- data/qa/page/project/menu.rb +43 -0
- data/qa/page/project/milestone/index.rb +19 -0
- data/qa/page/project/milestone/new.rb +29 -0
- data/qa/page/project/new.rb +76 -0
- data/qa/page/project/operations/environments/index.rb +21 -0
- data/qa/page/project/operations/environments/show.rb +23 -0
- data/qa/page/project/operations/kubernetes/add.rb +21 -0
- data/qa/page/project/operations/kubernetes/add_existing.rb +46 -0
- data/qa/page/project/operations/kubernetes/index.rb +25 -0
- data/qa/page/project/operations/kubernetes/show.rb +81 -0
- data/qa/page/project/operations/metrics/show.rb +87 -0
- data/qa/page/project/pipeline/index.rb +43 -0
- data/qa/page/project/pipeline/show.rb +76 -0
- data/qa/page/project/settings/advanced.rb +75 -0
- data/qa/page/project/settings/auto_devops.rb +21 -0
- data/qa/page/project/settings/ci_cd.rb +39 -0
- data/qa/page/project/settings/ci_variables.rb +56 -0
- data/qa/page/project/settings/common.rb +13 -0
- data/qa/page/project/settings/deploy_keys.rb +69 -0
- data/qa/page/project/settings/deploy_tokens.rb +64 -0
- data/qa/page/project/settings/main.rb +60 -0
- data/qa/page/project/settings/members.rb +62 -0
- data/qa/page/project/settings/merge_request.rb +32 -0
- data/qa/page/project/settings/mirroring_repositories.rb +132 -0
- data/qa/page/project/settings/protected_branches.rb +72 -0
- data/qa/page/project/settings/repository.rb +55 -0
- data/qa/page/project/settings/runners.rb +37 -0
- data/qa/page/project/settings/visibility_features_permissions.rb +26 -0
- data/qa/page/project/show.rb +165 -0
- data/qa/page/project/sub_menus/ci_cd.rb +27 -0
- data/qa/page/project/sub_menus/common.rb +19 -0
- data/qa/page/project/sub_menus/issues.rb +63 -0
- data/qa/page/project/sub_menus/operations.rb +58 -0
- data/qa/page/project/sub_menus/project.rb +29 -0
- data/qa/page/project/sub_menus/repository.rb +48 -0
- data/qa/page/project/sub_menus/settings.rb +81 -0
- data/qa/page/project/web_ide/edit.rb +139 -0
- data/qa/page/project/wiki/edit.rb +21 -0
- data/qa/page/project/wiki/git_access.rb +13 -0
- data/qa/page/project/wiki/new.rb +61 -0
- data/qa/page/project/wiki/show.rb +31 -0
- data/qa/page/search/results.rb +55 -0
- data/qa/page/settings/common.rb +26 -0
- data/qa/page/sub_menus/common.rb +50 -0
- data/qa/page/validatable.rb +21 -0
- data/qa/page/validator.rb +52 -0
- data/qa/page/view.rb +59 -0
- data/qa/resource/api_fabricator.rb +137 -0
- data/qa/resource/base.rb +170 -0
- data/qa/resource/ci_variable.rb +57 -0
- data/qa/resource/deploy_key.rb +39 -0
- data/qa/resource/deploy_token.rb +48 -0
- data/qa/resource/events/base.rb +42 -0
- data/qa/resource/events/project.rb +25 -0
- data/qa/resource/file.rb +63 -0
- data/qa/resource/fork.rb +92 -0
- data/qa/resource/group.rb +83 -0
- data/qa/resource/issue.rb +61 -0
- data/qa/resource/kubernetes_cluster/base.rb +40 -0
- data/qa/resource/kubernetes_cluster/project_cluster.rb +72 -0
- data/qa/resource/label.rb +61 -0
- data/qa/resource/members.rb +36 -0
- data/qa/resource/merge_request.rb +105 -0
- data/qa/resource/merge_request_from_fork.rb +33 -0
- data/qa/resource/personal_access_token.rb +31 -0
- data/qa/resource/project.rb +179 -0
- data/qa/resource/project_imported_from_github.rb +31 -0
- data/qa/resource/project_member.rb +35 -0
- data/qa/resource/project_milestone.rb +34 -0
- data/qa/resource/protected_branch.rb +76 -0
- data/qa/resource/repository/commit.rb +81 -0
- data/qa/resource/repository/project_push.rb +44 -0
- data/qa/resource/repository/push.rb +113 -0
- data/qa/resource/repository/wiki_push.rb +38 -0
- data/qa/resource/runner.rb +75 -0
- data/qa/resource/sandbox.rb +79 -0
- data/qa/resource/settings/hashed_storage.rb +26 -0
- data/qa/resource/snippet.rb +30 -0
- data/qa/resource/ssh_key.rb +57 -0
- data/qa/resource/tag.rb +30 -0
- data/qa/resource/user.rb +150 -0
- data/qa/resource/user_gpg.rb +46 -0
- data/qa/resource/visibility.rb +17 -0
- data/qa/resource/wiki.rb +48 -0
- data/qa/runtime/address.rb +29 -0
- data/qa/runtime/api/client.rb +90 -0
- data/qa/runtime/api/request.rb +49 -0
- data/qa/runtime/application_settings.rb +46 -0
- data/qa/runtime/browser.rb +220 -0
- data/qa/runtime/env.rb +330 -0
- data/qa/runtime/feature.rb +87 -0
- data/qa/runtime/fixtures.rb +43 -0
- data/qa/runtime/gpg.rb +37 -0
- data/qa/runtime/ip_address.rb +33 -0
- data/qa/runtime/key/base.rb +38 -0
- data/qa/runtime/key/ecdsa.rb +13 -0
- data/qa/runtime/key/ed25519.rb +13 -0
- data/qa/runtime/key/rsa.rb +13 -0
- data/qa/runtime/logger.rb +24 -0
- data/qa/runtime/mail_hog.rb +15 -0
- data/qa/runtime/namespace.rb +27 -0
- data/qa/runtime/path.rb +13 -0
- data/qa/runtime/release.rb +40 -0
- data/qa/runtime/scenario.rb +38 -0
- data/qa/runtime/search.rb +124 -0
- data/qa/runtime/user.rb +57 -0
- data/qa/scenario/actable.rb +25 -0
- data/qa/scenario/bootable.rb +53 -0
- data/qa/scenario/shared_attributes.rb +14 -0
- data/qa/scenario/template.rb +64 -0
- data/qa/scenario/test/instance.rb +36 -0
- data/qa/scenario/test/instance/all.rb +18 -0
- data/qa/scenario/test/instance/smoke.rb +20 -0
- data/qa/scenario/test/integration/github.rb +20 -0
- data/qa/scenario/test/integration/instance_saml.rb +13 -0
- data/qa/scenario/test/integration/kubernetes.rb +13 -0
- data/qa/scenario/test/integration/ldap_no_server.rb +13 -0
- data/qa/scenario/test/integration/ldap_no_tls.rb +13 -0
- data/qa/scenario/test/integration/ldap_tls.rb +13 -0
- data/qa/scenario/test/integration/mattermost.rb +26 -0
- data/qa/scenario/test/integration/object_storage.rb +13 -0
- data/qa/scenario/test/integration/smtp.rb +13 -0
- data/qa/scenario/test/sanity/framework.rb +19 -0
- data/qa/scenario/test/sanity/selectors.rb +61 -0
- data/qa/service/cluster_provider/base.rb +41 -0
- data/qa/service/cluster_provider/gcloud.rb +115 -0
- data/qa/service/cluster_provider/k3d.rb +134 -0
- data/qa/service/cluster_provider/k3s.rb +94 -0
- data/qa/service/cluster_provider/minikube.rb +26 -0
- data/qa/service/docker_run/base.rb +47 -0
- data/qa/service/docker_run/gitlab_runner.rb +58 -0
- data/qa/service/docker_run/jenkins.rb +43 -0
- data/qa/service/docker_run/k3s.rb +46 -0
- data/qa/service/docker_run/ldap.rb +41 -0
- data/qa/service/docker_run/maven.rb +44 -0
- data/qa/service/docker_run/node_js.rb +38 -0
- data/qa/service/docker_run/saml_idp.rb +69 -0
- data/qa/service/kubernetes_cluster.rb +107 -0
- data/qa/service/omnibus.rb +23 -0
- data/qa/service/shellout.rb +31 -0
- data/qa/specs/features/api/1_manage/.gitkeep +0 -0
- data/qa/specs/features/api/1_manage/rate_limits_spec.rb +17 -0
- data/qa/specs/features/api/1_manage/users_spec.rb +35 -0
- data/qa/specs/features/api/2_plan/.gitkeep +0 -0
- data/qa/specs/features/api/2_plan/closes_issue_via_pushing_a_commit_spec.rb +48 -0
- data/qa/specs/features/api/3_create/repository/files_spec.rb +106 -0
- data/qa/specs/features/api/3_create/repository/project_archive_compare_spec.rb +74 -0
- data/qa/specs/features/api/4_verify/.gitkeep +0 -0
- data/qa/specs/features/api/5_package/.gitkeep +0 -0
- data/qa/specs/features/api/6_release/.gitkeep +0 -0
- data/qa/specs/features/api/7_configure/.gitkeep +0 -0
- data/qa/specs/features/browser_ui/1_manage/group/create_group_with_mattermost_team_spec.rb +20 -0
- data/qa/specs/features/browser_ui/1_manage/group/transfer_project_spec.rb +56 -0
- data/qa/specs/features/browser_ui/1_manage/login/log_in_spec.rb +25 -0
- data/qa/specs/features/browser_ui/1_manage/login/log_into_gitlab_via_ldap_spec.rb +15 -0
- data/qa/specs/features/browser_ui/1_manage/login/log_into_mattermost_via_gitlab_spec.rb +20 -0
- data/qa/specs/features/browser_ui/1_manage/login/login_via_instance_wide_saml_sso_spec.rb +19 -0
- data/qa/specs/features/browser_ui/1_manage/login/register_spec.rb +27 -0
- data/qa/specs/features/browser_ui/1_manage/project/add_project_member_spec.rb +24 -0
- data/qa/specs/features/browser_ui/1_manage/project/create_project_spec.rb +23 -0
- data/qa/specs/features/browser_ui/1_manage/project/dashboard_images_spec.rb +57 -0
- data/qa/specs/features/browser_ui/1_manage/project/import_github_repo_spec.rb +117 -0
- data/qa/specs/features/browser_ui/1_manage/project/view_project_activity_spec.rb +22 -0
- data/qa/specs/features/browser_ui/2_plan/email/trigger_email_notification_spec.rb +46 -0
- data/qa/specs/features/browser_ui/2_plan/issue/check_mentions_for_xss_spec.rb +45 -0
- data/qa/specs/features/browser_ui/2_plan/issue/collapse_comments_in_discussions_spec.rb +35 -0
- data/qa/specs/features/browser_ui/2_plan/issue/comment_issue_spec.rb +29 -0
- data/qa/specs/features/browser_ui/2_plan/issue/create_issue_spec.rb +40 -0
- data/qa/specs/features/browser_ui/2_plan/issue/export_as_csv_spec.rb +40 -0
- data/qa/specs/features/browser_ui/2_plan/issue/filter_issue_comments_spec.rb +36 -0
- data/qa/specs/features/browser_ui/2_plan/issue/issue_suggestions_spec.rb +28 -0
- data/qa/specs/features/browser_ui/2_plan/issue/mentions_spec.rb +35 -0
- data/qa/specs/features/browser_ui/3_create/merge_request/create_merge_request_spec.rb +64 -0
- data/qa/specs/features/browser_ui/3_create/merge_request/merge_merge_request_from_fork_spec.rb +26 -0
- data/qa/specs/features/browser_ui/3_create/merge_request/rebase_merge_request_spec.rb +49 -0
- data/qa/specs/features/browser_ui/3_create/merge_request/squash_merge_request_spec.rb +52 -0
- data/qa/specs/features/browser_ui/3_create/merge_request/view_merge_request_diff_patch_spec.rb +35 -0
- data/qa/specs/features/browser_ui/3_create/repository/add_file_template_spec.rb +68 -0
- data/qa/specs/features/browser_ui/3_create/repository/add_list_delete_branches_spec.rb +88 -0
- data/qa/specs/features/browser_ui/3_create/repository/add_ssh_key_spec.rb +30 -0
- data/qa/specs/features/browser_ui/3_create/repository/clone_spec.rb +51 -0
- data/qa/specs/features/browser_ui/3_create/repository/create_edit_delete_file_via_web_spec.rb +58 -0
- data/qa/specs/features/browser_ui/3_create/repository/move_project_create_fork_spec.rb +53 -0
- data/qa/specs/features/browser_ui/3_create/repository/protocol_v2_push_http_spec.rb +48 -0
- data/qa/specs/features/browser_ui/3_create/repository/protocol_v2_push_ssh_spec.rb +74 -0
- data/qa/specs/features/browser_ui/3_create/repository/push_http_private_token_spec.rb +34 -0
- data/qa/specs/features/browser_ui/3_create/repository/push_mirroring_over_http_spec.rb +43 -0
- data/qa/specs/features/browser_ui/3_create/repository/push_over_http_file_size_spec.rb +81 -0
- data/qa/specs/features/browser_ui/3_create/repository/push_over_http_spec.rb +44 -0
- data/qa/specs/features/browser_ui/3_create/repository/push_protected_branch_spec.rb +63 -0
- data/qa/specs/features/browser_ui/3_create/repository/use_ssh_key_spec.rb +37 -0
- data/qa/specs/features/browser_ui/3_create/repository/user_views_commit_diff_patch_spec.rb +66 -0
- data/qa/specs/features/browser_ui/3_create/snippet/create_snippet_spec.rb +29 -0
- data/qa/specs/features/browser_ui/3_create/web_ide/add_file_template_spec.rb +69 -0
- data/qa/specs/features/browser_ui/3_create/web_ide/review_merge_request_spec.rb +43 -0
- data/qa/specs/features/browser_ui/3_create/wiki/create_edit_clone_push_wiki_spec.rb +42 -0
- data/qa/specs/features/browser_ui/4_verify/ci_variable/add_remove_ci_variable_spec.rb +60 -0
- data/qa/specs/features/browser_ui/4_verify/pipeline/create_and_process_pipeline_spec.rb +89 -0
- data/qa/specs/features/browser_ui/4_verify/runner/register_runner_spec.rb +34 -0
- data/qa/specs/features/browser_ui/5_package/.gitkeep +0 -0
- data/qa/specs/features/browser_ui/6_release/deploy_key/add_deploy_key_spec.rb +28 -0
- data/qa/specs/features/browser_ui/6_release/deploy_key/clone_using_deploy_key_spec.rb +102 -0
- data/qa/specs/features/browser_ui/6_release/deploy_token/add_deploy_token_spec.rb +22 -0
- data/qa/specs/features/browser_ui/6_release/pipeline/parent_child_pipelines_dependent_relationship_spec.rb +122 -0
- data/qa/specs/features/browser_ui/6_release/pipeline/parent_child_pipelines_independent_relationship_spec.rb +121 -0
- data/qa/specs/features/browser_ui/7_configure/auto_devops/create_project_with_auto_devops_spec.rb +147 -0
- data/qa/specs/features/browser_ui/7_configure/kubernetes/kubernetes_integration_spec.rb +38 -0
- data/qa/specs/features/browser_ui/8_monitor/apm/dashboards_spec.rb +97 -0
- data/qa/specs/features/browser_ui/non_devops/performance_bar_spec.rb +38 -0
- data/qa/specs/features/ee/api/1_manage/.gitkeep +0 -0
- data/qa/specs/features/ee/api/2_plan/.gitkeep +0 -0
- data/qa/specs/features/ee/api/2_plan/epics_milestone_dates_spec.rb +173 -0
- data/qa/specs/features/ee/api/3_create/.gitkeep +0 -0
- data/qa/specs/features/ee/api/4_verify/.gitkeep +0 -0
- data/qa/specs/features/ee/api/5_package/.gitkeep +0 -0
- data/qa/specs/features/ee/api/6_release/.gitkeep +0 -0
- data/qa/specs/features/ee/api/7_configure/.gitkeep +0 -0
- data/qa/specs/features/ee/api/enablement/elasticsearch/advanced_global_advanced_syntax_search_spec.rb +70 -0
- data/qa/specs/features/ee/api/enablement/elasticsearch/elasticsearch_api_spec.rb +84 -0
- data/qa/specs/features/ee/api/geo/geo_nodes_spec.rb +91 -0
- data/qa/specs/features/ee/browser_ui/1_manage/.gitkeep +0 -0
- data/qa/specs/features/ee/browser_ui/1_manage/group/group_audit_logs_1_spec.rb +155 -0
- data/qa/specs/features/ee/browser_ui/1_manage/group/group_audit_logs_2_spec.rb +103 -0
- data/qa/specs/features/ee/browser_ui/1_manage/group/group_file_template_spec.rb +141 -0
- data/qa/specs/features/ee/browser_ui/1_manage/group/group_ldap_sync_spec.rb +183 -0
- data/qa/specs/features/ee/browser_ui/1_manage/group/group_saml_enforced_sso_spec.rb +115 -0
- data/qa/specs/features/ee/browser_ui/1_manage/group/group_saml_group_managed_accounts_spec.rb +178 -0
- data/qa/specs/features/ee/browser_ui/1_manage/group/group_saml_non_enforced_sso_spec.rb +87 -0
- data/qa/specs/features/ee/browser_ui/1_manage/group/restrict_by_ip_address_spec.rb +107 -0
- data/qa/specs/features/ee/browser_ui/1_manage/insights/default_insights_spec.rb +48 -0
- data/qa/specs/features/ee/browser_ui/1_manage/instance/instance_audit_logs_spec.rb +124 -0
- data/qa/specs/features/ee/browser_ui/1_manage/ldap/admin_ldap_sync_spec.rb +63 -0
- data/qa/specs/features/ee/browser_ui/1_manage/project/project_audit_logs_spec.rb +127 -0
- data/qa/specs/features/ee/browser_ui/1_manage/project/project_templates_spec.rb +165 -0
- data/qa/specs/features/ee/browser_ui/2_plan/.gitkeep +0 -0
- data/qa/specs/features/ee/browser_ui/2_plan/burndown_chart/burndown_chart_spec.rb +46 -0
- data/qa/specs/features/ee/browser_ui/2_plan/custom_email/custom_email_spec.rb +28 -0
- data/qa/specs/features/ee/browser_ui/2_plan/epic/epics_management_spec.rb +96 -0
- data/qa/specs/features/ee/browser_ui/2_plan/epic/promote_issue_to_epic_spec.rb +40 -0
- data/qa/specs/features/ee/browser_ui/2_plan/epic/roadmap_spec.rb +31 -0
- data/qa/specs/features/ee/browser_ui/2_plan/issue_boards/configurable_issue_board_spec.rb +28 -0
- data/qa/specs/features/ee/browser_ui/2_plan/issue_boards/configure_issue_board_by_label_spec.rb +44 -0
- data/qa/specs/features/ee/browser_ui/2_plan/issue_boards/create_group_issue_board_spec.rb +31 -0
- data/qa/specs/features/ee/browser_ui/2_plan/issue_boards/focus_mode_spec.rb +28 -0
- data/qa/specs/features/ee/browser_ui/2_plan/issue_boards/group_issue_boards_spec.rb +48 -0
- data/qa/specs/features/ee/browser_ui/2_plan/issue_boards/project_issue_boards_spec.rb +103 -0
- data/qa/specs/features/ee/browser_ui/2_plan/issue_boards/read_only_board_configuration_spec.rb +37 -0
- data/qa/specs/features/ee/browser_ui/2_plan/issue_boards/sum_of_issues_weights_spec.rb +40 -0
- data/qa/specs/features/ee/browser_ui/2_plan/issues_analytics/issues_analytics_spec.rb +35 -0
- data/qa/specs/features/ee/browser_ui/2_plan/issues_weight/issue_weight_visualization_spec.rb +46 -0
- data/qa/specs/features/ee/browser_ui/2_plan/multiple_assignees_for_issues/four_assignees_spec.rb +45 -0
- data/qa/specs/features/ee/browser_ui/2_plan/multiple_assignees_for_issues/more_than_four_assignees_spec.rb +70 -0
- data/qa/specs/features/ee/browser_ui/2_plan/related_issues/related_issues_spec.rb +50 -0
- data/qa/specs/features/ee/browser_ui/2_plan/scoped_labels/editing_scoped_labels_spec.rb +58 -0
- data/qa/specs/features/ee/browser_ui/3_create/.gitkeep +0 -0
- data/qa/specs/features/ee/browser_ui/3_create/contribution_analytics_spec.rb +53 -0
- data/qa/specs/features/ee/browser_ui/3_create/design_management_spec.rb +29 -0
- data/qa/specs/features/ee/browser_ui/3_create/jenkins/jenkins_build_status_spec.rb +158 -0
- data/qa/specs/features/ee/browser_ui/3_create/merge_request/add_batch_comments_in_merge_request_spec.rb +80 -0
- data/qa/specs/features/ee/browser_ui/3_create/merge_request/approval_rules_spec.rb +97 -0
- data/qa/specs/features/ee/browser_ui/3_create/repository/assign_code_owners_spec.rb +83 -0
- data/qa/specs/features/ee/browser_ui/3_create/repository/code_owners_spec.rb +75 -0
- data/qa/specs/features/ee/browser_ui/3_create/repository/file_locking_spec.rb +161 -0
- data/qa/specs/features/ee/browser_ui/3_create/repository/pull_mirroring_over_http_spec.rb +52 -0
- data/qa/specs/features/ee/browser_ui/3_create/repository/pull_mirroring_over_ssh_with_key_spec.rb +71 -0
- data/qa/specs/features/ee/browser_ui/3_create/repository/push_rules_spec.rb +202 -0
- data/qa/specs/features/ee/browser_ui/3_create/repository/restrict_push_protected_branch_spec.rb +120 -0
- data/qa/specs/features/ee/browser_ui/3_create/web_ide/web_terminal_spec.rb +80 -0
- data/qa/specs/features/ee/browser_ui/4_verify/.gitkeep +0 -0
- data/qa/specs/features/ee/browser_ui/5_package/.gitkeep +0 -0
- data/qa/specs/features/ee/browser_ui/5_package/maven_repository_spec.rb +102 -0
- data/qa/specs/features/ee/browser_ui/5_package/npm_registry_spec.rb +75 -0
- data/qa/specs/features/ee/browser_ui/6_release/.gitkeep +0 -0
- data/qa/specs/features/ee/browser_ui/6_release/multi-project_pipelines_spec.rb +98 -0
- data/qa/specs/features/ee/browser_ui/6_release/pipelines_for_merged_results_and_merge_trains_spec.rb +137 -0
- data/qa/specs/features/ee/browser_ui/7_configure/.gitkeep +0 -0
- data/qa/specs/features/ee/browser_ui/8_monitor/.gitkeep +0 -0
- data/qa/specs/features/ee/browser_ui/8_monitor/apm/metrics_spec.rb +68 -0
- data/qa/specs/features/ee/browser_ui/8_monitor/health/alerting_spec.rb +106 -0
- data/qa/specs/features/ee/browser_ui/8_monitor/health/cluster_health_spec.rb +52 -0
- data/qa/specs/features/ee/browser_ui/enablement/elasticsearch/elasticsearch_reindexing_spec.rb +78 -0
- data/qa/specs/features/ee/browser_ui/geo/attachment_replication_spec.rb +63 -0
- data/qa/specs/features/ee/browser_ui/geo/database_delete_replication_spec.rb +60 -0
- data/qa/specs/features/ee/browser_ui/geo/http_push_spec.rb +121 -0
- data/qa/specs/features/ee/browser_ui/geo/http_push_to_secondary_spec.rb +174 -0
- data/qa/specs/features/ee/browser_ui/geo/rename_replication_spec.rb +75 -0
- data/qa/specs/features/ee/browser_ui/geo/ssh_push_spec.rb +151 -0
- data/qa/specs/features/ee/browser_ui/geo/ssh_push_to_secondary_spec.rb +189 -0
- data/qa/specs/features/ee/browser_ui/geo/wiki_http_push_spec.rb +68 -0
- data/qa/specs/features/ee/browser_ui/geo/wiki_http_push_to_secondary_spec.rb +105 -0
- data/qa/specs/features/ee/browser_ui/geo/wiki_ssh_push_spec.rb +93 -0
- data/qa/specs/features/ee/browser_ui/geo/wiki_ssh_push_to_secondary_spec.rb +110 -0
- data/qa/specs/features/ee/browser_ui/secure/create_merge_request_with_secure_spec.rb +79 -0
- data/qa/specs/features/ee/browser_ui/secure/license_compliance_spec.rb +98 -0
- data/qa/specs/features/ee/browser_ui/secure/merge_request_license_widget_spec.rb +134 -0
- data/qa/specs/features/ee/browser_ui/secure/security_reports_spec.rb +143 -0
- data/qa/specs/features/ee/browser_ui/secure/vulnerability_management_spec.rb +101 -0
- data/qa/specs/features/sanity/framework_spec.rb +21 -0
- data/qa/specs/helpers/quarantine.rb +84 -0
- data/qa/specs/loop_runner.rb +21 -0
- data/qa/specs/parallel_runner.rb +33 -0
- data/qa/specs/runner.rb +78 -0
- data/qa/support/api.rb +71 -0
- data/qa/support/dates.rb +21 -0
- data/qa/support/page/logging.rb +178 -0
- data/qa/support/repeater.rb +65 -0
- data/qa/support/retrier.rb +64 -0
- data/qa/support/wait_for_requests.rb +25 -0
- data/qa/support/waiter.rb +39 -0
- data/qa/tools/delete_subgroups.rb +66 -0
- data/qa/tools/delete_test_ssh_keys.rb +61 -0
- data/qa/tools/generate_perf_testdata.rb +301 -0
- data/qa/tools/revoke_all_personal_access_tokens.rb +44 -0
- data/qa/vendor/jenkins/page/base.rb +24 -0
- data/qa/vendor/jenkins/page/configure.rb +48 -0
- data/qa/vendor/jenkins/page/configure_job.rb +72 -0
- data/qa/vendor/jenkins/page/last_job_console.rb +44 -0
- data/qa/vendor/jenkins/page/login.rb +31 -0
- data/qa/vendor/jenkins/page/new_credentials.rb +50 -0
- data/qa/vendor/jenkins/page/new_job.rb +38 -0
- data/qa/vendor/saml_idp/page/base.rb +14 -0
- data/qa/vendor/saml_idp/page/login.rb +31 -0
- metadata +835 -0
checksums.yaml
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
SHA256:
|
|
3
|
+
metadata.gz: dd40a0ffd6214eeb28234cfef9b4e735f57570cdecddf5e6a0cca422353ed5fc
|
|
4
|
+
data.tar.gz: 93efdc7b1093ab7226bf268d862bdba9c66fa2764e4165e0d70a49344d9de4ec
|
|
5
|
+
SHA512:
|
|
6
|
+
metadata.gz: bc4380dc722dc70263eea4cd6720a753a98438dc60ee18f2a949e8b74532732b07d458b486601b37ce3a68ed1533ebbbf7f6725637462622caf3464cfc217292
|
|
7
|
+
data.tar.gz: 5c25a44ad165c00fa36233d5bae6c56adb55e4fb1eec8c713c51deb0e6ed4bfb6207d9e73d776c443d4cf9aae9e132baeb918819e68cea47ec42e60baa782171
|
data/.gitignore
ADDED
data/.rspec
ADDED
data/.rspec_parallel
ADDED
data/Dockerfile
ADDED
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
FROM ruby:2.6-stretch
|
|
2
|
+
LABEL maintainer="GitLab Quality Department <quality@gitlab.com>"
|
|
3
|
+
ENV DEBIAN_FRONTEND noninteractive
|
|
4
|
+
|
|
5
|
+
##
|
|
6
|
+
# Add support for stretch-backports
|
|
7
|
+
#
|
|
8
|
+
RUN echo "deb http://ftp.debian.org/debian stretch-backports main" >> /etc/apt/sources.list
|
|
9
|
+
|
|
10
|
+
##
|
|
11
|
+
# Update APT sources and install some dependencies
|
|
12
|
+
#
|
|
13
|
+
RUN sed -i "s/httpredir.debian.org/ftp.us.debian.org/" /etc/apt/sources.list
|
|
14
|
+
RUN apt-get update && apt-get install -y wget unzip xvfb lsb-release
|
|
15
|
+
|
|
16
|
+
##
|
|
17
|
+
# Install some packages from backports
|
|
18
|
+
#
|
|
19
|
+
RUN apt-get -y -t stretch-backports install git git-lfs
|
|
20
|
+
|
|
21
|
+
##
|
|
22
|
+
# Install Docker
|
|
23
|
+
#
|
|
24
|
+
RUN wget -q https://download.docker.com/linux/static/stable/x86_64/docker-17.09.0-ce.tgz && \
|
|
25
|
+
tar -zxf docker-17.09.0-ce.tgz && mv docker/docker /usr/local/bin/docker && \
|
|
26
|
+
rm docker-17.09.0-ce.tgz
|
|
27
|
+
|
|
28
|
+
##
|
|
29
|
+
# Install Google Chrome version with headless support
|
|
30
|
+
#
|
|
31
|
+
RUN curl -sS -L https://dl.google.com/linux/linux_signing_key.pub | apt-key add -
|
|
32
|
+
RUN echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" > /etc/apt/sources.list.d/google.list
|
|
33
|
+
RUN apt-get update -q && apt-get install -y google-chrome-stable && apt-get clean
|
|
34
|
+
|
|
35
|
+
##
|
|
36
|
+
# Install chromedriver to make it work with Selenium
|
|
37
|
+
#
|
|
38
|
+
RUN wget -q https://chromedriver.storage.googleapis.com/$(wget -q -O - https://chromedriver.storage.googleapis.com/LATEST_RELEASE)/chromedriver_linux64.zip
|
|
39
|
+
RUN unzip chromedriver_linux64.zip -d /usr/local/bin
|
|
40
|
+
|
|
41
|
+
##
|
|
42
|
+
# Install K3d local cluster support
|
|
43
|
+
# https://github.com/rancher/k3d
|
|
44
|
+
#
|
|
45
|
+
RUN curl -s https://raw.githubusercontent.com/rancher/k3d/master/install.sh | TAG=v1.3.4 bash
|
|
46
|
+
|
|
47
|
+
##
|
|
48
|
+
# Install gcloud and kubectl CLI used in Auto DevOps test to create K8s
|
|
49
|
+
# clusters
|
|
50
|
+
#
|
|
51
|
+
RUN export CLOUD_SDK_REPO="cloud-sdk-$(lsb_release -c -s)" && \
|
|
52
|
+
echo "deb http://packages.cloud.google.com/apt $CLOUD_SDK_REPO main" | tee -a /etc/apt/sources.list.d/google-cloud-sdk.list && \
|
|
53
|
+
curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add - && \
|
|
54
|
+
apt-get update -y && apt-get install google-cloud-sdk kubectl -y
|
|
55
|
+
|
|
56
|
+
WORKDIR /home/gitlab/qa
|
|
57
|
+
COPY ./qa/Gemfile* /home/gitlab/qa/
|
|
58
|
+
COPY ./config/initializers/0_inject_enterprise_edition_module.rb /home/gitlab/config/initializers/
|
|
59
|
+
# Copy VERSION to ensure the COPY succeeds to copy at least one file since ee/app/models/license.rb isn't present in FOSS
|
|
60
|
+
# The [b] part makes ./ee/app/models/license.r[b] a pattern that is allowed to return no files (which is the case in FOSS)
|
|
61
|
+
COPY VERSION ./ee/app/models/license.r[b] /home/gitlab/ee/app/models/
|
|
62
|
+
COPY ./lib/gitlab.rb /home/gitlab/lib/
|
|
63
|
+
COPY ./lib/gitlab/utils.rb /home/gitlab/lib/gitlab/
|
|
64
|
+
COPY ./INSTALLATION_TYPE ./VERSION /home/gitlab/
|
|
65
|
+
RUN cd /home/gitlab/qa/ && bundle install --jobs=$(nproc) --retry=3 --quiet
|
|
66
|
+
COPY ./qa /home/gitlab/qa
|
|
67
|
+
|
|
68
|
+
ENTRYPOINT ["bin/test"]
|
data/Gemfile
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
source 'https://rubygems.org'
|
|
2
|
+
|
|
3
|
+
gem 'gitlab-qa'
|
|
4
|
+
gem 'activesupport', '~> 6.0.2.2' # This should stay in sync with the root's Gemfile
|
|
5
|
+
gem 'capybara', '~> 3.29.0'
|
|
6
|
+
gem 'capybara-screenshot', '~> 1.0.23'
|
|
7
|
+
gem 'rake', '~> 12.3.0'
|
|
8
|
+
gem 'rspec', '~> 3.7'
|
|
9
|
+
gem 'selenium-webdriver', '~> 3.12'
|
|
10
|
+
gem 'airborne', '~> 0.2.13'
|
|
11
|
+
gem 'nokogiri', '~> 1.10.9'
|
|
12
|
+
gem 'rspec-retry', '~> 0.6.1'
|
|
13
|
+
gem 'rspec_junit_formatter', '~> 0.4.1'
|
|
14
|
+
gem 'faker', '~> 1.6', '>= 1.6.6'
|
|
15
|
+
gem 'knapsack', '~> 1.17'
|
|
16
|
+
gem 'parallel_tests', '~> 2.29'
|
|
17
|
+
|
|
18
|
+
group :test do
|
|
19
|
+
gem 'pry-byebug', '~> 3.5.1', platform: :mri
|
|
20
|
+
gem "ruby-debug-ide", "~> 0.7.0"
|
|
21
|
+
gem "debase", "~> 0.2.4.1"
|
|
22
|
+
gem 'timecop', '~> 0.9.1'
|
|
23
|
+
end
|
data/Gemfile.lock
ADDED
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
GEM
|
|
2
|
+
remote: https://rubygems.org/
|
|
3
|
+
specs:
|
|
4
|
+
activesupport (6.0.2.2)
|
|
5
|
+
concurrent-ruby (~> 1.0, >= 1.0.2)
|
|
6
|
+
i18n (>= 0.7, < 2)
|
|
7
|
+
minitest (~> 5.1)
|
|
8
|
+
tzinfo (~> 1.1)
|
|
9
|
+
zeitwerk (~> 2.2)
|
|
10
|
+
addressable (2.7.0)
|
|
11
|
+
public_suffix (>= 2.0.2, < 5.0)
|
|
12
|
+
airborne (0.2.13)
|
|
13
|
+
activesupport
|
|
14
|
+
rack
|
|
15
|
+
rack-test (~> 0.6, >= 0.6.2)
|
|
16
|
+
rest-client (>= 1.7.3, < 3.0)
|
|
17
|
+
rspec (~> 3.1)
|
|
18
|
+
byebug (9.1.0)
|
|
19
|
+
capybara (3.29.0)
|
|
20
|
+
addressable
|
|
21
|
+
mini_mime (>= 0.1.3)
|
|
22
|
+
nokogiri (~> 1.8)
|
|
23
|
+
rack (>= 1.6.0)
|
|
24
|
+
rack-test (>= 0.6.3)
|
|
25
|
+
regexp_parser (~> 1.5)
|
|
26
|
+
xpath (~> 3.2)
|
|
27
|
+
capybara-screenshot (1.0.23)
|
|
28
|
+
capybara (>= 1.0, < 4)
|
|
29
|
+
launchy
|
|
30
|
+
childprocess (3.0.0)
|
|
31
|
+
coderay (1.1.2)
|
|
32
|
+
concurrent-ruby (1.1.6)
|
|
33
|
+
debase (0.2.4.1)
|
|
34
|
+
debase-ruby_core_source (>= 0.10.2)
|
|
35
|
+
debase-ruby_core_source (0.10.6)
|
|
36
|
+
diff-lcs (1.3)
|
|
37
|
+
domain_name (0.5.20170404)
|
|
38
|
+
unf (>= 0.0.5, < 1.0.0)
|
|
39
|
+
faker (1.9.3)
|
|
40
|
+
i18n (>= 0.7)
|
|
41
|
+
gitlab-qa (4.0.0)
|
|
42
|
+
http-cookie (1.0.3)
|
|
43
|
+
domain_name (~> 0.5)
|
|
44
|
+
i18n (1.8.2)
|
|
45
|
+
concurrent-ruby (~> 1.0)
|
|
46
|
+
knapsack (1.17.1)
|
|
47
|
+
rake
|
|
48
|
+
launchy (2.4.3)
|
|
49
|
+
addressable (~> 2.3)
|
|
50
|
+
method_source (0.9.0)
|
|
51
|
+
mime-types (3.1)
|
|
52
|
+
mime-types-data (~> 3.2015)
|
|
53
|
+
mime-types-data (3.2016.0521)
|
|
54
|
+
mini_mime (1.0.2)
|
|
55
|
+
mini_portile2 (2.4.0)
|
|
56
|
+
minitest (5.14.0)
|
|
57
|
+
netrc (0.11.0)
|
|
58
|
+
nokogiri (1.10.9)
|
|
59
|
+
mini_portile2 (~> 2.4.0)
|
|
60
|
+
parallel (1.17.0)
|
|
61
|
+
parallel_tests (2.29.0)
|
|
62
|
+
parallel
|
|
63
|
+
pry (0.11.3)
|
|
64
|
+
coderay (~> 1.1.0)
|
|
65
|
+
method_source (~> 0.9.0)
|
|
66
|
+
pry-byebug (3.5.1)
|
|
67
|
+
byebug (~> 9.1)
|
|
68
|
+
pry (~> 0.10)
|
|
69
|
+
public_suffix (4.0.1)
|
|
70
|
+
rack (2.0.7)
|
|
71
|
+
rack-test (0.8.3)
|
|
72
|
+
rack (>= 1.0, < 3)
|
|
73
|
+
rake (12.3.0)
|
|
74
|
+
regexp_parser (1.6.0)
|
|
75
|
+
rest-client (2.0.2)
|
|
76
|
+
http-cookie (>= 1.0.2, < 2.0)
|
|
77
|
+
mime-types (>= 1.16, < 4.0)
|
|
78
|
+
netrc (~> 0.8)
|
|
79
|
+
rspec (3.7.0)
|
|
80
|
+
rspec-core (~> 3.7.0)
|
|
81
|
+
rspec-expectations (~> 3.7.0)
|
|
82
|
+
rspec-mocks (~> 3.7.0)
|
|
83
|
+
rspec-core (3.7.1)
|
|
84
|
+
rspec-support (~> 3.7.0)
|
|
85
|
+
rspec-expectations (3.7.0)
|
|
86
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
|
87
|
+
rspec-support (~> 3.7.0)
|
|
88
|
+
rspec-mocks (3.7.0)
|
|
89
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
|
90
|
+
rspec-support (~> 3.7.0)
|
|
91
|
+
rspec-retry (0.6.1)
|
|
92
|
+
rspec-core (> 3.3)
|
|
93
|
+
rspec-support (3.7.0)
|
|
94
|
+
rspec_junit_formatter (0.4.1)
|
|
95
|
+
rspec-core (>= 2, < 4, != 2.12.0)
|
|
96
|
+
ruby-debug-ide (0.7.2)
|
|
97
|
+
rake (>= 0.8.1)
|
|
98
|
+
rubyzip (1.3.0)
|
|
99
|
+
selenium-webdriver (3.142.6)
|
|
100
|
+
childprocess (>= 0.5, < 4.0)
|
|
101
|
+
rubyzip (>= 1.2.2)
|
|
102
|
+
thread_safe (0.3.6)
|
|
103
|
+
timecop (0.9.1)
|
|
104
|
+
tzinfo (1.2.6)
|
|
105
|
+
thread_safe (~> 0.1)
|
|
106
|
+
unf (0.1.4)
|
|
107
|
+
unf_ext
|
|
108
|
+
unf_ext (0.0.7.4)
|
|
109
|
+
xpath (3.2.0)
|
|
110
|
+
nokogiri (~> 1.8)
|
|
111
|
+
zeitwerk (2.3.0)
|
|
112
|
+
|
|
113
|
+
PLATFORMS
|
|
114
|
+
ruby
|
|
115
|
+
|
|
116
|
+
DEPENDENCIES
|
|
117
|
+
activesupport (~> 6.0.2.2)
|
|
118
|
+
airborne (~> 0.2.13)
|
|
119
|
+
capybara (~> 3.29.0)
|
|
120
|
+
capybara-screenshot (~> 1.0.23)
|
|
121
|
+
debase (~> 0.2.4.1)
|
|
122
|
+
faker (~> 1.6, >= 1.6.6)
|
|
123
|
+
gitlab-qa
|
|
124
|
+
knapsack (~> 1.17)
|
|
125
|
+
nokogiri (~> 1.10.9)
|
|
126
|
+
parallel_tests (~> 2.29)
|
|
127
|
+
pry-byebug (~> 3.5.1)
|
|
128
|
+
rake (~> 12.3.0)
|
|
129
|
+
rspec (~> 3.7)
|
|
130
|
+
rspec-retry (~> 0.6.1)
|
|
131
|
+
rspec_junit_formatter (~> 0.4.1)
|
|
132
|
+
ruby-debug-ide (~> 0.7.0)
|
|
133
|
+
selenium-webdriver (~> 3.12)
|
|
134
|
+
timecop (~> 0.9.1)
|
|
135
|
+
|
|
136
|
+
BUNDLED WITH
|
|
137
|
+
1.17.3
|
data/README.md
ADDED
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
# GitLab QA - End-to-end tests for GitLab
|
|
2
|
+
|
|
3
|
+
This directory contains [end-to-end tests](../../../doc/development/testing_guide/end_to_end/index.md)
|
|
4
|
+
for GitLab. It includes the test framework and the tests themselves.
|
|
5
|
+
|
|
6
|
+
The tests can be found in `qa/specs/features` (not to be confused with the unit
|
|
7
|
+
tests for the test framework, which are in `spec/`).
|
|
8
|
+
|
|
9
|
+
It is part of the [GitLab QA project](https://gitlab.com/gitlab-org/gitlab-qa).
|
|
10
|
+
|
|
11
|
+
## What is it?
|
|
12
|
+
|
|
13
|
+
GitLab QA is an end-to-end tests suite for GitLab.
|
|
14
|
+
|
|
15
|
+
These are black-box and entirely click-driven end-to-end tests you can run
|
|
16
|
+
against any existing instance.
|
|
17
|
+
|
|
18
|
+
## How does it work?
|
|
19
|
+
|
|
20
|
+
1. When we release a new version of GitLab, we build a Docker images for it.
|
|
21
|
+
1. Along with GitLab Docker Images we also build and publish GitLab QA images.
|
|
22
|
+
1. GitLab QA project uses these images to execute end-to-end tests.
|
|
23
|
+
|
|
24
|
+
## Validating GitLab views / partials / selectors in merge requests
|
|
25
|
+
|
|
26
|
+
We recently added a new CI job that is going to be triggered for every push
|
|
27
|
+
event in CE and EE projects. The job is called `qa:selectors` and it will
|
|
28
|
+
verify coupling between page objects implemented as a part of GitLab QA
|
|
29
|
+
and corresponding views / partials / selectors in CE / EE.
|
|
30
|
+
|
|
31
|
+
Whenever `qa:selectors` job fails in your merge request, you are supposed to
|
|
32
|
+
fix [page objects](../doc/development/testing_guide/end_to_end/page_objects.md). You should also trigger end-to-end tests
|
|
33
|
+
using `package-and-qa` manual action, to test if everything works fine.
|
|
34
|
+
|
|
35
|
+
## How can I use it?
|
|
36
|
+
|
|
37
|
+
You can use GitLab QA to exercise tests on any live instance! If you don't
|
|
38
|
+
have an instance available you can follow the instructions below to use
|
|
39
|
+
the [GitLab Development Kit (GDK)](https://gitlab.com/gitlab-org/gitlab-development-kit).
|
|
40
|
+
This is the recommended option if you would like to contribute to the tests.
|
|
41
|
+
|
|
42
|
+
Note: GitLab QA uses [Selenium WebDriver](https://www.seleniumhq.org/) via
|
|
43
|
+
[Cabybara](http://teamcapybara.github.io/capybara/), and by default it targets Chrome as
|
|
44
|
+
the browser to use. You will need to have Chrome (or Chromium) and
|
|
45
|
+
[chromedriver](https://chromedriver.chromium.org/) installed / in your `$PATH`.
|
|
46
|
+
|
|
47
|
+
### Writing tests
|
|
48
|
+
|
|
49
|
+
- [Writing tests from scratch tutorial](../doc/development/testing_guide/end_to_end/beginners_guide.md)
|
|
50
|
+
- [Best practices](../doc/development/testing_guide/best_practices.md)
|
|
51
|
+
- [Using page objects](../doc/development/testing_guide/end_to_end/page_objects.md)
|
|
52
|
+
- [Guidelines](../doc/development/testing_guide/index.md)
|
|
53
|
+
- [Tests with special setup for local environemnts](../doc/development/testing_guide/end_to_end/running_tests_that_require_special_setup.md)
|
|
54
|
+
|
|
55
|
+
### Run the end-to-end tests in a local development environment
|
|
56
|
+
|
|
57
|
+
Follow the GDK instructions to [prepare](https://gitlab.com/gitlab-org/gitlab-development-kit/blob/master/doc/prepare.md)
|
|
58
|
+
and [install](https://gitlab.com/gitlab-org/gitlab-development-kit/blob/master/doc/set-up-gdk.md)
|
|
59
|
+
your local GitLab development environment.
|
|
60
|
+
|
|
61
|
+
Once you have GDK running, switch to the `qa` directory. E.g., if you setup
|
|
62
|
+
GDK to develop in the main `gitlab-ce` repo, the GitLab source code will be
|
|
63
|
+
in a `gitlab` directory and so the end-to-end test code will be in `gitlab/qa`.
|
|
64
|
+
|
|
65
|
+
From there you can run the tests. For example, the
|
|
66
|
+
following call would login to the GDK instance and run all specs in
|
|
67
|
+
`qa/specs/features`:
|
|
68
|
+
|
|
69
|
+
```
|
|
70
|
+
# Make sure to install the dependencies first with `bundle install`
|
|
71
|
+
|
|
72
|
+
bundle exec bin/qa Test::Instance::All http://localhost:3000
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
Note: If you want to run tests requiring SSH against GDK, you
|
|
76
|
+
will need to [modify your GDK setup](https://gitlab.com/gitlab-org/gitlab-qa/blob/master/docs/run_qa_against_gdk.md).
|
|
77
|
+
|
|
78
|
+
#### Running EE tests
|
|
79
|
+
|
|
80
|
+
When running EE tests you'll need to have a license available. GitLab engineers can [request a license](https://about.gitlab.com/handbook/developer-onboarding/#working-on-gitlab-ee).
|
|
81
|
+
|
|
82
|
+
Once you have the license file you can export it as an environment variable and then the framework can use it. If you do so it will be installed automatically.
|
|
83
|
+
|
|
84
|
+
```
|
|
85
|
+
export EE_LICENSE=$(cat /path/to/gitlab_license)
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
### Running specific tests
|
|
89
|
+
|
|
90
|
+
You can also supply specific tests to run as another parameter. For example, to
|
|
91
|
+
run the repository-related specs, you can execute:
|
|
92
|
+
|
|
93
|
+
```
|
|
94
|
+
bundle exec bin/qa Test::Instance::All http://localhost:3000 -- qa/specs/features/browser_ui/3_create/repository
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
Since the arguments would be passed to `rspec`, you could use all `rspec`
|
|
98
|
+
options there. For example, passing `--backtrace` and also line number:
|
|
99
|
+
|
|
100
|
+
```
|
|
101
|
+
bundle exec bin/qa Test::Instance::All http://localhost:3000 -- qa/specs/features/browser_ui/3_create/merge_request/create_merge_request_spec.rb:6 --backtrace
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
Note that the separator `--` is required; all subsequent options will be
|
|
105
|
+
ignored by the QA framework and passed to `rspec`.
|
|
106
|
+
|
|
107
|
+
### Overriding the authenticated user
|
|
108
|
+
|
|
109
|
+
Unless told otherwise, the QA tests will run as the default `root` user seeded
|
|
110
|
+
by the GDK.
|
|
111
|
+
|
|
112
|
+
If you need to authenticate as a different user, you can provide the
|
|
113
|
+
`GITLAB_USERNAME` and `GITLAB_PASSWORD` environment variables:
|
|
114
|
+
|
|
115
|
+
```
|
|
116
|
+
GITLAB_USERNAME=jsmith GITLAB_PASSWORD=password bundle exec bin/qa Test::Instance::All https://gitlab.example.com
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
Some QA tests require logging in as an admin user. By default, the QA
|
|
120
|
+
tests will use the the same `root` user seeded by the GDK.
|
|
121
|
+
|
|
122
|
+
If you need to authenticate with different admin credentials, you can
|
|
123
|
+
provide the `GITLAB_ADMIN_USERNAME` and `GITLAB_ADMIN_PASSWORD`
|
|
124
|
+
environment variables:
|
|
125
|
+
|
|
126
|
+
```
|
|
127
|
+
GITLAB_ADMIN_USERNAME=admin GITLAB_ADMIN_PASSWORD=myadminpassword GITLAB_USERNAME=jsmith GITLAB_PASSWORD=password bundle exec bin/qa Test::Instance::All https://gitlab.example.com
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
If your user doesn't have permission to default sandbox group
|
|
131
|
+
`gitlab-qa-sandbox`, you could also use another sandbox group by giving
|
|
132
|
+
`GITLAB_SANDBOX_NAME`:
|
|
133
|
+
|
|
134
|
+
```
|
|
135
|
+
GITLAB_USERNAME=jsmith GITLAB_PASSWORD=password GITLAB_SANDBOX_NAME=jsmith-qa-sandbox bundle exec bin/qa Test::Instance::All https://gitlab.example.com
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
All [supported environment variables are here](https://gitlab.com/gitlab-org/gitlab-qa/blob/master/docs/what_tests_can_be_run.md#supported-environment-variables).
|
|
139
|
+
|
|
140
|
+
### Sending additional cookies
|
|
141
|
+
|
|
142
|
+
The environment variable `QA_COOKIES` can be set to send additional cookies
|
|
143
|
+
on every request. This is necessary on gitlab.com to direct traffic to the
|
|
144
|
+
canary fleet. To do this set `QA_COOKIES="gitlab_canary=true"`.
|
|
145
|
+
|
|
146
|
+
To set multiple cookies, separate them with the `;` character, for example: `QA_COOKIES="cookie1=value;cookie2=value2"`
|
|
147
|
+
|
|
148
|
+
|
|
149
|
+
### Building a Docker image to test
|
|
150
|
+
|
|
151
|
+
Once you have made changes to the CE/EE repositories, you may want to build a
|
|
152
|
+
Docker image to test locally instead of waiting for the `gitlab-ce-qa` or
|
|
153
|
+
`gitlab-ee-qa` nightly builds. To do that, you can run **from the top `gitlab`
|
|
154
|
+
directory** (one level up from this directory):
|
|
155
|
+
|
|
156
|
+
```sh
|
|
157
|
+
docker build -t gitlab/gitlab-ce-qa:nightly --file ./qa/Dockerfile ./
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
### Quarantined tests
|
|
161
|
+
|
|
162
|
+
Tests can be put in quarantine by assigning `:quarantine` metadata. This means
|
|
163
|
+
they will be skipped unless run with `--tag quarantine`. This can be used for
|
|
164
|
+
tests that are expected to fail while a fix is in progress (similar to how
|
|
165
|
+
[`skip` or `pending`](https://relishapp.com/rspec/rspec-core/v/3-8/docs/pending-and-skipped-examples)
|
|
166
|
+
can be used).
|
|
167
|
+
|
|
168
|
+
```
|
|
169
|
+
bundle exec bin/qa Test::Instance::All http://localhost:3000 -- --tag quarantine
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
If `quarantine` is used with other tags, tests will only be run if they have at
|
|
173
|
+
least one of the tags other than `quarantine`. This is different from how RSpec
|
|
174
|
+
tags usually work, where all tags are inclusive.
|
|
175
|
+
|
|
176
|
+
For example, suppose one test has `:smoke` and `:quarantine` metadata, and
|
|
177
|
+
another test has `:ldap` and `:quarantine` metadata. If the tests are run with
|
|
178
|
+
`--tag smoke --tag quarantine`, only the first test will run. The test with
|
|
179
|
+
`:ldap` will not run even though it also has `:quarantine`.
|
|
180
|
+
|
|
181
|
+
### Running tests with a feature flag enabled
|
|
182
|
+
|
|
183
|
+
Tests can be run with with a feature flag enabled by using the command-line
|
|
184
|
+
option `--enable-feature FEATURE_FLAG`. For example, to enable the feature flag
|
|
185
|
+
that enforces Gitaly request limits, you would use the command:
|
|
186
|
+
|
|
187
|
+
```
|
|
188
|
+
bundle exec bin/qa Test::Instance::All http://localhost:3000 --enable-feature gitaly_enforce_requests_limits
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
This will instruct the QA framework to enable the `gitaly_enforce_requests_limits`
|
|
192
|
+
feature flag ([via the API](https://docs.gitlab.com/ee/api/features.html)), run
|
|
193
|
+
all the tests in the `Test::Instance::All` scenario, and then disable the
|
|
194
|
+
feature flag again.
|
|
195
|
+
|
|
196
|
+
Note: the QA framework doesn't currently allow you to easily toggle a feature
|
|
197
|
+
flag during a single test, [as you can in unit tests](https://docs.gitlab.com/ee/development/feature_flags.html#specs),
|
|
198
|
+
but [that capability is planned](https://gitlab.com/gitlab-org/quality/team-tasks/issues/77).
|
|
199
|
+
|
|
200
|
+
Note also that the `--` separator isn't used because `--enable-feature` is a QA
|
|
201
|
+
framework option, not an `rspec` option.
|