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 });