open-nomad/ui/tests/pages/allocations/detail.js

115 lines
3.4 KiB
JavaScript
Raw Normal View History

import {
attribute,
clickable,
create,
collection,
isPresent,
text,
visitable,
} from 'ember-cli-page-object';
2019-04-22 23:09:56 +00:00
import allocations from 'nomad-ui/tests/pages/components/allocations';
import twoStepButton from 'nomad-ui/tests/pages/components/two-step-button';
import LifecycleChart from 'nomad-ui/tests/pages/components/lifecycle-chart';
2019-04-22 23:09:56 +00:00
export default create({
visit: visitable('/allocations/:id'),
title: text('[data-test-title]'),
stop: twoStepButton('[data-test-stop]'),
restart: twoStepButton('[data-test-restart]'),
execButton: {
scope: '[data-test-exec-button]',
},
details: {
scope: '[data-test-allocation-details]',
job: text('[data-test-job-link]'),
visitJob: clickable('[data-test-job-link]'),
client: text('[data-test-client-link]'),
visitClient: clickable('[data-test-client-link]'),
},
resourceCharts: collection('[data-test-primary-metric]', {
name: text('[data-test-primary-metric-title]'),
chartClass: attribute('class', '[data-test-percentage-chart] progress'),
}),
resourceEmptyMessage: text('[data-test-resource-error-headline]'),
lifecycleChart: LifecycleChart,
tasks: collection('[data-test-task-row]', {
name: text('[data-test-name]'),
state: text('[data-test-state]'),
message: text('[data-test-message]'),
time: text('[data-test-time]'),
volumes: text('[data-test-volumes]'),
hasUnhealthyDriver: isPresent('[data-test-icon="unhealthy-driver"]'),
hasProxyTag: isPresent('[data-test-proxy-tag]'),
clickLink: clickable('[data-test-name] a'),
clickRow: clickable('[data-test-name]'),
}),
firstUnhealthyTask() {
return this.tasks.toArray().findBy('hasUnhealthyDriver');
},
hasRescheduleEvents: isPresent('[data-test-reschedule-events]'),
isEmpty: isPresent('[data-test-empty-tasks-list]'),
2019-04-22 23:09:56 +00:00
wasPreempted: isPresent('[data-test-was-preempted]'),
preempter: {
scope: '[data-test-was-preempted]',
status: text('[data-test-allocation-status]'),
name: text('[data-test-allocation-name]'),
priority: text('[data-test-job-priority]'),
reservedCPU: text('[data-test-allocation-cpu]'),
reservedMemory: text('[data-test-allocation-memory]'),
visit: clickable('[data-test-allocation-id]'),
visitJob: clickable('[data-test-job-link]'),
visitClient: clickable('[data-test-client-link]'),
},
preempted: isPresent('[data-test-preemptions]'),
...allocations('[data-test-preemptions] [data-test-allocation]', 'preemptions'),
ports: collection('[data-test-allocation-port]', {
name: text('[data-test-allocation-port-name]'),
address: text('[data-test-allocation-port-address]'),
to: text('[data-test-allocation-port-to]'),
}),
services: collection('[data-test-service]', {
name: text('[data-test-service-name]'),
port: text('[data-test-service-port]'),
tags: text('[data-test-service-tags]'),
onUpdate: text('[data-test-service-onupdate]'),
connect: text('[data-test-service-connect]'),
upstreams: text('[data-test-service-upstreams]'),
}),
error: {
isShown: isPresent('[data-test-error]'),
title: text('[data-test-error-title]'),
message: text('[data-test-error-message]'),
seekHelp: clickable('[data-test-error-message] a'),
},
inlineError: {
isShown: isPresent('[data-test-inline-error]'),
title: text('[data-test-inline-error-title]'),
message: text('[data-test-inline-error-body]'),
dismiss: clickable('[data-test-inline-error-close]'),
},
});