Uses the parallel_tests gem to execute tests in multiple processes
simultaneously on the same machine.
Adds the `--parallel` CLI option that instructs the QA framework
to use the parallel_tests executable.
Tests need access to global state contained in `Runtime::Scenario`
so when `--parallel` is invoked `Runtime::Scenario` is serialized
to an environment variable, which is passed to parallel_tests,
and then deserialized in `spec_helper`.
Elements now have the ability to be required on pages or not
Currently using the default wait mechanism
Altered the ElementWithPattern Cop to fit new splat for init
These are very high-level. Currently, they test:
1. That the performance bar appears.
2. That it has detailed metrics for Postgres and Gitaly.
3. That AJAX requests are included in the request selector.
First attempt at allowing a feature flag to be set via the command line
when running tests. This will enable the flag, run the tests, and then
disable the flag.
Using OptionParser meant changing how scenarios get the instance
address, so this also allows the address to be set as a command line
option. It's backwards compatible (you can still provide the address
as the command line option after the scenario)
Add "smoke" tag to the test
Fix links to views in Page Object files
Review fixes
Remove useless view block
Implement Snippets::Show page object class
Fix review suggestions
Fix review suggestions 2
Fix test with empty snippets state
Remove useless css class
Fix issues
There's an svg on the page that allows you to create a wiki page.
The svg takes a fraction of a second to load after which the
"Create your first page" button shifts up a bit. This can cause
webdriver to miss the hit so we wait for the svg to load before
clicking the button.
Also update the elements used in the test to conform to our best
practice.
And replace `act` with `perform`
Finally, remove the `before` block and `login` method, making the
code slightly simpler.
Add spec file using before(:context) to reduce test time. With testing
almost identical things, unnecessary to make them completely atomic.
Includes two helper methods. Since the raw_content method is the only
function needed on that page, created the method in the spec instead
of adding another page object.
Setup new project/commit page object and update project/show to add
go_to_commit method. The go_to_commit method is near duplicate of
go_to_file method, but decided to split them off to reduce overall
refactoring and simplify language.
Also add selectors to commit box partial and update qa.rb to load
new page object.
Override page object methods to log the actions taken by the methods
before or after the action, as appropriate.
Allow page object action logging to be turned on via a QA_DEBUG env var.
Unlike CHROME_HEADLESS (and the soon to arrive VERBOSE), QA_DEBUG
is false by default.
QA_DEBUG is used instead of just DEBUG because that enables Selenium
debug logging.
Mask passwords entered into fields with a QA selector with 'password'
in the name. Doesn't mask sensitive data entered into any other field.
Adds tests that adds new files via file templates via the Files view
and the Web IDE.
Includes changes to page objects and associated code
Fetches template content from the API rather than hardcoding strings
that will need to be updated if the templates change. Some of the
content is stored as flat files but we can't use them because they're
not included in the docker images gitlab-qa uses.
Adds 2 end-to-end tests:
1. Add and remove an SSH key
2. Add an SSH key and use it to clone and push
Includes changes to factories to allow Git actions via SSH
* upstream/master: (166 commits)
Flowdock uses Gitaly, not Grit
Removes 'no job log' from trace action
Fix missing namespace for some internal users
Dedupe yarn dependencies
Downgrade MySQL CI service from 8.0 to 5.7
Atomic internal ids for all models
Add documentation on how to configure Redis Sentinel by persistent class
Update CHANGELOG.md for 10.7.0
Update index.md
Resolve "Text from the diff is showing within a table header inside the discussion after the discussion is resolved"
Don't include lfs_file_locks data in export bundle
Documentation: Frontend Building Checklist
Fix a documentation typo for GitLab pages
Refactored activity calendar
Add an API endpoint to download git repository snapshots
Fix issues without links when added from boards new issue modal
Respect visibility options and description when importing project from template
Resolve "Improve tooltips of collapsed sidebars"
Update Container Scanning documentation
Fix typo in vue.md
...
* upstream/master: (536 commits)
Fix flash errors in performance bar for cached responses
Force content to align right
Method to track recoverable exceptions in sentry
Move PipelineFailed vue component
fixed targetmode being included in project
FE Docs: Fix header hierarchy in Vuex section of Vue.md
Adds helpers to remove withespace and linebreaks
`package-qa` was renamed to `package-and-qa`
Fix container scanning in vendored GitLab CI configuration for Auto Devops
Fixed web IDE not working for sub-groups
Remove web ide beta flag from docs and update
Make the message break into a new line instead of truncating it
Backport Web IDE docs to gitlab-ce
link to product handbook piece on permissions
Update faraday_middlewar to 0.12.2
Double-check next value for internal ids.
Resolve "skeleton placeholder on diff has white background"
Replace the `project/commits/comments.feature` spinach test with an rspec analog
Set ENV['IN_MEMORY_APPLICATION_SETTINGS'] to 'true in spec/db/production/settings_spec.rb
Update docs on `.gitlab-ci.yml` and variables policy
...
Also reorganize application settings related to repository in more maninful sections
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
* upstream/master: (466 commits)
Set initial password for instance in LDAP QA test
Backport EE changes to some hashed storage documentation to CE
Remove allow_n_plus_1 from Git::Repository#branches_filter
Bumps Gitlab Shell version to 6.0.3
Make resetting column information overridable in EE
Added 'clear' button to ci lint editor
Issues and merge requests in subgroups docs
Update docs labels CE
Refactored merge_requests/show path in dispatcher.js
wording
don't check against a hardcoded user name
10.5 Update the dependencies license list
10.5 Update the .gitignore, .gitlab-ci.yml, and Dockerfile templates
Create update guide for 10.5
Update 10.5 source install guide
Add docs for MR link in commit page
Add groups to OpenID Connect claims
Replaced $.get with axois.get
Memoize MergeRequest#rebase_in_progress? to prevent N+1 queries in Gitaly
Update style_guide_scss.md
...
* upstream/master:
Just don't expand if it's already expanded
fix bug in webpack_helper in which force_same_domain argument was ignored breaking local rspec tests
Fix rubocop offenses introduced in !16623
Prefer local variables over given/let
Try to restore page's state
Add more views check
Respect the latest changes from master
Add a scenario for adding secret variables
* upstream/master:
Make Gitaly RepositoryExists opt-out
Fix .batch_lfs_pointers accepting a lazy enumerator
Look at notes created just before merge when deciding if an MR can be reverted
Update missing paths
Default to HTTPS for all Gravatar URLs
Add note within ux documentation that further changes should be made within the design.gitlab project
Moves status icon into a vue file and adds tests Moves merging component into a vue file, adds i18n and better test cases
Prefer local variables instead
Add an test for QA::Runtime::RSAKey
Move initialize method later.
Also test if the fingerprint is correct
Generate ssh key on the fly for QA
* upstream/master: (136 commits)
Revert "Merge branch 'osw-updates-merge-status-on-api-actions' into 'master'"
Add modal for deleting a milestone
Revert "Merge branch 'remove-rugged-walk' into 'master'"
Resolve "Link to Clusters in Auto DevOps instead of Kubernetes service"
Update CHANGELOG.md for 10.4.1
Add a gRPC health check to ensure Gitaly is up
Add formatted_data attribute to Git::WikiPage
Avoid array indices to fixtures in JS specs
Migrate .batch_lfs_pointers to Gitaly
Updates `Revert this merge request` text
Work around a bug in DatabaseCleaner when using the deletion strategy on MySQL
Use the DatabaseCleaner 'deletion' strategy instead of 'truncation'
Workaround a recaptcha pop-up that cannot be tested
Uses sprite icon to render verified commit badge and uniforms css colors
Moves more mr widget components into vue files Adds i18n Adds better test coverage
Execute system hooks after-commit when executing project hooks
Remove one Spinach job and add one RSpec job
Remove callback as we already update accordingly on services
Fix typo in `.gitlab-ci.yml` heading
Migrate repository bundling to Gitaly
...
* upstream/master: (106 commits)
Remove callback as we already update accordingly on services
added missing imports
correctly imports performance bar
Added imports for dispatcher routes
Make the exposing of the Application secret more explicit
Add documentation about when the application API was added
Add application create API
Return a blank JSON response for a missing .js file to prevent Rails CSRF errors
add CHANGELOG.md entry for !15804
disable CopyAsGFM on iOS due to bug in webkit
Update changelog
GitalyClient::ConflictsService#conflicts? should return true for conflicts with missing side
Return more consistent values for merge_status on MR API
Fix a migration spec messing up the MergeRequestDiff DB schema
Backport changes to Gitlab::Checks::ChangeAccess from EE
remove webpack bundle tag for monitoring:environments:metrics
Set timezone for karma to UTC
Upgrade jasmine + raven to newer versions
Ensure Gitaly Ruby gems are installed using the correct Gemfile and at the correct location
Clarify that a feature that isn't in review by the 1st or 3rd doesn't necessarily miss the freeze
...
* Adds Runtime::Scenario as a place to record the properties of the
Scenario we're interested in.
* Adds a positional argument to Test::Integration::Mattermost to specify
Runtime::Scenario.mattermost
* Adds Page::Mattermost::{Main,Login} to model the mattermost pages we
need to interact with.
* Adds qa/features/mattermost/login_spec to perform a login via oauth
and ensure we are logged in.
Here we add a new entrypoint for the test suite,
Test::Integration::Mattermost. It is to ensure that mattermost
integration is working when enabling the embedded mattermost of
gitlab-omnibus
It runs all the example groups from Test::Instance, in addition to any
groups tagged :mattermost
* Extracts a common entrypoint class from Test::Instance as
Scenario::Entrypoint, and uses that as the base for Test::Instance and
Test::Integration::Mattermost
* RSpec groups defined in `specs/features/mattermost/**_spec.rb` are
tagged with :mattermost so they can be filtered out of the default
run.
* Tests tagged :mattermost are filtered out by default, and are
un-filtered by Test::Integration::Mattermost