open-nomad/ui/tests/pages/layout.js
Buck Doyle 196f27aec4
Add multiple substring highlights for search (#8287)
The fuzzy search highlighting was ignoring everything after the first
substring that was matched, this now highlights all substrings.
2020-06-25 15:26:52 -05:00

69 lines
1.9 KiB
JavaScript

import { create, clickable, collection, hasClass, isPresent, text } from 'ember-cli-page-object';
export default create({
navbar: {
scope: '[data-test-global-header]',
regionSwitcher: {
scope: '[data-test-region-switcher]',
isPresent: isPresent(),
open: clickable('.ember-power-select-trigger'),
options: collection('.ember-power-select-option', {
label: text(),
}),
},
search: {
scope: '[data-test-search]',
click: clickable('.ember-power-select-trigger'),
groups: collection('.ember-power-select-group', {
testContainer: '.ember-power-select-options',
resetScope: true,
name: text('.ember-power-select-group-name'),
options: collection('.ember-power-select-option', create({
label: text(),
substrings: collection('[data-test-match-substring]', {
isHighlighted: hasClass('highlighted'),
}),
get formattedText() {
return this.substrings.map(string => {
if (string.isHighlighted) {
return `*${string.text}*`;
} else {
return string.text;
}
}).join('');
}
})),
}),
field: {
scope: '.ember-power-select-search input',
testContainer: 'html',
resetScope: true,
},
},
},
gutter: {
scope: '[data-test-gutter-menu]',
namespaceSwitcher: {
scope: '[data-test-namespace-switcher]',
isPresent: isPresent(),
open: clickable('.ember-power-select-trigger'),
options: collection('.ember-power-select-option', {
label: text(),
}),
},
visitJobs: clickable('[data-test-gutter-link="jobs"]'),
visitClients: clickable('[data-test-gutter-link="clients"]'),
visitServers: clickable('[data-test-gutter-link="servers"]'),
visitStorage: clickable('[data-test-gutter-link="storage"]'),
},
});