kibana/x-pack/test/functional_solution_sidenav/tests/observability_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

111 lines
4.3 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 } = getPageObjects(['common', 'solutionNavigation']);
const spaces = getService('spaces');
const browser = getService('browser');
describe('observability solution', () => {
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));
});
after(async () => {
// Clean up space created
await cleanUp();
});
describe('sidenav & breadcrumbs', () => {
it('renders the correct nav and navigate to links', async () => {
const expectNoPageReload = await solutionNavigation.createNoPageReloadCheck();
await solutionNavigation.expectExists();
await solutionNavigation.breadcrumbs.expectExists();
// check side nav links
await solutionNavigation.sidenav.expectSectionExists('observability_project_nav');
await solutionNavigation.sidenav.expectLinkActive({
deepLinkId: 'observabilityOnboarding',
});
await solutionNavigation.breadcrumbs.expectBreadcrumbExists({
deepLinkId: 'observabilityOnboarding',
});
// open apm (Application) panel
await solutionNavigation.sidenav.openPanel('apm');
{
const isOpen = await solutionNavigation.sidenav.isPanelOpen('apm');
expect(isOpen).to.be(true);
}
await solutionNavigation.sidenav.closePanel('apm');
{
const isOpen = await solutionNavigation.sidenav.isPanelOpen('apm');
expect(isOpen).to.be(false);
}
// open Infrastructure panel and navigate to some link inside the panel
await solutionNavigation.sidenav.openPanel('metrics');
{
const isOpen = await solutionNavigation.sidenav.isPanelOpen('metrics');
expect(isOpen).to.be(true);
}
await solutionNavigation.sidenav.clickPanelLink('metrics:inventory');
await solutionNavigation.breadcrumbs.expectBreadcrumbExists({
text: 'Infrastructure Inventory',
});
{
const isOpen = await solutionNavigation.sidenav.isPanelOpen('metrics');
expect(isOpen).to.be(false);
}
// navigate to a different section
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:tags');
await solutionNavigation.breadcrumbs.expectBreadcrumbExists({ text: 'Stack Management' });
// navigate back to the home page using header logo
await solutionNavigation.clickLogo();
await solutionNavigation.sidenav.expectLinkActive({
deepLinkId: 'observabilityOnboarding',
});
await solutionNavigation.breadcrumbs.expectBreadcrumbExists({
deepLinkId: 'observabilityOnboarding',
});
await expectNoPageReload();
});
it('renders a feedback callout', async () => {
await solutionNavigation.sidenav.feedbackCallout.expectExists();
await solutionNavigation.sidenav.feedbackCallout.dismiss();
await solutionNavigation.sidenav.feedbackCallout.expectMissing();
await browser.refresh();
await solutionNavigation.sidenav.feedbackCallout.expectMissing();
});
});
});
}