mirror of https://github.com/grafana/grafana.git
				
				
				
			
		
			
	
	
		
			93 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
		
		
			
		
	
	
			93 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
|  | import { | ||
|  |   ClickablePageObjectType, | ||
|  |   InputPageObjectType, | ||
|  |   PageObjectType, | ||
|  |   Selector, | ||
|  |   SelectPageObjectType, | ||
|  |   SwitchPageObjectType, | ||
|  |   TestPage, | ||
|  | } from '@grafana/toolkit/src/e2e'; | ||
|  | 
 | ||
|  | export interface VariablePage { | ||
|  |   headerLink: ClickablePageObjectType; | ||
|  |   modeLabel: PageObjectType; | ||
|  |   generalNameInput: InputPageObjectType; | ||
|  |   generalTypeSelect: SelectPageObjectType; | ||
|  |   generalLabelInput: InputPageObjectType; | ||
|  |   generalHideSelect: SelectPageObjectType; | ||
|  |   queryOptionsDataSourceSelect: SelectPageObjectType; | ||
|  |   queryOptionsRefreshSelect: SelectPageObjectType; | ||
|  |   queryOptionsRegExInput: InputPageObjectType; | ||
|  |   queryOptionsSortSelect: SelectPageObjectType; | ||
|  |   queryOptionsQueryInput: InputPageObjectType; | ||
|  |   selectionOptionsMultiSwitch: SwitchPageObjectType; | ||
|  |   selectionOptionsIncludeAllSwitch: SwitchPageObjectType; | ||
|  |   selectionOptionsCustomAllInput: InputPageObjectType; | ||
|  |   valueGroupsTagsEnabledSwitch: SwitchPageObjectType; | ||
|  |   valueGroupsTagsTagsQueryInput: InputPageObjectType; | ||
|  |   valueGroupsTagsTagsValuesQueryInput: InputPageObjectType; | ||
|  |   previewOfValuesOption: PageObjectType; | ||
|  |   addButton: ClickablePageObjectType; | ||
|  |   updateButton: ClickablePageObjectType; | ||
|  | } | ||
|  | 
 | ||
|  | export const variablePage = new TestPage<VariablePage>({ | ||
|  |   pageObjects: { | ||
|  |     headerLink: 'Variable editor Header link', | ||
|  |     modeLabel: 'Variable editor Header mode New', | ||
|  |     generalNameInput: 'Variable editor Form Name field', | ||
|  |     generalTypeSelect: 'Variable editor Form Type select', | ||
|  |     generalLabelInput: 'Variable editor Form Label field', | ||
|  |     generalHideSelect: 'Variable editor Form Hide select', | ||
|  |     queryOptionsDataSourceSelect: 'Variable editor Form Query DataSource select', | ||
|  |     queryOptionsRefreshSelect: 'Variable editor Form Query Refresh select', | ||
|  |     queryOptionsRegExInput: 'Variable editor Form Query RegEx field', | ||
|  |     queryOptionsSortSelect: 'Variable editor Form Query Sort select', | ||
|  |     queryOptionsQueryInput: 'Variable editor Form Default Variable Query Editor textarea', | ||
|  |     selectionOptionsMultiSwitch: () => Selector.fromSwitchLabel('Variable editor Form Multi switch'), | ||
|  |     selectionOptionsIncludeAllSwitch: () => Selector.fromSwitchLabel('Variable editor Form IncludeAll switch'), | ||
|  |     selectionOptionsCustomAllInput: 'Variable editor Form IncludeAll field', | ||
|  |     valueGroupsTagsEnabledSwitch: () => Selector.fromSwitchLabel('Variable editor Form Query UseTags switch'), | ||
|  |     valueGroupsTagsTagsQueryInput: 'Variable editor Form Query TagsQuery field', | ||
|  |     valueGroupsTagsTagsValuesQueryInput: 'Variable editor Form Query TagsValuesQuery field', | ||
|  |     previewOfValuesOption: 'Variable editor Preview of Values option', | ||
|  |     addButton: 'Variable editor Add button', | ||
|  |     updateButton: 'Variable editor Update button', | ||
|  |   }, | ||
|  | }); | ||
|  | 
 | ||
|  | export interface CreateQueryVariableArguments { | ||
|  |   page: TestPage<VariablePage>; | ||
|  |   name: string; | ||
|  |   label: string; | ||
|  |   datasourceName: string; | ||
|  |   query: string; | ||
|  | } | ||
|  | 
 | ||
|  | export const createQueryVariable = async ({ | ||
|  |   page, | ||
|  |   name, | ||
|  |   label, | ||
|  |   datasourceName, | ||
|  |   query, | ||
|  | }: CreateQueryVariableArguments) => { | ||
|  |   console.log('Creating a Query Variable with required'); | ||
|  |   await page.pageObjects.generalNameInput.enter(name); | ||
|  |   await page.pageObjects.generalLabelInput.enter(label); | ||
|  |   await page.pageObjects.queryOptionsDataSourceSelect.select(`string:${datasourceName}`); | ||
|  |   await page.pageObjects.queryOptionsQueryInput.exists(); | ||
|  |   await page.pageObjects.queryOptionsQueryInput.containsPlaceholder('metric name or tags query'); | ||
|  |   await page.pageObjects.queryOptionsQueryInput.enter(query); | ||
|  |   await page.pageObjects.queryOptionsQueryInput.blur(); | ||
|  |   await page.pageObjects.previewOfValuesOption.exists(); | ||
|  |   await page.pageObjects.selectionOptionsMultiSwitch.toggle(); | ||
|  |   await page.pageObjects.selectionOptionsMultiSwitch.isSwitchedOn(); | ||
|  |   await page.pageObjects.selectionOptionsIncludeAllSwitch.toggle(); | ||
|  |   await page.pageObjects.selectionOptionsIncludeAllSwitch.isSwitchedOn(); | ||
|  |   await page.pageObjects.selectionOptionsCustomAllInput.exists(); | ||
|  |   await page.pageObjects.selectionOptionsCustomAllInput.containsText(''); | ||
|  |   await page.pageObjects.selectionOptionsCustomAllInput.containsPlaceholder('blank = auto'); | ||
|  |   await page.pageObjects.addButton.click(); | ||
|  |   console.log('Creating a Query Variable with required, OK!'); | ||
|  | }; |