55 lines
1.5 KiB
JavaScript
55 lines
1.5 KiB
JavaScript
export default (collection, clickable, attribute, is, authForm) => scope => {
|
|
const page = {
|
|
navigation: [
|
|
'services',
|
|
'nodes',
|
|
'kvs',
|
|
'acls',
|
|
'intentions',
|
|
'help',
|
|
'settings',
|
|
'auth',
|
|
].reduce(
|
|
function(prev, item, i, arr) {
|
|
const key = item;
|
|
return Object.assign({}, prev, {
|
|
[key]: clickable(`[data-test-main-nav-${item}] > *`),
|
|
});
|
|
},
|
|
{
|
|
scope: '[data-test-navigation]',
|
|
}
|
|
),
|
|
footer: ['copyright', 'docs'].reduce(
|
|
function(prev, item, i, arr) {
|
|
const key = item;
|
|
return Object.assign({}, prev, {
|
|
[key]: clickable(`[data-test-main-nav-${item}`),
|
|
});
|
|
},
|
|
{
|
|
scope: '[data-test-footer]',
|
|
}
|
|
),
|
|
authdialog: {
|
|
form: authForm(),
|
|
},
|
|
// TODO: errors aren't strictly part of this component
|
|
error: {
|
|
status: attribute('data-test-status', '[data-test-status]'),
|
|
},
|
|
};
|
|
page.navigation.login = clickable('[data-test-main-nav-auth] label');
|
|
page.navigation.dc = clickable('[data-test-datacenter-menu] button');
|
|
page.navigation.nspace = clickable('[data-test-nspace-menu] button');
|
|
page.navigation.manageNspaces = clickable('[data-test-main-nav-nspaces] a');
|
|
page.navigation.manageNspacesIsVisible = is(
|
|
':checked',
|
|
'[data-test-nspace-menu] > input[type="checkbox"]'
|
|
);
|
|
page.navigation.dcs = collection('[data-test-datacenter-picker]', {
|
|
name: clickable('a'),
|
|
});
|
|
return page;
|
|
};
|