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

Co-authored-by: spalger <spalger@users.noreply.github.com>
This commit is contained in:
Spencer 2021-05-26 05:18:13 -07:00 committed by GitHub
parent 2d6ee26223
commit 6d48a50c2a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 43 additions and 44 deletions

View file

@ -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 clickNewsfeed(): Promise<void> {
return await testSubjects.click('headerGlobalNav > newsfeed');
}
public async exists(): Promise<boolean> {
return await testSubjects.exists('headerGlobalNav');
}
public async getFirstBreadcrumb(): Promise<string> {
return await testSubjects.getVisibleText(
'headerGlobalNav > breadcrumbs > ~breadcrumb & ~first'
);
}
public async getLastBreadcrumb(): Promise<string> {
return await testSubjects.getVisibleText(
'headerGlobalNav > breadcrumbs > ~breadcrumb & ~last'
);
}
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 badgeMissingOrFail(): Promise<void> {
await testSubjects.missingOrFail('headerBadge');
}
public async moveMouseToLogo(): Promise<void> {
await this.testSubjects.moveMouseTo('headerGlobalNav > logo');
}
return new GlobalNav();
public async clickLogo(): Promise<void> {
return await this.testSubjects.click('headerGlobalNav > logo');
}
public async clickNewsfeed(): Promise<void> {
return await this.testSubjects.click('headerGlobalNav > newsfeed');
}
public async exists(): Promise<boolean> {
return await this.testSubjects.exists('headerGlobalNav');
}
public async getFirstBreadcrumb(): Promise<string> {
return await this.testSubjects.getVisibleText(
'headerGlobalNav > breadcrumbs > ~breadcrumb & ~first'
);
}
public async getLastBreadcrumb(): Promise<string> {
return await this.testSubjects.getVisibleText(
'headerGlobalNav > breadcrumbs > ~breadcrumb & ~last'
);
}
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());
}
public async badgeMissingOrFail(): Promise<void> {
await this.testSubjects.missingOrFail('headerBadge');
}
}

View file

@ -29,7 +29,7 @@ import { DocTableService } from './doc_table';
import { EmbeddingProvider } from './embedding';
import { FilterBarService } from './filter_bar';
import { FlyoutProvider } from './flyout';
import { GlobalNavProvider } from './global_nav';
import { GlobalNavService } from './global_nav';
import { InspectorProvider } from './inspector';
import { FieldEditorService } from './field_editor';
import { ManagementMenuProvider } from './management';
@ -78,7 +78,7 @@ export const services = {
fieldEditor: FieldEditorService,
vegaDebugInspector: VegaDebugInspectorViewProvider,
appsMenu: AppsMenuProvider,
globalNav: GlobalNavProvider,
globalNav: GlobalNavService,
toasts: ToastsProvider,
savedQueryManagementComponent: SavedQueryManagementComponentProvider,
elasticChart: ElasticChartProvider,