open-nomad/ui/tests/pages/topology.js
Michael Lange 9395f16da6 Test coverage for the topology info panel.
This fixes a couple bugs

1. Overreporting resources reserved due to counting terminal allocs
2. Overreporting unique client placements due to uniquing on object refs
   instead of on client ID.
2021-01-25 19:01:11 -08:00

64 lines
2.2 KiB
JavaScript

import { attribute, clickable, create, hasClass, text, visitable } from 'ember-cli-page-object';
import TopoViz from 'nomad-ui/tests/pages/components/topo-viz';
import notification from 'nomad-ui/tests/pages/components/notification';
export default create({
visit: visitable('/topology'),
infoPanelTitle: text('[data-test-info-panel-title]'),
filteredNodesWarning: notification('[data-test-filtered-nodes-warning]'),
viz: TopoViz('[data-test-topo-viz]'),
clusterInfoPanel: {
scope: '[data-test-info-panel]',
nodeCount: text('[data-test-node-count]'),
allocCount: text('[data-test-alloc-count]'),
memoryProgressValue: attribute('value', '[data-test-memory-progress-bar]'),
memoryAbsoluteValue: text('[data-test-memory-absolute-value]'),
cpuProgressValue: attribute('value', '[data-test-cpu-progress-bar]'),
cpuAbsoluteValue: text('[data-test-cpu-absolute-value]'),
},
nodeInfoPanel: {
scope: '[data-test-info-panel]',
allocations: text('[data-test-allocaions]'),
visitNode: clickable('[data-test-client-link]'),
id: text('[data-test-client-link]'),
name: text('[data-test-name]'),
address: text('[data-test-address]'),
status: text('[data-test-status]'),
drainingLabel: text('[data-test-draining]'),
drainingIsAccented: hasClass('is-info', '[data-test-draining]'),
eligibleLabel: text('[data-test-eligible]'),
eligibleIsAccented: hasClass('is-warning', '[data-test-eligible]'),
memoryProgressValue: attribute('value', '[data-test-memory-progress-bar]'),
memoryAbsoluteValue: text('[data-test-memory-absolute-value]'),
cpuProgressValue: attribute('value', '[data-test-cpu-progress-bar]'),
cpuAbsoluteValue: text('[data-test-cpu-absolute-value]'),
},
allocInfoPanel: {
scope: '[data-test-info-panel]',
id: text('[data-test-id]'),
visitAlloc: clickable('[data-test-id]'),
siblingAllocs: text('[data-test-sibling-allocs]'),
uniquePlacements: text('[data-test-unique-placements]'),
job: text('[data-test-job]'),
visitJob: clickable('[data-test-job]'),
taskGroup: text('[data-test-task-group]'),
client: text('[data-test-client]'),
visitClient: clickable('[data-test-client]'),
},
});