40 lines
1.6 KiB
JavaScript
40 lines
1.6 KiB
JavaScript
import { attribute, collection, clickable, isPresent, text } from 'ember-cli-page-object';
|
|
import { singularize } from 'ember-inflector';
|
|
|
|
export default function(selector = '[data-test-allocation]', propKey = 'allocations') {
|
|
const lookupKey = `${singularize(propKey)}For`;
|
|
// Remove the bracket notation
|
|
const attr = selector.substring(1, selector.length - 1);
|
|
|
|
return {
|
|
[propKey]: collection(selector, {
|
|
id: attribute(attr),
|
|
shortId: text('[data-test-short-id]'),
|
|
createTime: text('[data-test-create-time]'),
|
|
createTooltip: attribute('aria-label', '[data-test-create-time] .tooltip'),
|
|
modifyTime: text('[data-test-modify-time]'),
|
|
health: text('[data-test-health]'),
|
|
status: text('[data-test-client-status]'),
|
|
job: text('[data-test-job]'),
|
|
taskGroup: text('[data-test-task-group]'),
|
|
client: text('[data-test-client]'),
|
|
jobVersion: text('[data-test-job-version]'),
|
|
volume: text('[data-test-volume]'),
|
|
cpu: text('[data-test-cpu]'),
|
|
cpuTooltip: attribute('aria-label', '[data-test-cpu] .tooltip'),
|
|
mem: text('[data-test-mem]'),
|
|
memTooltip: attribute('aria-label', '[data-test-mem] .tooltip'),
|
|
rescheduled: isPresent('[data-test-indicators] [data-test-icon="reschedule"]'),
|
|
|
|
visit: clickable('[data-test-short-id] a'),
|
|
visitRow: clickable(),
|
|
visitJob: clickable('[data-test-job]'),
|
|
visitClient: clickable('[data-test-client] a'),
|
|
}),
|
|
|
|
[lookupKey]: function(id) {
|
|
return this[propKey].toArray().find(allocation => allocation.id === id);
|
|
},
|
|
};
|
|
}
|