Skip to content

Commit bc7adfa

Browse files
kibanamachineSpencerspalger
authored
[ftr] migrate "MenuToggle" service to FtrService class (#100608) (#100847)
Co-authored-by: spalger <spalger@users.noreply.github.com> Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> Co-authored-by: Spencer <email@spalger.com> Co-authored-by: spalger <spalger@users.noreply.github.com>
1 parent c95c601 commit bc7adfa

File tree

4 files changed

+36
-41
lines changed

4 files changed

+36
-41
lines changed

test/functional/page_objects/time_picker.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,9 +30,9 @@ export function TimePickerProvider({ getService, getPageObjects }: FtrProviderCo
3030
const testSubjects = getService('testSubjects');
3131
const { header } = getPageObjects(['header']);
3232
const kibanaServer = getService('kibanaServer');
33-
const MenuToggle = getService('MenuToggle');
33+
const menuToggle = getService('menuToggle');
3434

35-
const quickSelectTimeMenuToggle = new MenuToggle({
35+
const quickSelectTimeMenuToggle = menuToggle.create({
3636
name: 'QuickSelectTime Menu',
3737
menuTestSubject: 'superDatePickerQuickMenu',
3838
toggleButtonTestSubject: 'superDatePickerToggleQuickMenuButton',

test/functional/services/index.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ import {
4646
import { ListingTableService } from './listing_table';
4747
import { SavedQueryManagementComponentProvider } from './saved_query_management_component';
4848
import { KibanaSupertestProvider } from './supertest';
49-
import { MenuToggleProvider } from './menu_toggle';
49+
import { MenuToggleService } from './menu_toggle';
5050
import { MonacoEditorProvider } from './monaco_editor';
5151

5252
export const services = {
@@ -85,5 +85,5 @@ export const services = {
8585
supertest: KibanaSupertestProvider,
8686
managementMenu: ManagementMenuService,
8787
monacoEditor: MonacoEditorProvider,
88-
MenuToggle: MenuToggleProvider,
88+
menuToggle: MenuToggleService,
8989
};

test/functional/services/menu_toggle.ts

Lines changed: 30 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -6,61 +6,56 @@
66
* Side Public License, v 1.
77
*/
88

9-
import { FtrProviderContext } from '../ftr_provider_context';
9+
import { FtrService } from '../ftr_provider_context';
1010

11-
export function MenuToggleProvider({ getService }: FtrProviderContext) {
12-
const log = getService('log');
13-
const retry = getService('retry');
14-
const testSubjects = getService('testSubjects');
15-
16-
interface Options {
17-
name: string;
18-
menuTestSubject: string;
19-
toggleButtonTestSubject: string;
20-
}
21-
22-
return class MenuToggle {
23-
private readonly name: string;
24-
private readonly menuTestSubject: string;
25-
private readonly toggleButtonTestSubject: string;
11+
interface Options {
12+
name: string;
13+
menuTestSubject: string;
14+
toggleButtonTestSubject: string;
15+
}
2616

27-
constructor(options: Options) {
28-
this.name = options.name;
29-
this.menuTestSubject = options.menuTestSubject;
30-
this.toggleButtonTestSubject = options.toggleButtonTestSubject;
31-
}
17+
export class MenuToggleService extends FtrService {
18+
private readonly log = this.ctx.getService('log');
19+
private readonly retry = this.ctx.getService('retry');
20+
private readonly testSubjects = this.ctx.getService('testSubjects');
3221

33-
async open() {
34-
await this.setState(true);
35-
}
22+
create(options: Options) {
23+
const { log, retry, testSubjects } = this;
24+
const { name, menuTestSubject, toggleButtonTestSubject } = options;
3625

37-
async close() {
38-
await this.setState(false);
39-
}
40-
41-
private async setState(expectedState: boolean) {
26+
async function setState(expectedState: boolean) {
4227
log.debug(
43-
`setting menu open state [name=${this.name}] [state=${expectedState ? 'open' : 'closed'}]`
28+
`setting menu open state [name=${name}] [state=${expectedState ? 'open' : 'closed'}]`
4429
);
4530

4631
await retry.try(async () => {
4732
// if the menu is clearly in the expected state already, bail out quickly if so
48-
const isOpen = await testSubjects.exists(this.menuTestSubject, { timeout: 1000 });
33+
const isOpen = await testSubjects.exists(menuTestSubject, { timeout: 1000 });
4934
if (isOpen === expectedState) {
5035
return;
5136
}
5237

5338
// toggle the view state by clicking the button
54-
await testSubjects.click(this.toggleButtonTestSubject);
39+
await testSubjects.click(toggleButtonTestSubject);
5540

5641
if (expectedState === true) {
5742
// wait for up to 10 seconds for the menu to show up, otherwise fail and retry
58-
await testSubjects.existOrFail(this.menuTestSubject, { timeout: 10000 });
43+
await testSubjects.existOrFail(menuTestSubject, { timeout: 10000 });
5944
} else {
6045
// wait for the form to hide, otherwise fail and retry
61-
await testSubjects.waitForDeleted(this.menuTestSubject);
46+
await testSubjects.waitForDeleted(menuTestSubject);
6247
}
6348
});
6449
}
65-
};
50+
51+
return {
52+
async open() {
53+
await setState(true);
54+
},
55+
56+
async close() {
57+
await setState(false);
58+
},
59+
};
60+
}
6661
}

x-pack/test/functional/page_objects/gis_page.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,12 +21,12 @@ export function GisPageProvider({ getService, getPageObjects }: FtrProviderConte
2121
const comboBox = getService('comboBox');
2222
const renderable = getService('renderable');
2323
const browser = getService('browser');
24-
const MenuToggle = getService('MenuToggle');
24+
const menuToggle = getService('menuToggle');
2525
const listingTable = getService('listingTable');
2626
const monacoEditor = getService('monacoEditor');
2727
const dashboardPanelActions = getService('dashboardPanelActions');
2828

29-
const setViewPopoverToggle = new MenuToggle({
29+
const setViewPopoverToggle = menuToggle.create({
3030
name: 'SetView Popover',
3131
menuTestSubject: 'mapSetViewForm',
3232
toggleButtonTestSubject: 'toggleSetViewVisibilityButton',

0 commit comments

Comments
 (0)