kibana/x-pack/test/observability_functional/apps/observability/sidenav/sidenav.ts
Tim Sullivan ee74bb4e65
Reorganize footer items for Solutions (#218050)
## Summary

Epic: https://github.com/elastic/kibana-team/issues/1439
~Depends on https://github.com/elastic/kibana/pull/218156~

Addresses footer issues and a few content issues


https://github.com/user-attachments/assets/07063aa7-8a49-4cb5-9fd2-a6e1cbd674b7


1. Footer item texts should not be bold
2. We should have the spacing of regular nav sub-items in the footer

Other fixes:
1. Fix text casing in "Machine Learning" (Note: [other casing issues
exist](https://github.com/elastic/kibana/issues/217352))
2. Remove `recentlyAccessed` sections

### Checklist

Check the PR satisfies following conditions. 

Reviewers should verify this PR satisfies this list as well.

- [x] Any text added follows [EUI's writing
guidelines](https://elastic.github.io/eui/#/guidelines/writing), uses
sentence case text and includes [i18n
support](https://github.com/elastic/kibana/blob/main/src/platform/packages/shared/kbn-i18n/README.md)
- [x] [Unit or functional
tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)
were updated or added to match the most common scenarios
2025-05-02 07:51:10 -07:00

93 lines
3.7 KiB
TypeScript

/*
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
* or more contributor license agreements. Licensed under the Elastic License
* 2.0; you may not use this file except in compliance with the Elastic License
* 2.0.
*/
import expect from '@kbn/expect';
import { FtrProviderContext } from '../../../ftr_provider_context';
export default function ({ getPageObjects, getService }: FtrProviderContext) {
const { common, solutionNavigation, header } = getPageObjects([
'common',
'solutionNavigation',
'header',
]);
const spaces = getService('spaces');
const browser = getService('browser');
const testSubjects = getService('testSubjects');
describe('o11y sidenav', () => {
let cleanUp: () => Promise<unknown>;
let spaceCreated: { id: string } = { id: '' };
before(async () => {
// Navigate to the spaces management page which will log us in Kibana
await common.navigateToUrl('management', 'kibana/spaces', {
shouldUseHashForSubUrl: false,
});
// Create a space with the observability solution and navigate to its home page
({ cleanUp, space: spaceCreated } = await spaces.create({ solution: 'oblt' }));
await browser.navigateTo(spaces.getRootUrl(spaceCreated.id));
await header.waitUntilLoadingHasFinished();
});
after(async () => {
// Clean up space created
await cleanUp();
});
describe('sidenav & breadcrumbs', () => {
it('renders the correct nav and navigate to links', async () => {
await solutionNavigation.sidenav.clickLink({ navId: 'observabilityAIAssistant' }); // click on AI Assistant link
await solutionNavigation.breadcrumbs.expectBreadcrumbExists({ text: 'AI Assistant' });
// check Other Tools section
await solutionNavigation.sidenav.openPanel('otherTools');
{
const isOpen = await solutionNavigation.sidenav.isPanelOpen('otherTools');
expect(isOpen).to.be(true);
}
await solutionNavigation.sidenav.expectLinkExists({
panelNavLinkId: 'logs:anomalies',
});
await solutionNavigation.sidenav.expectLinkExists({
panelNavLinkId: 'logs:log-categories',
});
await solutionNavigation.sidenav.clickPanelLink('visualize');
await solutionNavigation.breadcrumbs.expectBreadcrumbExists({
text: 'Visualize library',
});
// check Machine Learning section
await solutionNavigation.sidenav.openPanel('machine_learning-landing');
{
const isOpen = await solutionNavigation.sidenav.isPanelOpen('machine_learning-landing');
expect(isOpen).to.be(true);
}
await solutionNavigation.sidenav.expectLinkExists({
panelNavLinkId: 'ml:anomalyExplorer',
});
await solutionNavigation.sidenav.expectLinkExists({
panelNavLinkId: 'ml:singleMetricViewer',
});
// Supplied configurations is under Management -> Anomaly Detection Jobs -> Click button mlSuppliedConfigurationsButton
await solutionNavigation.sidenav.openSection(
'observability_project_nav_footer.project_settings_project_nav'
);
await solutionNavigation.sidenav.clickLink({ navId: 'stack_management' });
await solutionNavigation.sidenav.expectLinkActive({ navId: 'stack_management' });
await solutionNavigation.sidenav.clickPanelLink('management:anomaly_detection');
await solutionNavigation.breadcrumbs.expectBreadcrumbExists({
text: 'Anomaly Detection Jobs',
});
await testSubjects.click('mlSuppliedConfigurationsButton');
await testSubjects.existOrFail('mlPageSuppliedConfigurations');
});
});
});
}