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
86e1bcaa
Commit
86e1bcaa
authored
Feb 22, 2019
by
GitLab Bot
Browse files
Options
Browse Files
Download
Plain Diff
Automatic merge of gitlab-org/gitlab-ce master
parents
1de54c0c
6fa88ed7
Changes
5
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
56 additions
and
42 deletions
+56
-42
app/assets/javascripts/monitoring/components/charts/area.vue
app/assets/javascripts/monitoring/components/charts/area.vue
+1
-2
changelogs/unreleased/56477-units-are-appended-to-y-axis-label-on-metrics-dashboard.yml
...its-are-appended-to-y-axis-label-on-metrics-dashboard.yml
+5
-0
jest.config.js
jest.config.js
+1
-0
spec/frontend/gfm_auto_complete_spec.js
spec/frontend/gfm_auto_complete_spec.js
+47
-38
spec/javascripts/monitoring/charts/area_spec.js
spec/javascripts/monitoring/charts/area_spec.js
+2
-2
No files found.
app/assets/javascripts/monitoring/components/charts/area.vue
View file @
86e1bcaa
...
...
@@ -139,8 +139,7 @@ export default {
return
this
.
graphData
.
queries
.
map
(
query
=>
query
.
label
).
join
(
'
,
'
);
},
yAxisLabel
()
{
const
[
query
]
=
this
.
graphData
.
queries
;
return
`
${
this
.
graphData
.
y_label
}
(
${
query
.
unit
}
)`
;
return
`
${
this
.
graphData
.
y_label
}
`
;
},
},
watch
:
{
...
...
changelogs/unreleased/56477-units-are-appended-to-y-axis-label-on-metrics-dashboard.yml
0 → 100644
View file @
86e1bcaa
---
title
:
Remove duplicate units from metrics graph
merge_request
:
25485
author
:
type
:
fixed
jest.config.js
View file @
86e1bcaa
...
...
@@ -19,6 +19,7 @@ module.exports = {
'
^~(.*)$
'
:
'
<rootDir>/app/assets/javascripts$1
'
,
'
^ee(.*)$
'
:
'
<rootDir>/ee/app/assets/javascripts$1
'
,
'
^helpers(.*)$
'
:
'
<rootDir>/spec/frontend/helpers$1
'
,
'
^vendor(.*)$
'
:
'
<rootDir>/vendor/assets/javascripts$1
'
,
},
collectCoverageFrom
:
[
'
<rootDir>/app/assets/javascripts/**/*.{js,vue}
'
],
coverageDirectory
:
'
<rootDir>/coverage-frontend/
'
,
...
...
spec/
javascripts
/gfm_auto_complete_spec.js
→
spec/
frontend
/gfm_auto_complete_spec.js
View file @
86e1bcaa
...
...
@@ -6,58 +6,62 @@ import GfmAutoComplete from '~/gfm_auto_complete';
import
'
vendor/jquery.caret
'
;
import
'
vendor/jquery.atwho
'
;
describe
(
'
GfmAutoComplete
'
,
function
()
{
describe
(
'
GfmAutoComplete
'
,
()
=>
{
const
gfmAutoCompleteCallbacks
=
GfmAutoComplete
.
prototype
.
getDefaultCallbacks
.
call
({
fetchData
:
()
=>
{},
});
describe
(
'
DefaultOptions.sorter
'
,
function
()
{
describe
(
'
assets loading
'
,
function
()
{
beforeEach
(
function
()
{
spyOn
(
GfmAutoComplete
,
'
isLoading
'
).
and
.
returnValue
(
true
);
let
atwhoInstance
;
let
items
;
let
sorterValue
;
this
.
atwhoInstance
=
{
setting
:
{}
};
this
.
items
=
[];
describe
(
'
DefaultOptions.sorter
'
,
()
=>
{
describe
(
'
assets loading
'
,
()
=>
{
beforeEach
(()
=>
{
jest
.
spyOn
(
GfmAutoComplete
,
'
isLoading
'
).
mockReturnValue
(
true
);
this
.
sorterValue
=
gfmAutoCompleteCallbacks
.
sorter
.
call
(
this
.
atwhoInstance
,
''
,
this
.
items
);
atwhoInstance
=
{
setting
:
{}
};
items
=
[];
sorterValue
=
gfmAutoCompleteCallbacks
.
sorter
.
call
(
atwhoInstance
,
''
,
items
);
});
it
(
'
should disable highlightFirst
'
,
function
()
{
expect
(
this
.
atwhoInstance
.
setting
.
highlightFirst
).
toBe
(
false
);
it
(
'
should disable highlightFirst
'
,
()
=>
{
expect
(
atwhoInstance
.
setting
.
highlightFirst
).
toBe
(
false
);
});
it
(
'
should return the passed unfiltered items
'
,
function
()
{
expect
(
this
.
sorterValue
).
toEqual
(
this
.
items
);
it
(
'
should return the passed unfiltered items
'
,
()
=>
{
expect
(
sorterValue
).
toEqual
(
items
);
});
});
describe
(
'
assets finished loading
'
,
function
()
{
beforeEach
(
function
()
{
spyOn
(
GfmAutoComplete
,
'
isLoading
'
).
and
.
r
eturnValue
(
false
);
spyOn
(
$
.
fn
.
atwho
.
default
.
callbacks
,
'
sorter
'
);
describe
(
'
assets finished loading
'
,
()
=>
{
beforeEach
(
()
=>
{
jest
.
spyOn
(
GfmAutoComplete
,
'
isLoading
'
).
mockR
eturnValue
(
false
);
jest
.
spyOn
(
$
.
fn
.
atwho
.
default
.
callbacks
,
'
sorter
'
).
mockImplementation
(()
=>
{}
);
});
it
(
'
should enable highlightFirst if alwaysHighlightFirst is set
'
,
function
()
{
const
atwhoInstance
=
{
setting
:
{
alwaysHighlightFirst
:
true
}
};
it
(
'
should enable highlightFirst if alwaysHighlightFirst is set
'
,
()
=>
{
atwhoInstance
=
{
setting
:
{
alwaysHighlightFirst
:
true
}
};
gfmAutoCompleteCallbacks
.
sorter
.
call
(
atwhoInstance
);
expect
(
atwhoInstance
.
setting
.
highlightFirst
).
toBe
(
true
);
});
it
(
'
should enable highlightFirst if a query is present
'
,
function
()
{
const
atwhoInstance
=
{
setting
:
{}
};
it
(
'
should enable highlightFirst if a query is present
'
,
()
=>
{
atwhoInstance
=
{
setting
:
{}
};
gfmAutoCompleteCallbacks
.
sorter
.
call
(
atwhoInstance
,
'
query
'
);
expect
(
atwhoInstance
.
setting
.
highlightFirst
).
toBe
(
true
);
});
it
(
'
should call the default atwho sorter
'
,
function
()
{
const
atwhoInstance
=
{
setting
:
{}
};
it
(
'
should call the default atwho sorter
'
,
()
=>
{
atwhoInstance
=
{
setting
:
{}
};
const
query
=
'
query
'
;
const
items
=
[];
items
=
[];
const
searchKey
=
'
searchKey
'
;
gfmAutoCompleteCallbacks
.
sorter
.
call
(
atwhoInstance
,
query
,
items
,
searchKey
);
...
...
@@ -71,7 +75,9 @@ describe('GfmAutoComplete', function() {
const
beforeInsert
=
(
context
,
value
)
=>
gfmAutoCompleteCallbacks
.
beforeInsert
.
call
(
context
,
value
);
const
atwhoInstance
=
{
setting
:
{
skipSpecialCharacterTest
:
false
}
};
beforeEach
(()
=>
{
atwhoInstance
=
{
setting
:
{
skipSpecialCharacterTest
:
false
}
};
});
it
(
'
should not quote if value only contains alphanumeric charecters
'
,
()
=>
{
expect
(
beforeInsert
(
atwhoInstance
,
'
@user1
'
)).
toBe
(
'
@user1
'
);
...
...
@@ -96,7 +102,7 @@ describe('GfmAutoComplete', function() {
});
});
describe
(
'
DefaultOptions.matcher
'
,
function
()
{
describe
(
'
DefaultOptions.matcher
'
,
()
=>
{
const
defaultMatcher
=
(
context
,
flag
,
subtext
)
=>
gfmAutoCompleteCallbacks
.
matcher
.
call
(
context
,
flag
,
subtext
);
...
...
@@ -108,7 +114,10 @@ describe('GfmAutoComplete', function() {
hash
[
el
]
=
null
;
return
hash
;
},
{});
const
atwhoInstance
=
{
setting
:
{},
app
:
{
controllers
:
flagsHash
}
};
beforeEach
(()
=>
{
atwhoInstance
=
{
setting
:
{},
app
:
{
controllers
:
flagsHash
}
};
});
const
minLen
=
1
;
const
maxLen
=
20
;
...
...
@@ -182,38 +191,38 @@ describe('GfmAutoComplete', function() {
});
});
describe
(
'
isLoading
'
,
function
()
{
it
(
'
should be true with loading data object item
'
,
function
()
{
describe
(
'
isLoading
'
,
()
=>
{
it
(
'
should be true with loading data object item
'
,
()
=>
{
expect
(
GfmAutoComplete
.
isLoading
({
name
:
'
loading
'
})).
toBe
(
true
);
});
it
(
'
should be true with loading data array
'
,
function
()
{
it
(
'
should be true with loading data array
'
,
()
=>
{
expect
(
GfmAutoComplete
.
isLoading
([
'
loading
'
])).
toBe
(
true
);
});
it
(
'
should be true with loading data object array
'
,
function
()
{
it
(
'
should be true with loading data object array
'
,
()
=>
{
expect
(
GfmAutoComplete
.
isLoading
([{
name
:
'
loading
'
}])).
toBe
(
true
);
});
it
(
'
should be false with actual array data
'
,
function
()
{
it
(
'
should be false with actual array data
'
,
()
=>
{
expect
(
GfmAutoComplete
.
isLoading
([{
title
:
'
Foo
'
},
{
title
:
'
Bar
'
},
{
title
:
'
Qux
'
}]),
).
toBe
(
false
);
});
it
(
'
should be false with actual data item
'
,
function
()
{
it
(
'
should be false with actual data item
'
,
()
=>
{
expect
(
GfmAutoComplete
.
isLoading
({
title
:
'
Foo
'
})).
toBe
(
false
);
});
});
describe
(
'
Issues.insertTemplateFunction
'
,
function
()
{
it
(
'
should return default template
'
,
function
()
{
describe
(
'
Issues.insertTemplateFunction
'
,
()
=>
{
it
(
'
should return default template
'
,
()
=>
{
expect
(
GfmAutoComplete
.
Issues
.
insertTemplateFunction
({
id
:
5
,
title
:
'
Some Issue
'
})).
toBe
(
'
${atwho-at}${id}
'
,
// eslint-disable-line no-template-curly-in-string
);
});
it
(
'
should return reference when reference is set
'
,
function
()
{
it
(
'
should return reference when reference is set
'
,
()
=>
{
expect
(
GfmAutoComplete
.
Issues
.
insertTemplateFunction
({
id
:
5
,
...
...
@@ -224,14 +233,14 @@ describe('GfmAutoComplete', function() {
});
});
describe
(
'
Issues.templateFunction
'
,
function
()
{
it
(
'
should return html with id and title
'
,
function
()
{
describe
(
'
Issues.templateFunction
'
,
()
=>
{
it
(
'
should return html with id and title
'
,
()
=>
{
expect
(
GfmAutoComplete
.
Issues
.
templateFunction
({
id
:
5
,
title
:
'
Some Issue
'
})).
toBe
(
'
<li><small>5</small> Some Issue</li>
'
,
);
});
it
(
'
should replace id with reference if reference is set
'
,
function
()
{
it
(
'
should replace id with reference if reference is set
'
,
()
=>
{
expect
(
GfmAutoComplete
.
Issues
.
templateFunction
({
id
:
5
,
...
...
spec/javascripts/monitoring/charts/area_spec.js
View file @
86e1bcaa
...
...
@@ -127,7 +127,7 @@ describe('Area component', () => {
});
it
(
'
formats tooltip content
'
,
()
=>
{
expect
(
areaChart
.
vm
.
tooltip
.
content
).
toBe
(
'
CPU
(Cores)
5.556
'
);
expect
(
areaChart
.
vm
.
tooltip
.
content
).
toBe
(
'
CPU 5.556
'
);
});
});
...
...
@@ -213,7 +213,7 @@ describe('Area component', () => {
describe
(
'
yAxisLabel
'
,
()
=>
{
it
(
'
constructs a label for the chart y-axis
'
,
()
=>
{
expect
(
areaChart
.
vm
.
yAxisLabel
).
toBe
(
'
CPU
(Cores)
'
);
expect
(
areaChart
.
vm
.
yAxisLabel
).
toBe
(
'
CPU
'
);
});
});
});
...
...
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