Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
G
gitlab-ce
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
1
Merge Requests
1
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
gitlab-ce
Commits
ecdbde3d
Commit
ecdbde3d
authored
May 26, 2017
by
Gabriel Mazetto
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Improve Specs and some fixes
parent
27e63275
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
198 additions
and
8 deletions
+198
-8
lib/system_check/base_check.rb
lib/system_check/base_check.rb
+3
-1
lib/system_check/simple_executor.rb
lib/system_check/simple_executor.rb
+6
-6
lib/tasks/gitlab/task_helpers.rb
lib/tasks/gitlab/task_helpers.rb
+0
-1
spec/lib/system_check/simple_executor_spec.rb
spec/lib/system_check/simple_executor_spec.rb
+179
-0
spec/lib/system_check_spec.rb
spec/lib/system_check_spec.rb
+5
-0
spec/support/rake_helpers.rb
spec/support/rake_helpers.rb
+5
-0
No files found.
lib/system_check/base_check.rb
View file @
ecdbde3d
require
'tasks/gitlab/task_helpers'
module
SystemCheck
# Base class for Checks. You must inherit from here
# and implement the methods below when necessary
class
BaseCheck
include
::
Gitlab
::
TaskHelpers
include
Helpers
include
::
SystemCheck
::
Helpers
# Define a custom term for when check passed
#
...
...
lib/system_check/simple_executor.rb
View file @
ecdbde3d
...
...
@@ -24,17 +24,17 @@ module SystemCheck
c
=
check
.
new
# When implements a multi check, we don't control the output
if
c
.
is_multi_check?
c
.
multi_check
return
end
# When implements skip method, we run it first, and if true, skip the check
if
c
.
can_skip?
&&
c
.
skip?
$stdout
.
puts
check
.
skip_reason
.
color
(
:magenta
)
return
end
# When implements a multi check, we don't control the output
if
c
.
is_multi_check?
c
.
multi_check
return
end
if
c
.
check?
$stdout
.
puts
check
.
check_pass
.
color
(
:green
)
...
...
lib/tasks/gitlab/task_helpers.rb
View file @
ecdbde3d
...
...
@@ -113,7 +113,6 @@ module Gitlab
end
end
# TODO: MIGRATED
# Tries to configure git itself
#
# Returns true if all subcommands were successfull (according to their exit code)
...
...
spec/lib/system_check/simple_executor_spec.rb
0 → 100644
View file @
ecdbde3d
require
'spec_helper'
require
'rake_helper'
describe
SystemCheck
::
SimpleExecutor
,
lib:
true
do
class
SimpleCheck
<
SystemCheck
::
BaseCheck
set_name
'my simple check'
def
check?
true
end
end
class
OtherCheck
<
SystemCheck
::
BaseCheck
set_name
'other check'
def
check?
false
end
def
show_error
$stdout
.
puts
'this is an error text'
end
end
class
SkipCheck
<
SystemCheck
::
BaseCheck
set_name
'skip check'
set_skip_reason
'this is a skip reason'
def
skip?
true
end
def
check?
raise
'should not execute this'
end
end
class
MultiCheck
<
SystemCheck
::
BaseCheck
set_name
'multi check'
def
multi_check
$stdout
.
puts
'this is a multi output check'
end
def
check?
raise
'should not execute this'
end
end
class
SkipMultiCheck
<
SystemCheck
::
BaseCheck
set_name
'skip multi check'
def
skip?
true
end
def
multi_check
raise
'should not execute this'
end
end
class
RepairCheck
<
SystemCheck
::
BaseCheck
set_name
'repair check'
def
check?
false
end
def
repair!
true
end
def
show_error
$stdout
.
puts
'this is an error message'
end
end
subject
{
described_class
.
new
(
'Test'
)
}
describe
'#execute'
do
before
do
silence_output
subject
<<
SimpleCheck
subject
<<
OtherCheck
end
it
'runs included checks'
do
expect
(
subject
).
to
receive
(
:run_check
).
with
(
SimpleCheck
)
expect
(
subject
).
to
receive
(
:run_check
).
with
(
OtherCheck
)
subject
.
execute
end
end
describe
'#run_check'
do
it
'prints check name'
do
expect
(
SimpleCheck
).
to
receive
(
:display_name
).
and_call_original
expect
{
subject
.
run_check
(
SimpleCheck
)
}.
to
output
(
/my simple check/
).
to_stdout
end
context
'when check pass'
do
it
'prints yes'
do
expect_any_instance_of
(
SimpleCheck
).
to
receive
(
:check?
).
and_call_original
expect
{
subject
.
run_check
(
SimpleCheck
)
}.
to
output
(
/ \.\.\. yes/
).
to_stdout
end
end
context
'when check fails'
do
it
'prints no'
do
expect_any_instance_of
(
OtherCheck
).
to
receive
(
:check?
).
and_call_original
expect
{
subject
.
run_check
(
OtherCheck
)
}.
to
output
(
/ \.\.\. no/
).
to_stdout
end
it
'displays error message from #show_error'
do
expect_any_instance_of
(
OtherCheck
).
to
receive
(
:show_error
).
and_call_original
expect
{
subject
.
run_check
(
OtherCheck
)
}.
to
output
(
/this is an error text/
).
to_stdout
end
context
'when check implements #repair!'
do
it
'executes #repair!'
do
expect_any_instance_of
(
RepairCheck
).
to
receive
(
:repair!
)
subject
.
run_check
(
RepairCheck
)
end
context
'when repair succeeds'
do
it
'does not execute #show_error'
do
expect_any_instance_of
(
RepairCheck
).
to
receive
(
:repair!
).
and_call_original
expect_any_instance_of
(
RepairCheck
).
not_to
receive
(
:show_error
)
subject
.
run_check
(
RepairCheck
)
end
end
context
'when repair fails'
do
it
'does not execute #show_error'
do
expect_any_instance_of
(
RepairCheck
).
to
receive
(
:repair!
)
{
false
}
expect_any_instance_of
(
RepairCheck
).
to
receive
(
:show_error
)
subject
.
run_check
(
RepairCheck
)
end
end
end
end
context
'when check implements skip?'
do
it
'executes #skip? method'
do
expect_any_instance_of
(
SkipCheck
).
to
receive
(
:skip?
).
and_call_original
subject
.
run_check
(
SkipCheck
)
end
it
'displays #skip_reason'
do
expect
{
subject
.
run_check
(
SkipCheck
)
}.
to
output
(
/this is a skip reason/
).
to_stdout
end
it
'does not execute #check when #skip? is true'
do
expect_any_instance_of
(
SkipCheck
).
not_to
receive
(
:check?
)
subject
.
run_check
(
SkipCheck
)
end
end
context
'when implements a #multi_check'
do
it
'executes #multi_check method'
do
expect_any_instance_of
(
MultiCheck
).
to
receive
(
:multi_check
)
subject
.
run_check
(
MultiCheck
)
end
it
'does not execute #check method'
do
expect_any_instance_of
(
MultiCheck
).
not_to
receive
(
:check
)
subject
.
run_check
(
MultiCheck
)
end
context
'when check implements #skip?'
do
it
'executes #skip? method'
do
expect_any_instance_of
(
SkipMultiCheck
).
to
receive
(
:skip?
).
and_call_original
subject
.
run_check
(
SkipMultiCheck
)
end
end
end
end
end
spec/lib/system_check_spec.rb
View file @
ecdbde3d
require
'spec_helper'
require
'rake_helper'
describe
SystemCheck
,
lib:
true
do
subject
{
SystemCheck
}
before
do
silence_output
end
describe
'.run'
do
it
'requires custom executor to be a BasicExecutor'
do
expect
{
subject
.
run
(
'Component'
,
[],
SystemCheck
::
SimpleExecutor
)
}.
not_to
raise_error
...
...
spec/support/rake_helpers.rb
View file @
ecdbde3d
...
...
@@ -7,4 +7,9 @@ module RakeHelpers
def
stub_warn_user_is_not_gitlab
allow_any_instance_of
(
Object
).
to
receive
(
:warn_user_is_not_gitlab
)
end
def
silence_output
allow
(
$stdout
).
to
receive
(
:puts
)
allow
(
$stdout
).
to
receive
(
:print
)
end
end
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