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
4c58fd82
Commit
4c58fd82
authored
Jun 01, 2017
by
kushalpandya
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Tests for `PrometheusMetrics` class
parent
afc1a67d
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
166 additions
and
0 deletions
+166
-0
spec/javascripts/prometheus_metrics/mock_data.js
spec/javascripts/prometheus_metrics/mock_data.js
+41
-0
spec/javascripts/prometheus_metrics/prometheus_metrics_spec.js
...javascripts/prometheus_metrics/prometheus_metrics_spec.js
+125
-0
No files found.
spec/javascripts/prometheus_metrics/mock_data.js
0 → 100644
View file @
4c58fd82
export
const
metrics
=
[
{
group
:
'
Kubernetes
'
,
priority
:
1
,
active_metrics
:
4
,
metrics_missing_requirements
:
0
,
},
{
group
:
'
HAProxy
'
,
priority
:
2
,
active_metrics
:
3
,
metrics_missing_requirements
:
0
,
},
{
group
:
'
Apache
'
,
priority
:
3
,
active_metrics
:
5
,
metrics_missing_requirements
:
0
,
},
];
export
const
missingVarMetrics
=
[
{
group
:
'
Kubernetes
'
,
priority
:
1
,
active_metrics
:
4
,
metrics_missing_requirements
:
0
,
},
{
group
:
'
HAProxy
'
,
priority
:
2
,
active_metrics
:
3
,
metrics_missing_requirements
:
1
,
},
{
group
:
'
Apache
'
,
priority
:
3
,
active_metrics
:
5
,
metrics_missing_requirements
:
3
,
},
];
spec/javascripts/prometheus_metrics/prometheus_metrics_spec.js
0 → 100644
View file @
4c58fd82
import
PrometheusMetrics
from
'
~/prometheus_metrics/prometheus_metrics
'
;
import
{
metrics
,
missingVarMetrics
}
from
'
./mock_data
'
;
describe
(
'
PrometheusMetrics
'
,
()
=>
{
const
FIXTURE
=
'
services/prometheus_service.html.raw
'
;
preloadFixtures
(
FIXTURE
);
beforeEach
(()
=>
{
loadFixtures
(
FIXTURE
);
});
describe
(
'
constructor
'
,
()
=>
{
let
prometheusMetrics
;
beforeEach
(()
=>
{
prometheusMetrics
=
new
PrometheusMetrics
(
'
.js-prometheus-metrics-monitoring
'
);
});
it
(
'
should initialize wrapper element refs on class object
'
,
()
=>
{
expect
(
prometheusMetrics
.
$wrapper
).
toBeDefined
();
expect
(
prometheusMetrics
.
$monitoredMetricsPanel
).
toBeDefined
();
expect
(
prometheusMetrics
.
$monitoredMetricsCount
).
toBeDefined
();
expect
(
prometheusMetrics
.
$monitoredMetricsLoading
).
toBeDefined
();
expect
(
prometheusMetrics
.
$monitoredMetricsEmpty
).
toBeDefined
();
expect
(
prometheusMetrics
.
$monitoredMetricsList
).
toBeDefined
();
expect
(
prometheusMetrics
.
$missingEnvVarPanel
).
toBeDefined
();
expect
(
prometheusMetrics
.
$panelToggle
).
toBeDefined
();
expect
(
prometheusMetrics
.
$missingEnvVarMetricCount
).
toBeDefined
();
expect
(
prometheusMetrics
.
$missingEnvVarMetricsList
).
toBeDefined
();
});
it
(
'
should initialize metadata on class object
'
,
()
=>
{
expect
(
prometheusMetrics
.
backOffRequestCounter
).
toEqual
(
0
);
expect
(
prometheusMetrics
.
activeMetricsEndpoint
).
toContain
(
'
/test
'
);
});
});
describe
(
'
populateActiveMetrics
'
,
()
=>
{
let
prometheusMetrics
;
beforeEach
(()
=>
{
prometheusMetrics
=
new
PrometheusMetrics
(
'
.js-prometheus-metrics-monitoring
'
);
});
it
(
'
should show monitored metrics list
'
,
()
=>
{
prometheusMetrics
.
populateActiveMetrics
(
metrics
);
const
$metricsListLi
=
prometheusMetrics
.
$monitoredMetricsList
.
find
(
'
li
'
);
expect
(
prometheusMetrics
.
$monitoredMetricsLoading
.
hasClass
(
'
hidden
'
)).
toBeTruthy
();
expect
(
prometheusMetrics
.
$monitoredMetricsList
.
hasClass
(
'
hidden
'
)).
toBeFalsy
();
expect
(
prometheusMetrics
.
$monitoredMetricsCount
.
text
()).
toEqual
(
'
12
'
);
expect
(
$metricsListLi
.
length
).
toEqual
(
metrics
.
length
);
expect
(
$metricsListLi
.
first
().
find
(
'
.badge-count
'
).
text
()).
toEqual
(
`
${
metrics
[
0
].
active_metrics
}
`
);
});
it
(
'
should show missing environment variables list
'
,
()
=>
{
prometheusMetrics
.
populateActiveMetrics
(
missingVarMetrics
);
expect
(
prometheusMetrics
.
$monitoredMetricsLoading
.
hasClass
(
'
hidden
'
)).
toBeTruthy
();
expect
(
prometheusMetrics
.
$missingEnvVarPanel
.
hasClass
(
'
hidden
'
)).
toBeFalsy
();
expect
(
prometheusMetrics
.
$missingEnvVarMetricCount
.
text
()).
toEqual
(
'
2
'
);
expect
(
prometheusMetrics
.
$missingEnvVarPanel
.
find
(
'
li
'
).
length
).
toEqual
(
2
);
expect
(
prometheusMetrics
.
$missingEnvVarPanel
.
find
(
'
.flash-container
'
)).
toBeDefined
();
});
});
describe
(
'
loadActiveMetrics
'
,
()
=>
{
let
prometheusMetrics
;
beforeEach
(()
=>
{
prometheusMetrics
=
new
PrometheusMetrics
(
'
.js-prometheus-metrics-monitoring
'
);
});
it
(
'
should show loader animation while response is being loaded and hide it when request is complete
'
,
(
done
)
=>
{
const
deferred
=
$
.
Deferred
();
spyOn
(
$
,
'
getJSON
'
).
and
.
returnValue
(
deferred
.
promise
());
prometheusMetrics
.
loadActiveMetrics
();
expect
(
prometheusMetrics
.
$monitoredMetricsLoading
.
hasClass
(
'
hidden
'
)).
toBeFalsy
();
expect
(
$
.
getJSON
).
toHaveBeenCalledWith
(
prometheusMetrics
.
activeMetricsEndpoint
);
deferred
.
resolve
({
data
:
metrics
,
success
:
true
});
setTimeout
(()
=>
{
expect
(
prometheusMetrics
.
$monitoredMetricsLoading
.
hasClass
(
'
hidden
'
)).
toBeTruthy
();
done
();
});
});
it
(
'
should show empty state if response failed to load
'
,
(
done
)
=>
{
const
deferred
=
$
.
Deferred
();
spyOn
(
$
,
'
getJSON
'
).
and
.
returnValue
(
deferred
.
promise
());
spyOn
(
prometheusMetrics
,
'
populateActiveMetrics
'
);
prometheusMetrics
.
loadActiveMetrics
();
deferred
.
reject
();
setTimeout
(()
=>
{
expect
(
prometheusMetrics
.
$monitoredMetricsLoading
.
hasClass
(
'
hidden
'
)).
toBeTruthy
();
expect
(
prometheusMetrics
.
$monitoredMetricsEmpty
.
hasClass
(
'
hidden
'
)).
toBeFalsy
();
done
();
});
});
it
(
'
should populate metrics list once response is loaded
'
,
(
done
)
=>
{
const
deferred
=
$
.
Deferred
();
spyOn
(
$
,
'
getJSON
'
).
and
.
returnValue
(
deferred
.
promise
());
spyOn
(
prometheusMetrics
,
'
populateActiveMetrics
'
);
prometheusMetrics
.
loadActiveMetrics
();
deferred
.
resolve
({
data
:
metrics
,
success
:
true
});
setTimeout
(()
=>
{
expect
(
prometheusMetrics
.
populateActiveMetrics
).
toHaveBeenCalledWith
(
metrics
);
done
();
});
});
});
});
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