text: import {
    attribute,
    clickable,
    create,
    collection,
    isPresent,
    text,
    visitable,
  } from 'ember-cli-page-object';
  
  import allocations from 'nomad-ui/tests/pages/components/allocations';
  import error from 'nomad-ui/tests/pages/components/error';
  
  export default create({
    visit: visitable('/jobs/:id/deployments'),
  
    deployments: collection('[data-test-deployment]', {
      text: text(),
      status: text('[data-test-deployment-status]'),
      statusClass: attribute('class', '[data-test-deployment-status]'),
      version: text('[data-test-deployment-version]'),
      submitTime: text('[data-test-deployment-submit-time]'),
      promotionIsRequired: isPresent('[data-test-promotion-required]'),
  
      toggle: clickable('[data-test-deployment-toggle-details]'),
  
      hasDetails: isPresent('[data-test-deployment-details]'),
  
      metrics: collection('[data-test-deployment-metric]', {
        id: attribute('data-test-deployment-metric'),
        text: text(),
      }),
  
      metricFor(id) {
        return this.metrics.toArray().findBy('id', id);
      },
  
      notification: text('[data-test-deployment-notification]'),
  
      hasTaskGroups: isPresent('[data-test-deployment-task-groups]'),
      taskGroups: collection('[data-test-deployment-task-group]', {
        name: text('[data-test-deployment-task-group-name]'),
        promotion: text('[data-test-deployment-task-group-promotion]'),
        autoRevert: text('[data-test-deployment-task-group-auto-revert]'),
        canaries: text('[data-test-deployment-task-group-canaries]'),
        allocs: text('[data-test-deployment-task-group-allocs]'),
        healthy: text('[data-test-deployment-task-group-healthy]'),
        unhealthy: text('[data-test-deployment-task-group-unhealthy]'),
        progress: text('[data-test-deployment-task-group-progress-deadline]'),
      }),
  
      ...allocations('[data-test-deployment-allocation]'),
      hasAllocations: isPresent('[data-test-deployment-allocations]'),
    }),
  
    error: error(),
  });
  