| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
This ensures the InjectEnterpriseEditionModule cop is able to detect the
prepend patterns used in the qa/ directory. Previously it would not
detect them as all EE QA modules reside in QA::EE, and not the top-level
EE namespace.
|
|
|
|
|
|
| |
Improve specs output readability by replacing
`it_behaves_like` with `include_examples`
in `BeSuccessMatcher`
|
| |
|
|
|
|
|
| |
Former shared examples were used only once.
Inlining them makes tests more clear.
|
| |
|
|
|
|
|
| |
Use Rubocop's Include
instead of manually checking the matcher in controllers specs.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
BeSuccessMatcher now supports following examples:
```
expect(response).to be_success
expect(response).to_not be_success
expect(response).not_to be_success
is_expected.to be_success
is_expected.to_not be_success
is_expected.not_to be_success
```
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Prevent using `be_success` call in controller specs to avoid
getting following deprecation warning:
```
DEPRECATION WARNING: The success? predicate is deprecated and
will be removed in Rails 6.0.
Please use successful? as provided by Rack::Response::Helpers.
```
|
|
|
|
| |
Stop checking the file location programmatically.
|
|
|
|
|
|
|
| |
This cop will analyze migrations that add columns with string, and
report an offense if the string has no limit enforced
Related to https://gitlab.com/gitlab-org/gitlab-ce/issues/64505
|
|
|
|
|
|
|
|
| |
The RSpec/FilePath cop checks that a spec file's path is correct, but
only if the file describes a constant. We want to check, for any file
with a top-level `describe`, whether the file path ends in
`_spec.rb`. We don't care what comes before that; just that it will be
executed by RSpec at all.
|
|
|
|
|
|
|
|
|
| |
This extends the InjectEnterpriseEditionModule RuboCop cop so that it
verifies the following:
1. The line number the injection occurs on (as before).
2. The method used (e.g. prepend instead of prepend_if_ee).
3. The argument type passed when using the new module injection methods.
|
|
|
|
|
|
|
| |
Using quotes within string validations can be messy. Let's
use a typical CSS selector for an unquoted attribute
Update the cop spec to validate appropriate new message
|
|
|
|
|
|
| |
Suggests to use a JSON structured log instead
Related to https://gitlab.com/gitlab-org/gitlab-ce/issues/54102
|
| |
|
|\
| |
| |
| |
| |
| |
| | |
Implement dynamic validation on QA Pages
Closes gitlab-qa#280
See merge request gitlab-org/gitlab-ce!25704
|
| |
| |
| |
| |
| |
| | |
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
|
|/
|
|
|
| |
This provides the user with some context as to why certain ActiveRecord
methods are blacklisted.
|
| |
|
|
|
|
|
|
|
| |
The `#reload` makes to load all objects into memory,
and the main purpose of `#reload` is to drop the association cache.
The `#reset` seems to solve exactly that case.
|
| |
|
|
|
|
|
|
|
|
| |
The InjectEnterpriseEditionModule cop would not detect certain nested EE
constants such as `EE::Foo::Bar::Baz`. This could result in it not
enforcing `prepend` being placed on the last line. This commit fixes
this by just performing a string match on the line, instead of relying
on AST matching.
|
|
|
|
|
|
|
| |
This Cop enforces the rule that injecting EE modules (using prepend,
include, or extend) is done by placing the injection on the last line of
a file, instead of somewhere in the middle. By placing these lines at
the very end, merge conflicts will not happen.
|
|
|
|
|
| |
Extending from ActiveRecord::Migration is deprecated, but was still used
in a bunch of places.
|
|
|
|
|
|
| |
It might happen you want to make the reference column have a unique
value, or you want to create partial indexes. So instead of only
accepting a `true` value, also accept a hash of options.
|
| |
|
|
|
|
|
|
|
| |
This cop forbids the use of `element :foo, 'pattern'` and
`element :bar, /pattern/` in QA files.
Signed-off-by: Rémy Coutable <remy@rymai.me>
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This commit adds the module `FromUnion`, which provides the class method
`from_union`. This simplifies the process of selecting data from the
result of a UNION, and reduces the likelihood of making mistakes. As a
result, instead of this:
union = Gitlab::SQL::Union.new([foo, bar])
Foo.from("(#{union.to_sql}) #{Foo.table_name}")
We can now write this instead:
Foo.from_union([foo, bar])
This commit also includes some changes to make this new setup work
properly. For example, a bug in Rails 4
(https://github.com/rails/rails/issues/24193) would break the use of
`from("sub-query-here").includes(:relation)` in certain cases. There was
also a CI query which appeared to repeat a lot of conditions from an
outer query on an inner query, which isn't necessary.
Finally, we include a RuboCop cop to ensure developers use this new
module, instead of using Gitlab::SQL::Union directly.
Fixes https://gitlab.com/gitlab-org/gitlab-ce/issues/51307
|
|
|
|
|
| |
These Cops enforces the code reuse rules as defined in merge request
https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/21254.
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously this would violate on the `if`:
def a_method
do_something
rescue
if condition
do_something
end
end
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When using ruby interpolation in externalized strings, they can't be
detected. Which means they will never be presented to be translated.
To mix variables into translations we need to use `sprintf`
instead.
Instead of:
_("Hello #{subject}")
Use:
_("Hello %{subject}) % { subject: 'world' }
|
|
|
|
| |
This whitelists all existing places where we use "destroy_all".
|
|
|
|
|
| |
This method usually has really bad performance implications, as it loads
rows into memory and deletes them one by one.
|
| |
|
|\
| |
| |
| |
| | |
Disallow methods that copy data on large tables
See merge request gitlab-org/gitlab-ce!20021
|
| |
| |
| |
| |
| |
| | |
{change_column_type,rename_column}_concurrently both copy data from one column
to another during a migration, which should not be done on GitLab.com. Instead,
we should use background migrations.
|
|/
|
|
|
|
|
| |
This notifies developers when calling `find(_by!)` chained on
`execute`. And suggests using the methods from `FinderMethods`. These
will perform the correct authorization checks on the resource when it
is found.
|
|
|
|
| |
Signed-off-by: Rémy Coutable <remy@rymai.me>
|
|
|
|
|
|
|
|
|
| |
This reverts the addition of the "goldiloader" Gem and all use of it.
While this Gem is very promising it's causing a variety of problems on
GitLab.com due to it eager-loading too much data in places where we
don't expect/can handle this. At least for the time being this means we
have to go back to manually fixing N+1 query problems, but at least
those should not cause a negative impact on availability.
|
| |
|