mirror of
https://github.com/status-im/consul.git
synced 2025-01-18 17:52:17 +00:00
ui: Add some acceptance testing around the Metrics graph (#9785)
* Add a way to set the local datacenter * Amend step so we can positively and negatively look for elements * Add a data-test selector so we can get to the topology series graph * Add a couple of tests to verify the series graph shows/doesn't show
This commit is contained in:
parent
bf5b76851a
commit
7be21a9027
@ -23,7 +23,7 @@
|
|||||||
{{/if}}
|
{{/if}}
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
||||||
<div class="sparkline-wrapper">
|
<div data-test-sparkline class="sparkline-wrapper">
|
||||||
<div class="tooltip">
|
<div class="tooltip">
|
||||||
<div class="sparkline-time">Timestamp</div>
|
<div class="sparkline-time">Timestamp</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
Feature: dc / services / show / topology: Intention Create
|
Feature: dc / services / show / topology: Intention Create
|
||||||
Background:
|
Background:
|
||||||
Given 1 datacenter model with the value "datacenter"
|
Given 1 datacenter model with the value "datacenter"
|
||||||
|
And the local datacenter is "datacenter"
|
||||||
And 1 intention model from yaml
|
And 1 intention model from yaml
|
||||||
---
|
---
|
||||||
SourceNS: default
|
SourceNS: default
|
||||||
@ -26,17 +27,43 @@ Feature: dc / services / show / topology: Intention Create
|
|||||||
Datacenter: datacenter
|
Datacenter: datacenter
|
||||||
Intention: {}
|
Intention: {}
|
||||||
---
|
---
|
||||||
|
Scenario: Metrics is not enabled with prometheus provider
|
||||||
When I visit the service page for yaml
|
When I visit the service page for yaml
|
||||||
---
|
---
|
||||||
dc: datacenter
|
dc: datacenter
|
||||||
service: web
|
service: web
|
||||||
---
|
---
|
||||||
|
And I don't see the "[data-test-sparkline]" element
|
||||||
|
Scenario: Metrics is enabled with prometheus provider
|
||||||
|
Given 1 datacenter model with the value "datacenter"
|
||||||
|
And the local datacenter is "datacenter"
|
||||||
|
And ui_config from yaml
|
||||||
|
---
|
||||||
|
metrics_proxy_enabled: true
|
||||||
|
metrics_provider: 'prometheus'
|
||||||
|
---
|
||||||
|
When I visit the service page for yaml
|
||||||
|
---
|
||||||
|
dc: datacenter
|
||||||
|
service: web
|
||||||
|
---
|
||||||
|
And I see the "[data-test-sparkline]" element
|
||||||
Scenario: Allow a connection between service and upstream by saving an intention
|
Scenario: Allow a connection between service and upstream by saving an intention
|
||||||
|
When I visit the service page for yaml
|
||||||
|
---
|
||||||
|
dc: datacenter
|
||||||
|
service: web
|
||||||
|
---
|
||||||
When I click ".consul-topology-metrics [data-test-action]"
|
When I click ".consul-topology-metrics [data-test-action]"
|
||||||
And I click ".consul-topology-metrics [data-test-confirm]"
|
And I click ".consul-topology-metrics [data-test-confirm]"
|
||||||
And "[data-notification]" has the "success" class
|
And "[data-notification]" has the "success" class
|
||||||
Scenario: There was an error saving the intention
|
Scenario: There was an error saving the intention
|
||||||
Given the url "/v1/connect/intentions/exact?source=default%2Fweb&destination=default%2Fdb&dc=datacenter" responds with a 500 status
|
Given the url "/v1/connect/intentions/exact?source=default%2Fweb&destination=default%2Fdb&dc=datacenter" responds with a 500 status
|
||||||
|
When I visit the service page for yaml
|
||||||
|
---
|
||||||
|
dc: datacenter
|
||||||
|
service: web
|
||||||
|
---
|
||||||
When I click ".consul-topology-metrics [data-test-action]"
|
When I click ".consul-topology-metrics [data-test-action]"
|
||||||
And I click ".consul-topology-metrics [data-test-confirm]"
|
And I click ".consul-topology-metrics [data-test-confirm]"
|
||||||
And "[data-notification]" has the "error" class
|
And "[data-notification]" has the "error" class
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
|
const dont = `( don't| shouldn't| can't)?`;
|
||||||
export default function(scenario, assert, pauseUntil, find, currentURL, clipboard) {
|
export default function(scenario, assert, pauseUntil, find, currentURL, clipboard) {
|
||||||
scenario
|
scenario
|
||||||
.then('pause until I see the text "$text" in "$selector"', function(text, selector) {
|
.then('pause until I see the text "$text" in "$selector"', function(text, selector) {
|
||||||
@ -41,15 +42,19 @@ export default function(scenario, assert, pauseUntil, find, currentURL, clipboar
|
|||||||
.dom(document.querySelector(selector))
|
.dom(document.querySelector(selector))
|
||||||
.hasClass(cls, `Expected [class] to contain ${cls} on ${selector}`);
|
.hasClass(cls, `Expected [class] to contain ${cls} on ${selector}`);
|
||||||
})
|
})
|
||||||
.then([`I don't see the "$selector" element`], function(selector) {
|
|
||||||
assert.equal(document.querySelector(selector), null, `Expected not to see ${selector}`);
|
|
||||||
})
|
|
||||||
.then(['"$selector" doesn\'t have the "$class" class'], function(selector, cls) {
|
.then(['"$selector" doesn\'t have the "$class" class'], function(selector, cls) {
|
||||||
assert.ok(
|
assert.ok(
|
||||||
!document.querySelector(selector).classList.contains(cls),
|
!document.querySelector(selector).classList.contains(cls),
|
||||||
`Expected [class] not to contain ${cls} on ${selector}`
|
`Expected [class] not to contain ${cls} on ${selector}`
|
||||||
);
|
);
|
||||||
})
|
})
|
||||||
|
.then([`I${dont} see the "$selector" element`], function(negative, selector) {
|
||||||
|
assert[negative ? 'equal' : 'notEqual'](
|
||||||
|
document.querySelector(selector),
|
||||||
|
null,
|
||||||
|
`Expected${negative ? ' not' : ''} to see ${selector}`
|
||||||
|
);
|
||||||
|
})
|
||||||
// TODO: Make this accept a 'contains' word so you can search for text containing also
|
// TODO: Make this accept a 'contains' word so you can search for text containing also
|
||||||
.then('I have settings like yaml\n$yaml', function(data) {
|
.then('I have settings like yaml\n$yaml', function(data) {
|
||||||
// TODO: Inject this
|
// TODO: Inject this
|
||||||
|
@ -22,5 +22,8 @@ export default function(scenario, create, win = window, doc = document) {
|
|||||||
})
|
})
|
||||||
.given(['ui_config from yaml\n$yaml'], function(data) {
|
.given(['ui_config from yaml\n$yaml'], function(data) {
|
||||||
doc.cookie = `CONSUL_UI_CONFIG=${JSON.stringify(data)}`;
|
doc.cookie = `CONSUL_UI_CONFIG=${JSON.stringify(data)}`;
|
||||||
|
})
|
||||||
|
.given(['the local datacenter is "$value"'], function(value) {
|
||||||
|
doc.cookie = `CONSUL_DATACENTER_LOCAL=${value}`;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user