BigW Consortium Gitlab
Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
G
gitlab-ce
Project
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Open sidebar
Forest Godfrey
gitlab-ce
Commits
d4976829
Commit
d4976829
authored
May 01, 2017
by
Robert Speicher
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Auto-correct `RSpec/DescribedClass` violations
parent
0a556523
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
40 changed files
with
100 additions
and
100 deletions
+100
-100
application_controller_spec.rb
spec/controllers/application_controller_spec.rb
+4
-4
issues_finder_spec.rb
spec/finders/issues_finder_spec.rb
+4
-4
merge_requests_finder_spec.rb
spec/finders/merge_requests_finder_spec.rb
+4
-4
snippets_finder_spec.rb
spec/finders/snippets_finder_spec.rb
+16
-16
renderer_spec.rb
spec/lib/banzai/renderer_spec.rb
+1
-1
changes_list_spec.rb
spec/lib/gitlab/changes_list_spec.rb
+1
-1
factory_spec.rb
spec/lib/gitlab/ci/build/credentials/factory_spec.rb
+2
-2
registry_spec.rb
spec/lib/gitlab/ci/build/credentials/registry_spec.rb
+3
-3
current_settings_spec.rb
spec/lib/gitlab/current_settings_spec.rb
+2
-2
base_event_fetcher_spec.rb
spec/lib/gitlab/cycle_analytics/base_event_fetcher_spec.rb
+1
-1
util_spec.rb
spec/lib/gitlab/git/util_spec.rb
+1
-1
ref_spec.rb
spec/lib/gitlab/gitaly_client/ref_spec.rb
+1
-1
person_spec.rb
spec/lib/gitlab/ldap/person_spec.rb
+3
-3
metrics_spec.rb
spec/lib/gitlab/metrics_spec.rb
+14
-14
sidekiq_throttler_spec.rb
spec/lib/gitlab/sidekiq_throttler_spec.rb
+2
-2
dsl_spec.rb
spec/lib/gitlab/slash_commands/dsl_spec.rb
+1
-1
gitignore_template_spec.rb
spec/lib/gitlab/template/gitignore_template_spec.rb
+1
-1
gitlab_ci_yml_template_spec.rb
spec/lib/gitlab/template/gitlab_ci_yml_template_spec.rb
+1
-1
issue_template_spec.rb
spec/lib/gitlab/template/issue_template_spec.rb
+1
-1
merge_request_template_spec.rb
spec/lib/gitlab/template/merge_request_template_spec.rb
+1
-1
usage_data_spec.rb
spec/lib/gitlab/usage_data_spec.rb
+2
-2
notify_spec.rb
spec/mailers/notify_spec.rb
+0
-0
internal_helpers_spec.rb
spec/requests/api/helpers/internal_helpers_spec.rb
+1
-1
helpers_spec.rb
spec/requests/api/helpers_spec.rb
+1
-1
get_urls_service_spec.rb
spec/services/merge_requests/get_urls_service_spec.rb
+2
-2
merge_request_diff_cache_service_spec.rb
...s/merge_requests/merge_request_diff_cache_service_spec.rb
+1
-1
resolve_service_spec.rb
spec/services/merge_requests/resolve_service_spec.rb
+6
-6
housekeeping_service_spec.rb
spec/services/projects/housekeeping_service_spec.rb
+1
-1
config_lint_spec.rb
spec/tasks/config_lint_spec.rb
+2
-2
delete_user_worker_spec.rb
spec/workers/delete_user_worker_spec.rb
+2
-2
emails_on_push_worker_spec.rb
spec/workers/emails_on_push_worker_spec.rb
+1
-1
git_garbage_collect_worker_spec.rb
spec/workers/git_garbage_collect_worker_spec.rb
+1
-1
gitlab_usage_ping_worker_spec.rb
spec/workers/gitlab_usage_ping_worker_spec.rb
+1
-1
group_destroy_worker_spec.rb
spec/workers/group_destroy_worker_spec.rb
+1
-1
merge_worker_spec.rb
spec/workers/merge_worker_spec.rb
+1
-1
post_receive_spec.rb
spec/workers/post_receive_spec.rb
+9
-9
project_destroy_worker_spec.rb
spec/workers/project_destroy_worker_spec.rb
+1
-1
remove_expired_members_worker_spec.rb
spec/workers/remove_expired_members_worker_spec.rb
+1
-1
remove_unreferenced_lfs_objects_worker_spec.rb
spec/workers/remove_unreferenced_lfs_objects_worker_spec.rb
+1
-1
repository_fork_worker_spec.rb
spec/workers/repository_fork_worker_spec.rb
+1
-1
No files found.
spec/controllers/application_controller_spec.rb
View file @
d4976829
...
...
@@ -4,7 +4,7 @@ describe ApplicationController do
let
(
:user
)
{
create
(
:user
)
}
describe
'#check_password_expiration'
do
let
(
:controller
)
{
ApplicationController
.
new
}
let
(
:controller
)
{
described_class
.
new
}
it
'redirects if the user is over their password expiry'
do
user
.
password_expires_at
=
Time
.
new
(
2002
)
...
...
@@ -34,7 +34,7 @@ describe ApplicationController do
describe
"#authenticate_user_from_token!"
do
describe
"authenticating a user from a private token"
do
controller
(
ApplicationController
)
do
controller
(
described_class
)
do
def
index
render
text:
"authenticated"
end
...
...
@@ -66,7 +66,7 @@ describe ApplicationController do
end
describe
"authenticating a user from a personal access token"
do
controller
(
ApplicationController
)
do
controller
(
described_class
)
do
def
index
render
text:
'authenticated'
end
...
...
@@ -115,7 +115,7 @@ describe ApplicationController do
end
context
'two-factor authentication'
do
let
(
:controller
)
{
ApplicationController
.
new
}
let
(
:controller
)
{
described_class
.
new
}
describe
'#check_two_factor_requirement'
do
subject
{
controller
.
send
:check_two_factor_requirement
}
...
...
spec/finders/issues_finder_spec.rb
View file @
d4976829
...
...
@@ -16,7 +16,7 @@ describe IssuesFinder do
set
(
:label_link
)
{
create
(
:label_link
,
label:
label
,
target:
issue2
)
}
let
(
:search_user
)
{
user
}
let
(
:params
)
{
{}
}
let
(
:issues
)
{
IssuesFinder
.
new
(
search_user
,
params
.
reverse_merge
(
scope:
scope
,
state:
'opened'
)).
execute
}
let
(
:issues
)
{
described_class
.
new
(
search_user
,
params
.
reverse_merge
(
scope:
scope
,
state:
'opened'
)).
execute
}
before
(
:context
)
do
project1
.
team
<<
[
user
,
:master
]
...
...
@@ -282,15 +282,15 @@ describe IssuesFinder do
let!
(
:confidential_issue
)
{
create
(
:issue
,
project:
project
,
confidential:
true
)
}
it
'returns non confidential issues for nil user'
do
expect
(
IssuesFinder
.
send
(
:not_restricted_by_confidentiality
,
nil
)).
to
include
(
public_issue
)
expect
(
described_class
.
send
(
:not_restricted_by_confidentiality
,
nil
)).
to
include
(
public_issue
)
end
it
'returns non confidential issues for user not authorized for the issues projects'
do
expect
(
IssuesFinder
.
send
(
:not_restricted_by_confidentiality
,
user
)).
to
include
(
public_issue
)
expect
(
described_class
.
send
(
:not_restricted_by_confidentiality
,
user
)).
to
include
(
public_issue
)
end
it
'returns all issues for user authorized for the issues projects'
do
expect
(
IssuesFinder
.
send
(
:not_restricted_by_confidentiality
,
authorized_user
)).
to
include
(
public_issue
,
confidential_issue
)
expect
(
described_class
.
send
(
:not_restricted_by_confidentiality
,
authorized_user
)).
to
include
(
public_issue
,
confidential_issue
)
end
end
end
spec/finders/merge_requests_finder_spec.rb
View file @
d4976829
...
...
@@ -23,26 +23,26 @@ describe MergeRequestsFinder do
describe
"#execute"
do
it
'filters by scope'
do
params
=
{
scope:
'authored'
,
state:
'opened'
}
merge_requests
=
MergeRequestsFinder
.
new
(
user
,
params
).
execute
merge_requests
=
described_class
.
new
(
user
,
params
).
execute
expect
(
merge_requests
.
size
).
to
eq
(
3
)
end
it
'filters by project'
do
params
=
{
project_id:
project1
.
id
,
scope:
'authored'
,
state:
'opened'
}
merge_requests
=
MergeRequestsFinder
.
new
(
user
,
params
).
execute
merge_requests
=
described_class
.
new
(
user
,
params
).
execute
expect
(
merge_requests
.
size
).
to
eq
(
1
)
end
it
'filters by non_archived'
do
params
=
{
non_archived:
true
}
merge_requests
=
MergeRequestsFinder
.
new
(
user
,
params
).
execute
merge_requests
=
described_class
.
new
(
user
,
params
).
execute
expect
(
merge_requests
.
size
).
to
eq
(
3
)
end
it
'filters by iid'
do
params
=
{
project_id:
project1
.
id
,
iids:
merge_request1
.
iid
}
merge_requests
=
MergeRequestsFinder
.
new
(
user
,
params
).
execute
merge_requests
=
described_class
.
new
(
user
,
params
).
execute
expect
(
merge_requests
).
to
contain_exactly
(
merge_request1
)
end
...
...
spec/finders/snippets_finder_spec.rb
View file @
d4976829
...
...
@@ -14,13 +14,13 @@ describe SnippetsFinder do
let!
(
:snippet3
)
{
create
(
:personal_snippet
,
:public
)
}
it
"returns all private and internal snippets"
do
snippets
=
SnippetsFinder
.
new
.
execute
(
user
,
filter: :all
)
snippets
=
described_class
.
new
.
execute
(
user
,
filter: :all
)
expect
(
snippets
).
to
include
(
snippet2
,
snippet3
)
expect
(
snippets
).
not_to
include
(
snippet1
)
end
it
"returns all public snippets"
do
snippets
=
SnippetsFinder
.
new
.
execute
(
nil
,
filter: :all
)
snippets
=
described_class
.
new
.
execute
(
nil
,
filter: :all
)
expect
(
snippets
).
to
include
(
snippet3
)
expect
(
snippets
).
not_to
include
(
snippet1
,
snippet2
)
end
...
...
@@ -32,7 +32,7 @@ describe SnippetsFinder do
let!
(
:snippet3
)
{
create
(
:personal_snippet
,
:public
)
}
it
"returns public public snippets"
do
snippets
=
SnippetsFinder
.
new
.
execute
(
nil
,
filter: :public
)
snippets
=
described_class
.
new
.
execute
(
nil
,
filter: :public
)
expect
(
snippets
).
to
include
(
snippet3
)
expect
(
snippets
).
not_to
include
(
snippet1
,
snippet2
)
...
...
@@ -45,36 +45,36 @@ describe SnippetsFinder do
let!
(
:snippet3
)
{
create
(
:personal_snippet
,
:public
,
author:
user
)
}
it
"returns all public and internal snippets"
do
snippets
=
SnippetsFinder
.
new
.
execute
(
user1
,
filter: :by_user
,
user:
user
)
snippets
=
described_class
.
new
.
execute
(
user1
,
filter: :by_user
,
user:
user
)
expect
(
snippets
).
to
include
(
snippet2
,
snippet3
)
expect
(
snippets
).
not_to
include
(
snippet1
)
end
it
"returns internal snippets"
do
snippets
=
SnippetsFinder
.
new
.
execute
(
user
,
filter: :by_user
,
user:
user
,
scope:
"are_internal"
)
snippets
=
described_class
.
new
.
execute
(
user
,
filter: :by_user
,
user:
user
,
scope:
"are_internal"
)
expect
(
snippets
).
to
include
(
snippet2
)
expect
(
snippets
).
not_to
include
(
snippet1
,
snippet3
)
end
it
"returns private snippets"
do
snippets
=
SnippetsFinder
.
new
.
execute
(
user
,
filter: :by_user
,
user:
user
,
scope:
"are_private"
)
snippets
=
described_class
.
new
.
execute
(
user
,
filter: :by_user
,
user:
user
,
scope:
"are_private"
)
expect
(
snippets
).
to
include
(
snippet1
)
expect
(
snippets
).
not_to
include
(
snippet2
,
snippet3
)
end
it
"returns public snippets"
do
snippets
=
SnippetsFinder
.
new
.
execute
(
user
,
filter: :by_user
,
user:
user
,
scope:
"are_public"
)
snippets
=
described_class
.
new
.
execute
(
user
,
filter: :by_user
,
user:
user
,
scope:
"are_public"
)
expect
(
snippets
).
to
include
(
snippet3
)
expect
(
snippets
).
not_to
include
(
snippet1
,
snippet2
)
end
it
"returns all snippets"
do
snippets
=
SnippetsFinder
.
new
.
execute
(
user
,
filter: :by_user
,
user:
user
)
snippets
=
described_class
.
new
.
execute
(
user
,
filter: :by_user
,
user:
user
)
expect
(
snippets
).
to
include
(
snippet1
,
snippet2
,
snippet3
)
end
it
"returns only public snippets if unauthenticated user"
do
snippets
=
SnippetsFinder
.
new
.
execute
(
nil
,
filter: :by_user
,
user:
user
)
snippets
=
described_class
.
new
.
execute
(
nil
,
filter: :by_user
,
user:
user
)
expect
(
snippets
).
to
include
(
snippet3
)
expect
(
snippets
).
not_to
include
(
snippet2
,
snippet1
)
end
...
...
@@ -88,43 +88,43 @@ describe SnippetsFinder do
end
it
"returns public snippets for unauthorized user"
do
snippets
=
SnippetsFinder
.
new
.
execute
(
nil
,
filter: :by_project
,
project:
project1
)
snippets
=
described_class
.
new
.
execute
(
nil
,
filter: :by_project
,
project:
project1
)
expect
(
snippets
).
to
include
(
@snippet3
)
expect
(
snippets
).
not_to
include
(
@snippet1
,
@snippet2
)
end
it
"returns public and internal snippets for non project members"
do
snippets
=
SnippetsFinder
.
new
.
execute
(
user
,
filter: :by_project
,
project:
project1
)
snippets
=
described_class
.
new
.
execute
(
user
,
filter: :by_project
,
project:
project1
)
expect
(
snippets
).
to
include
(
@snippet2
,
@snippet3
)
expect
(
snippets
).
not_to
include
(
@snippet1
)
end
it
"returns public snippets for non project members"
do
snippets
=
SnippetsFinder
.
new
.
execute
(
user
,
filter: :by_project
,
project:
project1
,
scope:
"are_public"
)
snippets
=
described_class
.
new
.
execute
(
user
,
filter: :by_project
,
project:
project1
,
scope:
"are_public"
)
expect
(
snippets
).
to
include
(
@snippet3
)
expect
(
snippets
).
not_to
include
(
@snippet1
,
@snippet2
)
end
it
"returns internal snippets for non project members"
do
snippets
=
SnippetsFinder
.
new
.
execute
(
user
,
filter: :by_project
,
project:
project1
,
scope:
"are_internal"
)
snippets
=
described_class
.
new
.
execute
(
user
,
filter: :by_project
,
project:
project1
,
scope:
"are_internal"
)
expect
(
snippets
).
to
include
(
@snippet2
)
expect
(
snippets
).
not_to
include
(
@snippet1
,
@snippet3
)
end
it
"does not return private snippets for non project members"
do
snippets
=
SnippetsFinder
.
new
.
execute
(
user
,
filter: :by_project
,
project:
project1
,
scope:
"are_private"
)
snippets
=
described_class
.
new
.
execute
(
user
,
filter: :by_project
,
project:
project1
,
scope:
"are_private"
)
expect
(
snippets
).
not_to
include
(
@snippet1
,
@snippet2
,
@snippet3
)
end
it
"returns all snippets for project members"
do
project1
.
team
<<
[
user
,
:developer
]
snippets
=
SnippetsFinder
.
new
.
execute
(
user
,
filter: :by_project
,
project:
project1
)
snippets
=
described_class
.
new
.
execute
(
user
,
filter: :by_project
,
project:
project1
)
expect
(
snippets
).
to
include
(
@snippet1
,
@snippet2
,
@snippet3
)
end
it
"returns private snippets for project members"
do
project1
.
team
<<
[
user
,
:developer
]
snippets
=
SnippetsFinder
.
new
.
execute
(
user
,
filter: :by_project
,
project:
project1
,
scope:
"are_private"
)
snippets
=
described_class
.
new
.
execute
(
user
,
filter: :by_project
,
project:
project1
,
scope:
"are_private"
)
expect
(
snippets
).
to
include
(
@snippet1
)
end
end
...
...
spec/lib/banzai/renderer_spec.rb
View file @
d4976829
...
...
@@ -11,7 +11,7 @@ describe Banzai::Renderer do
end
describe
'#render_field'
do
let
(
:renderer
)
{
Banzai
::
Renderer
}
let
(
:renderer
)
{
described_class
}
subject
{
renderer
.
render_field
(
object
,
:field
)
}
context
'with a stale cache'
do
...
...
spec/lib/gitlab/changes_list_spec.rb
View file @
d4976829
...
...
@@ -5,7 +5,7 @@ describe Gitlab::ChangesList do
let
(
:invalid_changes
)
{
1
}
context
'when changes is a valid string'
do
let
(
:changes_list
)
{
Gitlab
::
ChangesList
.
new
(
valid_changes_string
)
}
let
(
:changes_list
)
{
described_class
.
new
(
valid_changes_string
)
}
it
'splits elements by newline character'
do
expect
(
changes_list
).
to
contain_exactly
({
...
...
spec/lib/gitlab/ci/build/credentials/factory_spec.rb
View file @
d4976829
...
...
@@ -3,14 +3,14 @@ require 'spec_helper'
describe
Gitlab
::
Ci
::
Build
::
Credentials
::
Factory
do
let
(
:build
)
{
create
(
:ci_build
,
name:
'spinach'
,
stage:
'test'
,
stage_idx:
0
)
}
subject
{
Gitlab
::
Ci
::
Build
::
Credentials
::
Factory
.
new
(
build
).
create!
}
subject
{
described_class
.
new
(
build
).
create!
}
class
TestProvider
def
initialize
(
build
);
end
end
before
do
allow_any_instance_of
(
Gitlab
::
Ci
::
Build
::
Credentials
::
Factory
).
to
receive
(
:providers
).
and_return
([
TestProvider
])
allow_any_instance_of
(
described_class
).
to
receive
(
:providers
).
and_return
([
TestProvider
])
end
context
'when provider is valid'
do
...
...
spec/lib/gitlab/ci/build/credentials/registry_spec.rb
View file @
d4976829
...
...
@@ -4,14 +4,14 @@ describe Gitlab::Ci::Build::Credentials::Registry do
let
(
:build
)
{
create
(
:ci_build
,
name:
'spinach'
,
stage:
'test'
,
stage_idx:
0
)
}
let
(
:registry_url
)
{
'registry.example.com:5005'
}
subject
{
Gitlab
::
Ci
::
Build
::
Credentials
::
Registry
.
new
(
build
)
}
subject
{
described_class
.
new
(
build
)
}
before
do
stub_container_registry_config
(
host_port:
registry_url
)
end
it
'contains valid DockerRegistry credentials'
do
expect
(
subject
).
to
be_kind_of
(
Gitlab
::
Ci
::
Build
::
Credentials
::
Registry
)
expect
(
subject
).
to
be_kind_of
(
described_class
)
expect
(
subject
.
username
).
to
eq
'gitlab-ci-token'
expect
(
subject
.
password
).
to
eq
build
.
token
...
...
@@ -20,7 +20,7 @@ describe Gitlab::Ci::Build::Credentials::Registry do
end
describe
'.valid?'
do
subject
{
Gitlab
::
Ci
::
Build
::
Credentials
::
Registry
.
new
(
build
).
valid?
}
subject
{
described_class
.
new
(
build
).
valid?
}
context
'when registry is enabled'
do
before
do
...
...
spec/lib/gitlab/current_settings_spec.rb
View file @
d4976829
...
...
@@ -10,7 +10,7 @@ describe Gitlab::CurrentSettings do
describe
'#current_application_settings'
do
context
'with DB available'
do
before
do
allow_any_instance_of
(
Gitlab
::
CurrentSetting
s
).
to
receive
(
:connect_to_db?
).
and_return
(
true
)
allow_any_instance_of
(
described_clas
s
).
to
receive
(
:connect_to_db?
).
and_return
(
true
)
end
it
'attempts to use cached values first'
do
...
...
@@ -36,7 +36,7 @@ describe Gitlab::CurrentSettings do
context
'with DB unavailable'
do
before
do
allow_any_instance_of
(
Gitlab
::
CurrentSetting
s
).
to
receive
(
:connect_to_db?
).
and_return
(
false
)
allow_any_instance_of
(
described_clas
s
).
to
receive
(
:connect_to_db?
).
and_return
(
false
)
end
it
'returns an in-memory ApplicationSetting object'
do
...
...
spec/lib/gitlab/cycle_analytics/base_event_fetcher_spec.rb
View file @
d4976829
...
...
@@ -20,7 +20,7 @@ describe Gitlab::CycleAnalytics::BaseEventFetcher do
before
do
allow_any_instance_of
(
Gitlab
::
ReferenceExtractor
).
to
receive
(
:issues
).
and_return
(
Issue
.
all
)
allow_any_instance_of
(
Gitlab
::
CycleAnalytics
::
BaseEventFetcher
).
to
receive
(
:serialize
)
do
|
event
|
allow_any_instance_of
(
described_class
).
to
receive
(
:serialize
)
do
|
event
|
event
end
...
...
spec/lib/gitlab/git/util_spec.rb
View file @
d4976829
...
...
@@ -9,7 +9,7 @@ describe Gitlab::Git::Util do
[
"foo
\n\n
"
,
2
],
].
each
do
|
string
,
line_count
|
it
"counts
#{
line_count
}
lines in
#{
string
.
inspect
}
"
do
expect
(
Gitlab
::
Git
::
Util
.
count_lines
(
string
)).
to
eq
(
line_count
)
expect
(
described_class
.
count_lines
(
string
)).
to
eq
(
line_count
)
end
end
end
...
...
spec/lib/gitlab/gitaly_client/ref_spec.rb
View file @
d4976829
...
...
@@ -3,7 +3,7 @@ require 'spec_helper'
describe
Gitlab
::
GitalyClient
::
Ref
do
let
(
:project
)
{
create
(
:empty_project
)
}
let
(
:repo_path
)
{
project
.
repository
.
path_to_repo
}
let
(
:client
)
{
Gitlab
::
GitalyClient
::
Ref
.
new
(
project
.
repository
)
}
let
(
:client
)
{
described_class
.
new
(
project
.
repository
)
}
before
do
allow
(
Gitlab
.
config
.
gitaly
).
to
receive
(
:enabled
).
and_return
(
true
)
...
...
spec/lib/gitlab/ldap/person_spec.rb
View file @
d4976829
...
...
@@ -20,7 +20,7 @@ describe Gitlab::LDAP::Person do
it
'uses the configured name attribute and handles values as an array'
do
name
=
'John Doe'
entry
[
'cn'
]
=
[
name
]
person
=
Gitlab
::
LDAP
::
Person
.
new
(
entry
,
'ldapmain'
)
person
=
described_class
.
new
(
entry
,
'ldapmain'
)
expect
(
person
.
name
).
to
eq
(
name
)
end
...
...
@@ -30,7 +30,7 @@ describe Gitlab::LDAP::Person do
it
'returns the value of mail, if present'
do
mail
=
'john@example.com'
entry
[
'mail'
]
=
mail
person
=
Gitlab
::
LDAP
::
Person
.
new
(
entry
,
'ldapmain'
)
person
=
described_class
.
new
(
entry
,
'ldapmain'
)
expect
(
person
.
email
).
to
eq
([
mail
])
end
...
...
@@ -38,7 +38,7 @@ describe Gitlab::LDAP::Person do
it
'returns the value of userPrincipalName, if mail and email are not present'
do
user_principal_name
=
'john.doe@example.com'
entry
[
'userPrincipalName'
]
=
user_principal_name
person
=
Gitlab
::
LDAP
::
Person
.
new
(
entry
,
'ldapmain'
)
person
=
described_class
.
new
(
entry
,
'ldapmain'
)
expect
(
person
.
email
).
to
eq
([
user_principal_name
])
end
...
...
spec/lib/gitlab/metrics_spec.rb
View file @
d4976829
...
...
@@ -20,7 +20,7 @@ describe Gitlab::Metrics do
expect
(
pool
).
to
receive
(
:with
).
and_yield
(
connection
)
expect
(
connection
).
to
receive
(
:write_points
).
with
(
an_instance_of
(
Array
))
expect
(
Gitlab
::
Metric
s
).
to
receive
(
:pool
).
and_return
(
pool
)
expect
(
described_clas
s
).
to
receive
(
:pool
).
and_return
(
pool
)
described_class
.
submit_metrics
([{
'series'
=>
'kittens'
,
'tags'
=>
{}
}])
end
...
...
@@ -64,7 +64,7 @@ describe Gitlab::Metrics do
describe
'.measure'
do
context
'without a transaction'
do
it
'returns the return value of the block'
do
val
=
Gitlab
::
Metric
s
.
measure
(
:foo
)
{
10
}
val
=
described_clas
s
.
measure
(
:foo
)
{
10
}
expect
(
val
).
to
eq
(
10
)
end
...
...
@@ -74,7 +74,7 @@ describe Gitlab::Metrics do
let
(
:transaction
)
{
Gitlab
::
Metrics
::
Transaction
.
new
}
before
do
allow
(
Gitlab
::
Metric
s
).
to
receive
(
:current_transaction
).
allow
(
described_clas
s
).
to
receive
(
:current_transaction
).
and_return
(
transaction
)
end
...
...
@@ -88,11 +88,11 @@ describe Gitlab::Metrics do
expect
(
transaction
).
to
receive
(
:increment
).
with
(
'foo_call_count'
,
1
)
Gitlab
::
Metric
s
.
measure
(
:foo
)
{
10
}
described_clas
s
.
measure
(
:foo
)
{
10
}
end
it
'returns the return value of the block'
do
val
=
Gitlab
::
Metric
s
.
measure
(
:foo
)
{
10
}
val
=
described_clas
s
.
measure
(
:foo
)
{
10
}
expect
(
val
).
to
eq
(
10
)
end
...
...
@@ -105,7 +105,7 @@ describe Gitlab::Metrics do
expect_any_instance_of
(
Gitlab
::
Metrics
::
Transaction
).
not_to
receive
(
:add_tag
)
Gitlab
::
Metric
s
.
tag_transaction
(
:foo
,
'bar'
)
described_clas
s
.
tag_transaction
(
:foo
,
'bar'
)
end
end
...
...
@@ -113,13 +113,13 @@ describe Gitlab::Metrics do
let
(
:transaction
)
{
Gitlab
::
Metrics
::
Transaction
.
new
}
it
'adds the tag to the transaction'
do
expect
(
Gitlab
::
Metric
s
).
to
receive
(
:current_transaction
).
expect
(
described_clas
s
).
to
receive
(
:current_transaction
).
and_return
(
transaction
)
expect
(
transaction
).
to
receive
(
:add_tag
).
with
(
:foo
,
'bar'
)
Gitlab
::
Metric
s
.
tag_transaction
(
:foo
,
'bar'
)
described_clas
s
.
tag_transaction
(
:foo
,
'bar'
)
end
end
end
...
...
@@ -130,7 +130,7 @@ describe Gitlab::Metrics do
expect_any_instance_of
(
Gitlab
::
Metrics
::
Transaction
).
not_to
receive
(
:action
=
)
Gitlab
::
Metric
s
.
action
=
'foo'
described_clas
s
.
action
=
'foo'
end
end
...
...
@@ -138,12 +138,12 @@ describe Gitlab::Metrics do
it
'sets the action of a transaction'
do
trans
=
Gitlab
::
Metrics
::
Transaction
.
new
expect
(
Gitlab
::
Metric
s
).
to
receive
(
:current_transaction
).
expect
(
described_clas
s
).
to
receive
(
:current_transaction
).
and_return
(
trans
)
expect
(
trans
).
to
receive
(
:action
=
).
with
(
'foo'
)
Gitlab
::
Metric
s
.
action
=
'foo'
described_clas
s
.
action
=
'foo'
end
end
end
...
...
@@ -160,7 +160,7 @@ describe Gitlab::Metrics do
expect_any_instance_of
(
Gitlab
::
Metrics
::
Transaction
).
not_to
receive
(
:add_event
)
Gitlab
::
Metric
s
.
add_event
(
:meow
)
described_clas
s
.
add_event
(
:meow
)
end
end
...
...
@@ -170,10 +170,10 @@ describe Gitlab::Metrics do
expect
(
transaction
).
to
receive
(
:add_event
).
with
(
:meow
)
expect
(
Gitlab
::
Metric
s
).
to
receive
(
:current_transaction
).
expect
(
described_clas
s
).
to
receive
(
:current_transaction
).
and_return
(
transaction
)
Gitlab
::
Metric
s
.
add_event
(
:meow
)
described_clas
s
.
add_event
(
:meow
)
end
end
end
...
...
spec/lib/gitlab/sidekiq_throttler_spec.rb
View file @
d4976829
...
...
@@ -13,14 +13,14 @@ describe Gitlab::SidekiqThrottler do
describe
'#execute!'
do
it
'sets limits on the selected queues'
do
Gitlab
::
SidekiqThrottler
.
execute!
described_class
.
execute!
expect
(
Sidekiq
::
Queue
[
'build'
].
limit
).
to
eq
4
expect
(
Sidekiq
::
Queue
[
'project_cache'
].
limit
).
to
eq
4
end
it
'does not set limits on other queues'
do
Gitlab
::
SidekiqThrottler
.
execute!
described_class
.
execute!
expect
(
Sidekiq
::
Queue
[
'merge'
].
limit
).
to
be_nil
end
...
...
spec/lib/gitlab/slash_commands/dsl_spec.rb
View file @
d4976829
...
...
@@ -3,7 +3,7 @@ require 'spec_helper'
describe
Gitlab
::
SlashCommands
::
Dsl
do
before
:all
do
DummyClass
=
Struct
.
new
(
:project
)
do
include
Gitlab
::
SlashCommands
::
Dsl
include
Gitlab
::
SlashCommands
::
Dsl
# rubocop:disable RSpec/DescribedClass
desc
'A command with no args'
command
:no_args
,
:none
do
...
...
spec/lib/gitlab/template/gitignore_template_spec.rb
View file @
d4976829
...
...
@@ -24,7 +24,7 @@ describe Gitlab::Template::GitignoreTemplate do
it
'returns the Gitignore object of a valid file'
do
ruby
=
subject
.
find
(
'Ruby'
)
expect
(
ruby
).
to
be_a
Gitlab
::
Template
::
GitignoreTemplate
expect
(
ruby
).
to
be_a
described_class
expect
(
ruby
.
name
).
to
eq
(
'Ruby'
)
end
end
...
...
spec/lib/gitlab/template/gitlab_ci_yml_template_spec.rb
View file @
d4976829
...
...
@@ -25,7 +25,7 @@ describe Gitlab::Template::GitlabCiYmlTemplate do
it
'returns the GitlabCiYml object of a valid file'
do
ruby
=
subject
.
find
(
'Ruby'
)
expect
(
ruby
).
to
be_a
Gitlab
::
Template
::
GitlabCiYmlTemplate
expect
(
ruby
).
to
be_a
described_class
expect
(
ruby
.
name
).
to
eq
(
'Ruby'
)
end
end
...
...
spec/lib/gitlab/template/issue_template_spec.rb
View file @
d4976829
...
...
@@ -37,7 +37,7 @@ describe Gitlab::Template::IssueTemplate do
it
'returns the issue object of a valid file'
do
ruby
=
subject
.
find
(
'bug'
,
project
)
expect
(
ruby
).
to
be_a
Gitlab
::
Template
::
IssueTemplate
expect
(
ruby
).
to
be_a
described_class
expect
(
ruby
.
name
).
to
eq
(
'bug'
)
end
end
...
...
spec/lib/gitlab/template/merge_request_template_spec.rb
View file @
d4976829
...
...
@@ -37,7 +37,7 @@ describe Gitlab::Template::MergeRequestTemplate do
it
'returns the merge request object of a valid file'
do
ruby
=
subject
.
find
(
'bug'
,
project
)
expect
(
ruby
).
to
be_a
Gitlab
::
Template
::
MergeRequestTemplate
expect
(
ruby
).
to
be_a
described_class
expect
(
ruby
.
name
).
to
eq
(
'bug'
)
end
end
...
...
spec/lib/gitlab/usage_data_spec.rb
View file @
d4976829
...
...
@@ -6,7 +6,7 @@ describe Gitlab::UsageData do
let!
(
:board
)
{
create
(
:board
,
project:
project
)
}
describe
'#data'
do
subject
{
Gitlab
::
UsageData
.
data
}
subject
{
described_class
.
data
}
it
"gathers usage data"
do
expect
(
subject
.
keys
).
to
match_array
(
%i(
...
...
@@ -58,7 +58,7 @@ describe Gitlab::UsageData do
end
describe
'#license_usage_data'
do
subject
{
Gitlab
::
UsageData
.
license_usage_data
}
subject
{
described_class
.
license_usage_data
}
it
"gathers license data"
do
expect
(
subject
[
:uuid
]).
to
eq
(
current_application_settings
.
uuid
)
...
...
spec/mailers/notify_spec.rb
View file @
d4976829
This diff is collapsed.
Click to expand it.
spec/requests/api/helpers/internal_helpers_spec.rb
View file @
d4976829
require
'spec_helper'
describe
::
API
::
Helpers
::
InternalHelpers
do
include
::
API
::
Helpers
::
InternalHelper
s
include
described_clas
s
describe
'.clean_project_path'
do
project
=
'namespace/project'
...
...
spec/requests/api/helpers_spec.rb
View file @
d4976829
...
...
@@ -2,7 +2,7 @@ require 'spec_helper'
describe
API
::
Helpers
do
include
API
::
APIGuard
::
HelperMethods
include
API
::
Helper
s
include
described_clas
s
include
SentryHelper
let
(
:user
)
{
create
(
:user
)
}
...
...
spec/services/merge_requests/get_urls_service_spec.rb
View file @
d4976829
...
...
@@ -2,7 +2,7 @@ require "spec_helper"
describe
MergeRequests
::
GetUrlsService
do
let
(
:project
)
{
create
(
:project
,
:public
,
:repository
)
}
let
(
:service
)
{
MergeRequests
::
GetUrlsService
.
new
(
project
)
}
let
(
:service
)
{
described_class
.
new
(
project
)
}
let
(
:source_branch
)
{
"my_branch"
}
let
(
:new_merge_request_url
)
{
"http://
#{
Gitlab
.
config
.
gitlab
.
host
}
/
#{
project
.
namespace
.
name
}
/
#{
project
.
path
}
/merge_requests/new?merge_request%5Bsource_branch%5D=
#{
source_branch
}
"
}
let
(
:show_merge_request_url
)
{
"http://
#{
Gitlab
.
config
.
gitlab
.
host
}
/
#{
project
.
namespace
.
name
}
/
#{
project
.
path
}
/merge_requests/
#{
merge_request
.
iid
}
"
}
...
...
@@ -89,7 +89,7 @@ describe MergeRequests::GetUrlsService do
let!
(
:merge_request
)
{
create
(
:merge_request
,
source_project:
forked_project
,
target_project:
project
,
source_branch:
source_branch
)
}
let
(
:changes
)
{
existing_branch_changes
}
# Source project is now the forked one
let
(
:service
)
{
MergeRequests
::
GetUrlsService
.
new
(
forked_project
)
}
let
(
:service
)
{
described_class
.
new
(
forked_project
)
}
before
do
allow
(
forked_project
).
to
receive
(
:empty_repo?
).
and_return
(
false
)
...
...
spec/services/merge_requests/merge_request_diff_cache_service_spec.rb
View file @
d4976829
require
'spec_helper'
describe
MergeRequests
::
MergeRequestDiffCacheService
do
let
(
:subject
)
{
MergeRequests
::
MergeRequestDiffCacheService
.
new
}
let
(
:subject
)
{
described_class
.
new
}
describe
'#execute'
do
it
'retrieves the diff files to cache the highlighted result'
do
...
...
spec/services/merge_requests/resolve_service_spec.rb
View file @
d4976829
...
...
@@ -50,7 +50,7 @@ describe MergeRequests::ResolveService do
context
'when the source and target project are the same'
do
before
do
MergeRequests
::
ResolveService
.
new
(
project
,
user
,
params
).
execute
(
merge_request
)
described_class
.
new
(
project
,
user
,
params
).
execute
(
merge_request
)
end
it
'creates a commit with the message'
do
...
...
@@ -75,7 +75,7 @@ describe MergeRequests::ResolveService do
end
before
do
MergeRequests
::
ResolveService
.
new
(
fork_project
,
user
,
params
).
execute
(
merge_request_from_fork
)
described_class
.
new
(
fork_project
,
user
,
params
).
execute
(
merge_request_from_fork
)
end
it
'creates a commit with the message'
do
...
...
@@ -115,7 +115,7 @@ describe MergeRequests::ResolveService do
end
before
do
MergeRequests
::
ResolveService
.
new
(
project
,
user
,
params
).
execute
(
merge_request
)
described_class
.
new
(
project
,
user
,
params
).
execute
(
merge_request
)
end
it
'creates a commit with the message'
do
...
...
@@ -154,7 +154,7 @@ describe MergeRequests::ResolveService do
}
end
let
(
:service
)
{
MergeRequests
::
ResolveService
.
new
(
project
,
user
,
invalid_params
)
}
let
(
:service
)
{
described_class
.
new
(
project
,
user
,
invalid_params
)
}
it
'raises a MissingResolution error'
do
expect
{
service
.
execute
(
merge_request
)
}.
...
...
@@ -180,7 +180,7 @@ describe MergeRequests::ResolveService do
}
end
let
(
:service
)
{
MergeRequests
::
ResolveService
.
new
(
project
,
user
,
invalid_params
)
}
let
(
:service
)
{
described_class
.
new
(
project
,
user
,
invalid_params
)
}
it
'raises a MissingResolution error'
do
expect
{
service
.
execute
(
merge_request
)
}.
...
...
@@ -202,7 +202,7 @@ describe MergeRequests::ResolveService do
}
end
let
(
:service
)
{
MergeRequests
::
ResolveService
.
new
(
project
,
user
,
invalid_params
)
}
let
(
:service
)
{
described_class
.
new
(
project
,
user
,
invalid_params
)
}
it
'raises a MissingFiles error'
do
expect
{
service
.
execute
(
merge_request
)
}.
...
...
spec/services/projects/housekeeping_service_spec.rb
View file @
d4976829
require
'spec_helper'
describe
Projects
::
HousekeepingService
do
subject
{
Projects
::
HousekeepingService
.
new
(
project
)
}
subject
{
described_class
.
new
(
project
)
}
let
(
:project
)
{
create
(
:project
,
:repository
)
}
before
do
...
...
spec/tasks/config_lint_spec.rb
View file @
d4976829
...
...
@@ -5,11 +5,11 @@ describe ConfigLint do
let
(
:files
){
[
'lib/support/fake.sh'
]
}
it
'errors out if any bash scripts have errors'
do
expect
{
ConfigLint
.
run
(
files
){
system
(
'exit 1'
)
}
}.
to
raise_error
(
SystemExit
)
expect
{
described_class
.
run
(
files
){
system
(
'exit 1'
)
}
}.
to
raise_error
(
SystemExit
)
end
it
'passes if all scripts are fine'
do
expect
{
ConfigLint
.
run
(
files
){
system
(
'exit 0'
)
}
}.
not_to
raise_error
expect
{
described_class
.
run
(
files
){
system
(
'exit 0'
)
}
}.
not_to
raise_error
end
end
...
...
spec/workers/delete_user_worker_spec.rb
View file @
d4976829
...
...
@@ -8,13 +8,13 @@ describe DeleteUserWorker do
expect_any_instance_of
(
Users
::
DestroyService
).
to
receive
(
:execute
).
with
(
user
,
{})
DeleteUserWorker
.
new
.
perform
(
current_user
.
id
,
user
.
id
)
described_class
.
new
.
perform
(
current_user
.
id
,
user
.
id
)
end
it
"uses symbolized keys"
do
expect_any_instance_of
(
Users
::
DestroyService
).
to
receive
(
:execute
).
with
(
user
,
test:
"test"
)
DeleteUserWorker
.
new
.
perform
(
current_user
.
id
,
user
.
id
,
"test"
=>
"test"
)
described_class
.
new
.
perform
(
current_user
.
id
,
user
.
id
,
"test"
=>
"test"
)
end
end
spec/workers/emails_on_push_worker_spec.rb
View file @
d4976829
...
...
@@ -12,7 +12,7 @@ describe EmailsOnPushWorker do
let
(
:perform
)
{
subject
.
perform
(
project
.
id
,
recipients
,
data
.
stringify_keys
)
}
let
(
:email
)
{
ActionMailer
::
Base
.
deliveries
.
last
}
subject
{
EmailsOnPushWorker
.
new
}
subject
{
described_class
.
new
}
describe
"#perform"
do
context
"when push is a new branch"
do
...
...
spec/workers/git_garbage_collect_worker_spec.rb
View file @
d4976829
...
...
@@ -6,7 +6,7 @@ describe GitGarbageCollectWorker do
let
(
:project
)
{
create
(
:project
,
:repository
)
}
let
(
:shell
)
{
Gitlab
::
Shell
.
new
}
subject
{
GitGarbageCollectWorker
.
new
}
subject
{
described_class
.
new
}
describe
"#perform"
do
it
"flushes ref caches when the task is 'gc'"
do
...
...
spec/workers/gitlab_usage_ping_worker_spec.rb
View file @
d4976829
require
'spec_helper'
describe
GitlabUsagePingWorker
do
subject
{
GitlabUsagePingWorker
.
new
}
subject
{
described_class
.
new
}
it
"sends POST request"
do
stub_application_setting
(
usage_ping_enabled:
true
)
...
...
spec/workers/group_destroy_worker_spec.rb
View file @
d4976829
...
...
@@ -5,7 +5,7 @@ describe GroupDestroyWorker do
let
(
:user
)
{
create
(
:admin
)
}
let!
(
:project
)
{
create
(
:empty_project
,
namespace:
group
)
}
subject
{
GroupDestroyWorker
.
new
}
subject
{
described_class
.
new
}
describe
"#perform"
do
it
"deletes the project"
do
...
...
spec/workers/merge_worker_spec.rb
View file @
d4976829
...
...
@@ -15,7 +15,7 @@ describe MergeWorker do
it
'clears cache of source repo after removing source branch'
do
expect
(
source_project
.
repository
.
branch_names
).
to
include
(
'markdown'
)
MergeWorker
.
new
.
perform
(
described_class
.
new
.
perform
(
merge_request
.
id
,
merge_request
.
author_id
,
commit_message:
'wow such merge'
,
should_remove_source_branch:
true
)
...
...
spec/workers/post_receive_spec.rb
View file @
d4976829
...
...
@@ -10,7 +10,7 @@ describe PostReceive do
context
"as a resque worker"
do
it
"reponds to #perform"
do
expect
(
PostReceive
.
new
).
to
respond_to
(
:perform
)
expect
(
described_class
.
new
).
to
respond_to
(
:perform
)
end
end
...
...
@@ -25,7 +25,7 @@ describe PostReceive do
it
"calls GitTagPushService"
do
expect_any_instance_of
(
GitPushService
).
to
receive
(
:execute
).
and_return
(
true
)
expect_any_instance_of
(
GitTagPushService
).
not_to
receive
(
:execute
)
PostReceive
.
new
.
perform
(
pwd
(
project
),
key_id
,
base64_changes
)
described_class
.
new
.
perform
(
pwd
(
project
),
key_id
,
base64_changes
)
end
end
...
...
@@ -35,7 +35,7 @@ describe PostReceive do
it
"calls GitTagPushService"
do
expect_any_instance_of
(
GitPushService
).
not_to
receive
(
:execute
)
expect_any_instance_of
(
GitTagPushService
).
to
receive
(
:execute
).
and_return
(
true
)
PostReceive
.
new
.
perform
(
pwd
(
project
),
key_id
,
base64_changes
)
described_class
.
new
.
perform
(
pwd
(
project
),
key_id
,
base64_changes
)
end
end
...
...
@@ -45,12 +45,12 @@ describe PostReceive do
it
"does not call any of the services"
do
expect_any_instance_of
(
GitPushService
).
not_to
receive
(
:execute
)
expect_any_instance_of
(
GitTagPushService
).
not_to
receive
(
:execute
)
PostReceive
.
new
.
perform
(
pwd
(
project
),
key_id
,
base64_changes
)
described_class
.
new
.
perform
(
pwd
(
project
),
key_id
,
base64_changes
)
end
end
context
"gitlab-ci.yml"
do
subject
{
PostReceive
.
new
.
perform
(
pwd
(
project
),
key_id
,
base64_changes
)
}
subject
{
described_class
.
new
.
perform
(
pwd
(
project
),
key_id
,
base64_changes
)
}
context
"creates a Ci::Pipeline for every change"
do
before
do
...
...
@@ -75,7 +75,7 @@ describe PostReceive do
context
"webhook"
do
it
"fetches the correct project"
do
expect
(
Project
).
to
receive
(
:find_by_full_path
).
with
(
project
.
path_with_namespace
).
and_return
(
project
)
PostReceive
.
new
.
perform
(
pwd
(
project
),
key_id
,
base64_changes
)
described_class
.
new
.
perform
(
pwd
(
project
),
key_id
,
base64_changes
)
end
it
"does not run if the author is not in the project"
do
...
...
@@ -85,7 +85,7 @@ describe PostReceive do
expect
(
project
).
not_to
receive
(
:execute_hooks
)
expect
(
PostReceive
.
new
.
perform
(
pwd
(
project
),
key_id
,
base64_changes
)).
to
be_falsey
expect
(
described_class
.
new
.
perform
(
pwd
(
project
),
key_id
,
base64_changes
)).
to
be_falsey
end
it
"asks the project to trigger all hooks"
do
...
...
@@ -93,14 +93,14 @@ describe PostReceive do
expect
(
project
).
to
receive
(
:execute_hooks
).
twice
expect
(
project
).
to
receive
(
:execute_services
).
twice
PostReceive
.
new
.
perform
(
pwd
(
project
),
key_id
,
base64_changes
)
described_class
.
new
.
perform
(
pwd
(
project
),
key_id
,
base64_changes
)
end
it
"enqueues a UpdateMergeRequestsWorker job"
do
allow
(
Project
).
to
receive
(
:find_by_full_path
).
and_return
(
project
)
expect
(
UpdateMergeRequestsWorker
).
to
receive
(
:perform_async
).
with
(
project
.
id
,
project
.
owner
.
id
,
any_args
)
PostReceive
.
new
.
perform
(
pwd
(
project
),
key_id
,
base64_changes
)
described_class
.
new
.
perform
(
pwd
(
project
),
key_id
,
base64_changes
)
end
end
...
...
spec/workers/project_destroy_worker_spec.rb
View file @
d4976829
...
...
@@ -4,7 +4,7 @@ describe ProjectDestroyWorker do
let
(
:project
)
{
create
(
:project
,
:repository
)
}
let
(
:path
)
{
project
.
repository
.
path_to_repo
}
subject
{
ProjectDestroyWorker
.
new
}
subject
{
described_class
.
new
}
describe
"#perform"
do
it
"deletes the project"
do
...
...
spec/workers/remove_expired_members_worker_spec.rb
View file @
d4976829
require
'spec_helper'
describe
RemoveExpiredMembersWorker
do
let
(
:worker
)
{
RemoveExpiredMembersWorker
.
new
}
let
(
:worker
)
{
described_class
.
new
}
describe
'#perform'
do
context
'project members'
do
...
...
spec/workers/remove_unreferenced_lfs_objects_worker_spec.rb
View file @
d4976829
require
'spec_helper'
describe
RemoveUnreferencedLfsObjectsWorker
do
let
(
:worker
)
{
RemoveUnreferencedLfsObjectsWorker
.
new
}
let
(
:worker
)
{
described_class
.
new
}
describe
'#perform'
do
let!
(
:unreferenced_lfs_object1
)
{
create
(
:lfs_object
,
oid:
'1'
)
}
...
...
spec/workers/repository_fork_worker_spec.rb
View file @
d4976829
...
...
@@ -5,7 +5,7 @@ describe RepositoryForkWorker do
let
(
:fork_project
)
{
create
(
:project
,
:repository
,
forked_from_project:
project
)
}
let
(
:shell
)
{
Gitlab
::
Shell
.
new
}
subject
{
RepositoryForkWorker
.
new
}
subject
{
described_class
.
new
}
before
do
allow
(
subject
).
to
receive
(
:gitlab_shell
).
and_return
(
shell
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment