consul/ui/packages/consul-ui/tests/acceptance/dc/services/instances/health-checks.feature

132 lines
3.8 KiB
Gherkin

@setupApplicationTest
Feature: dc / services / instances / health-checks
Background:
Given 1 datacenter model with the value "dc1"
And 1 proxy model from yaml
---
- ServiceProxy:
DestinationServiceName: service-1
DestinationServiceID: ~
---
Scenario: A failing serf check
Given 2 instance models from yaml
---
- Service:
ID: service-0-with-id
Node:
Node: node-0
- Service:
ID: service-1-with-id
Node:
Node: another-node
Checks:
- Type: ''
Name: Serf Health Status
CheckID: serfHealth
Status: critical
Output: ouch
---
When I visit the instance page for yaml
---
dc: dc1
service: service-0
node: another-node
id: service-1-with-id
---
Then the url should be /dc1/services/service-0/instances/another-node/service-1-with-id/health-checks
And I see healthChecksIsSelected on the tabs
And I see criticalSerfNotice on the tabs.healthChecksTab
Scenario: A passing serf check
Given 2 instance models from yaml
---
- Service:
ID: service-0-with-id
Node:
Node: node-0
- Service:
ID: service-1-with-id
Node:
Node: another-node
Checks:
- Type: ''
Name: Serf Health Status
CheckID: serfHealth
Status: passing
Output: Agent alive and reachable
---
When I visit the instance page for yaml
---
dc: dc1
service: service-0
node: another-node
id: service-1-with-id
---
Then the url should be /dc1/services/service-0/instances/another-node/service-1-with-id/health-checks
And I see healthChecksIsSelected on the tabs
And I don't see criticalSerfNotice on the tabs.healthChecksTab
Scenario: Node health check should be hidden on agentless service instances
Given 1 instance model from yaml
---
- Service:
ID: service-0-with-id
Node:
Node: another-node
Meta:
synthetic-node: true
Checks:
- Type: ''
Name: Node Health Check
CheckID: serfHealth
ServiceID: ''
Status: passing
Output: Agent alive and reachable
- Type: ''
Name: Serf Health Status
CheckID: serfHealth
Status: critical
Output: ouch
---
When I visit the instance page for yaml
---
dc: dc1
service: service-0
node: another-node
id: service-0-with-id
---
Then the url should be /dc1/services/service-0/instances/another-node/service-0-with-id/health-checks
And I see healthChecksIsSelected on the tabs
And I see 1 healthCheck model on the tabs.healthChecksTab component
And I see 1 healthCheck model with the name "Serf Health Status"
Scenario: Node health checks should be visible on non-agentless service instances
Given 1 instance model from yaml
---
- Service:
ID: service-0-with-id
Node:
Node: another-node
Checks:
- Type: ''
Name: Node Health Check
CheckID: serfHealth
ServiceID: ''
Status: passing
Output: Agent alive and reachable
- Type: ''
Name: Serf Health Status
CheckID: serfHealth
Status: critical
Output: ouch
---
When I visit the instance page for yaml
---
dc: dc1
service: service-0
node: another-node
id: service-0-with-id
---
Then the url should be /dc1/services/service-0/instances/another-node/service-0-with-id/health-checks
And I see healthChecksIsSelected on the tabs
And I see 2 healthCheck models on the tabs.healthChecksTab component
And I see 1 healthCheck model with the name "Serf Health Status"
And I see 1 healthCheck model with the name "Node Health Check"