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
420d8aa9
Commit
420d8aa9
authored
Jul 20, 2021
by
alinamihaila
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Added more tests
parent
9210e9da
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
36 additions
and
15 deletions
+36
-15
lib/gitlab/usage/metrics/instrumentations/generic_metric.rb
lib/gitlab/usage/metrics/instrumentations/generic_metric.rb
+6
-9
spec/lib/gitlab/usage/metrics/instrumentations/generic_metric_spec.rb
...lab/usage/metrics/instrumentations/generic_metric_spec.rb
+30
-6
No files found.
lib/gitlab/usage/metrics/instrumentations/generic_metric.rb
View file @
420d8aa9
...
...
@@ -15,22 +15,23 @@ module Gitlab
FALLBACK
=
-
1
class
<<
self
attr_reader
:metric_operation
attr_reader
:metric_operation
,
:metric_value
@metric_operation
=
:alt
def
fallback
(
custom_fallback
)
def
fallback
(
custom_fallback
=
FALLBACK
)
return
@metric_fallback
if
defined?
(
@metric_fallback
)
@metric_fallback
=
custom_fallback
end
def
value
(
&
block
)
@metric_value
=
block
end
attr_reader
:metric_value
,
:metric_fallback
end
def
value
alt_usage_data
(
fallback:
fallback
)
do
alt_usage_data
(
fallback:
self
.
class
.
fallback
)
do
self
.
class
.
metric_value
.
call
end
end
...
...
@@ -40,10 +41,6 @@ module Gitlab
self
.
class
.
metric_operation
)
end
def
fallback
self
.
class
.
metric_fallback
||
FALLBACK
end
end
end
end
...
...
spec/lib/gitlab/usage/metrics/instrumentations/generic_metric_spec.rb
View file @
420d8aa9
...
...
@@ -3,23 +3,23 @@
require
'spec_helper'
RSpec
.
describe
Gitlab
::
Usage
::
Metrics
::
Instrumentations
::
GenericMetric
do
context
'with custom fallback'
do
shared_examples
'custom fallback'
do
|
custom_fallback
|
subject
do
Class
.
new
(
described_class
)
do
fallback
(
-
2
)
fallback
(
custom_fallback
)
value
{
Gitlab
::
Database
.
version
}
end
.
new
(
time_frame:
'none'
)
end
describe
'#value'
do
it
'gives the correct value'
do
expect
(
subject
.
value
).
to
eq
(
Gitlab
::
Database
.
version
)
expect
(
subject
.
value
).
to
eq
(
Gitlab
::
Database
.
version
)
end
context
'when raising an exception'
do
it
'return the custom fallback'
do
expect
(
Gitlab
::
Database
).
to
receive
(
:version
).
and_raise
(
'Error'
)
expect
(
subject
.
value
).
to
eq
(
-
2
)
expect
(
subject
.
value
).
to
eq
(
custom_fallback
)
end
end
end
...
...
@@ -38,11 +38,35 @@ RSpec.describe Gitlab::Usage::Metrics::Instrumentations::GenericMetric do
end
context
'when raising an exception'
do
it
'return the
custom
fallback'
do
it
'return the
default
fallback'
do
expect
(
Gitlab
::
Database
).
to
receive
(
:version
).
and_raise
(
'Error'
)
expect
(
subject
.
value
).
to
eq
(
-
1
)
expect
(
subject
.
value
).
to
eq
(
described_class
::
FALLBACK
)
end
end
end
end
context
'with custom fallback -2'
do
it_behaves_like
'custom fallback'
,
-
2
end
context
'with custom fallback nil'
do
it_behaves_like
'custom fallback'
,
nil
end
context
'with custom fallback false'
do
it_behaves_like
'custom fallback'
,
false
end
context
'with custom fallback true'
do
it_behaves_like
'custom fallback'
,
true
end
context
'with custom fallback []'
do
it_behaves_like
'custom fallback'
,
[]
end
context
'with custom fallback { major: -1 }'
do
it_behaves_like
'custom fallback'
,
{
major:
-
1
}
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