github.com/anth0d/nomad@v0.0.0-20221214183521-ae3a0a2cad06/ui/tests/pages/layout.js (about)

     1  import {
     2    attribute,
     3    create,
     4    clickable,
     5    collection,
     6    hasClass,
     7    isHidden,
     8    isPresent,
     9    property,
    10    text,
    11  } from 'ember-cli-page-object';
    12  
    13  export default create({
    14    navbar: {
    15      scope: '[data-test-global-header]',
    16  
    17      regionSwitcher: {
    18        scope: '[data-test-region-switcher-parent]',
    19        isPresent: isPresent(),
    20        open: clickable('.ember-power-select-trigger'),
    21        options: collection('.ember-power-select-option', {
    22          label: text(),
    23        }),
    24      },
    25  
    26      search: {
    27        scope: '[data-test-search-parent]',
    28  
    29        click: clickable('.ember-power-select-trigger'),
    30  
    31        groups: collection('.ember-power-select-group', {
    32          testContainer: '.ember-power-select-options',
    33          resetScope: true,
    34          name: text('.ember-power-select-group-name'),
    35  
    36          options: collection('.ember-power-select-option'),
    37        }),
    38  
    39        noOptionsShown: isHidden('.ember-power-select-options', {
    40          testContainer: '.ember-basic-dropdown-content',
    41          resetScope: true,
    42        }),
    43  
    44        field: {
    45          scope: '.ember-power-select-search input',
    46          testContainer: 'html',
    47          resetScope: true,
    48        },
    49      },
    50  
    51      end: {
    52        scope: '.navbar-end',
    53  
    54        consulLink: {
    55          scope: '[data-test-header-consul-link]',
    56          text: text(),
    57          link: property('href'),
    58        },
    59  
    60        vaultLink: {
    61          scope: '[data-test-header-vault-link]',
    62          text: text(),
    63          link: property('href'),
    64        },
    65  
    66        signInLink: {
    67          scope: '[data-test-header-signin-link]',
    68          text: text(),
    69          link: property('href'),
    70        },
    71  
    72        profileDropdown: {
    73          scope: '[data-test-header-profile-dropdown]',
    74          text: text(),
    75          open: clickable(),
    76          options: collection('.dropdown-label', {
    77            label: text(),
    78            choose: clickable(),
    79          }),
    80        },
    81      },
    82    },
    83  
    84    gutter: {
    85      scope: '[data-test-gutter-menu]',
    86      visitJobs: clickable('[data-test-gutter-link="jobs"]'),
    87  
    88      optimize: {
    89        scope: '[data-test-gutter-link="optimize"]',
    90      },
    91  
    92      variables: {
    93        scope: '[data-test-gutter-link="variables"]',
    94      },
    95  
    96      visitClients: clickable('[data-test-gutter-link="clients"]'),
    97      visitServers: clickable('[data-test-gutter-link="servers"]'),
    98      visitStorage: clickable('[data-test-gutter-link="storage"]'),
    99    },
   100  
   101    breadcrumbs: collection('[data-test-breadcrumb]', {
   102      id: attribute('data-test-breadcrumb'),
   103      text: text(),
   104      visit: clickable(),
   105    }),
   106  
   107    breadcrumbFor(id) {
   108      return this.breadcrumbs.toArray().find((crumb) => crumb.id === id);
   109    },
   110  
   111    error: {
   112      isPresent: isPresent('[data-test-error]'),
   113      title: text('[data-test-error-title]'),
   114      message: text('[data-test-error-message]'),
   115    },
   116  
   117    inlineError: {
   118      isShown: isPresent('[data-test-inline-error]'),
   119      title: text('[data-test-inline-error-title]'),
   120      message: text('[data-test-inline-error-body]'),
   121      dismiss: clickable('[data-test-inline-error-close]'),
   122  
   123      isDanger: hasClass('is-danger', '[data-test-inline-error]'),
   124      isWarning: hasClass('is-warning', '[data-test-inline-error]'),
   125    },
   126  
   127    keyboard: {
   128      modalShown: isPresent('.keyboard-shortcuts'),
   129    },
   130  });