Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[ftr] migrate "globalNav" service to FtrService class #100604

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
71 changes: 35 additions & 36 deletions test/functional/services/global_nav.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,50 +7,49 @@
*/

import expect from '@kbn/expect';
import { FtrProviderContext } from '../ftr_provider_context';
import { FtrService } from '../ftr_provider_context';

export function GlobalNavProvider({ getService }: FtrProviderContext) {
const testSubjects = getService('testSubjects');
export class GlobalNavService extends FtrService {
private readonly testSubjects = this.ctx.getService('testSubjects');

class GlobalNav {
public async moveMouseToLogo(): Promise<void> {
await testSubjects.moveMouseTo('headerGlobalNav > logo');
}

public async clickLogo(): Promise<void> {
return await testSubjects.click('headerGlobalNav > logo');
}
public async moveMouseToLogo(): Promise<void> {
await this.testSubjects.moveMouseTo('headerGlobalNav > logo');
}

public async clickNewsfeed(): Promise<void> {
return await testSubjects.click('headerGlobalNav > newsfeed');
}
public async clickLogo(): Promise<void> {
return await this.testSubjects.click('headerGlobalNav > logo');
}

public async exists(): Promise<boolean> {
return await testSubjects.exists('headerGlobalNav');
}
public async clickNewsfeed(): Promise<void> {
return await this.testSubjects.click('headerGlobalNav > newsfeed');
}

public async getFirstBreadcrumb(): Promise<string> {
return await testSubjects.getVisibleText(
'headerGlobalNav > breadcrumbs > ~breadcrumb & ~first'
);
}
public async exists(): Promise<boolean> {
return await this.testSubjects.exists('headerGlobalNav');
}

public async getLastBreadcrumb(): Promise<string> {
return await testSubjects.getVisibleText(
'headerGlobalNav > breadcrumbs > ~breadcrumb & ~last'
);
}
public async getFirstBreadcrumb(): Promise<string> {
return await this.testSubjects.getVisibleText(
'headerGlobalNav > breadcrumbs > ~breadcrumb & ~first'
);
}

public async badgeExistsOrFail(expectedLabel: string): Promise<void> {
await testSubjects.existOrFail('headerBadge');
const actualLabel = await testSubjects.getAttribute('headerBadge', 'data-test-badge-label');
expect(actualLabel.toUpperCase()).to.equal(expectedLabel.toUpperCase());
}
public async getLastBreadcrumb(): Promise<string> {
return await this.testSubjects.getVisibleText(
'headerGlobalNav > breadcrumbs > ~breadcrumb & ~last'
);
}

public async badgeMissingOrFail(): Promise<void> {
await testSubjects.missingOrFail('headerBadge');
}
public async badgeExistsOrFail(expectedLabel: string): Promise<void> {
await this.testSubjects.existOrFail('headerBadge');
const actualLabel = await this.testSubjects.getAttribute(
'headerBadge',
'data-test-badge-label'
);
expect(actualLabel.toUpperCase()).to.equal(expectedLabel.toUpperCase());
}

return new GlobalNav();
public async badgeMissingOrFail(): Promise<void> {
await this.testSubjects.missingOrFail('headerBadge');
}
}
4 changes: 2 additions & 2 deletions test/functional/services/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ import { DocTableProvider } from './doc_table';
import { EmbeddingProvider } from './embedding';
import { FilterBarProvider } from './filter_bar';
import { FlyoutProvider } from './flyout';
import { GlobalNavProvider } from './global_nav';
import { GlobalNavService } from './global_nav';
import { InspectorProvider } from './inspector';
import { FieldEditorProvider } from './field_editor';
import { ManagementMenuProvider } from './management';
Expand Down Expand Up @@ -78,7 +78,7 @@ export const services = {
fieldEditor: FieldEditorProvider,
vegaDebugInspector: VegaDebugInspectorViewProvider,
appsMenu: AppsMenuProvider,
globalNav: GlobalNavProvider,
globalNav: GlobalNavService,
toasts: ToastsProvider,
savedQueryManagementComponent: SavedQueryManagementComponentProvider,
elasticChart: ElasticChartProvider,
Expand Down