mirror of https://github.com/grafana/grafana
Chore: E2E tests for various variables types (#44747)
* Pass data-testid into VariableTextEditorField * Add e2e tests for custom variables * Rename query variable specs to match others * Add e2e tests for Text Box variables * manually remove id: null * Add tests for constant variablespull/44407/head^2
parent
984c95de63
commit
ce4d8646fd
@ -0,0 +1,76 @@ |
||||
{ |
||||
"__inputs": [], |
||||
"__elements": [], |
||||
"__requires": [ |
||||
{ |
||||
"type": "grafana", |
||||
"id": "grafana", |
||||
"name": "Grafana", |
||||
"version": "8.4.0-pre" |
||||
}, |
||||
{ |
||||
"type": "panel", |
||||
"id": "text", |
||||
"name": "Text", |
||||
"version": "" |
||||
} |
||||
], |
||||
"annotations": { |
||||
"list": [ |
||||
{ |
||||
"builtIn": 1, |
||||
"datasource": "-- Grafana --", |
||||
"enable": true, |
||||
"hide": true, |
||||
"iconColor": "rgba(0, 211, 255, 1)", |
||||
"name": "Annotations & Alerts", |
||||
"target": { |
||||
"limit": 100, |
||||
"matchAny": false, |
||||
"tags": [], |
||||
"type": "dashboard" |
||||
}, |
||||
"type": "dashboard" |
||||
} |
||||
] |
||||
}, |
||||
"editable": true, |
||||
"fiscalYearStartMonth": 0, |
||||
"graphTooltip": 0, |
||||
"links": [], |
||||
"liveNow": false, |
||||
"panels": [ |
||||
{ |
||||
"gridPos": { |
||||
"h": 9, |
||||
"w": 12, |
||||
"x": 0, |
||||
"y": 0 |
||||
}, |
||||
"id": 2, |
||||
"options": { |
||||
"mode": "markdown", |
||||
"content": "VariableUnderTest: $VariableUnderTest" |
||||
}, |
||||
"pluginVersion": "8.4.0-pre", |
||||
"title": "Panel Title", |
||||
"type": "text" |
||||
} |
||||
], |
||||
"schemaVersion": 35, |
||||
"style": "dark", |
||||
"tags": [], |
||||
"templating": { |
||||
"list": [] |
||||
}, |
||||
"time": { |
||||
"from": "now-6h", |
||||
"to": "now" |
||||
}, |
||||
"timepicker": {}, |
||||
"timezone": "", |
||||
"title": "Test variable output", |
||||
"uid": "kVi2Gex7z", |
||||
"version": 2, |
||||
"weekStart": "" |
||||
} |
@ -0,0 +1,31 @@ |
||||
import { e2e } from '@grafana/e2e'; |
||||
|
||||
const PAGE_UNDER_TEST = 'kVi2Gex7z/test-variable-output'; |
||||
|
||||
describe('Variables - Constant', () => { |
||||
it('can add a new text box variable', () => { |
||||
e2e.flows.login('admin', 'admin'); |
||||
e2e.flows.openDashboard({ uid: `${PAGE_UNDER_TEST}?orgId=1&editview=templating` }); |
||||
|
||||
// Create a new "Constant" variable
|
||||
e2e.components.CallToActionCard.buttonV2('Add variable').click(); |
||||
|
||||
e2e.pages.Dashboard.Settings.Variables.Edit.General.generalTypeSelect().type('Constant{enter}'); |
||||
e2e.pages.Dashboard.Settings.Variables.Edit.General.generalNameInput().clear().type('VariableUnderTest').blur(); |
||||
e2e.pages.Dashboard.Settings.Variables.Edit.General.generalLabelInput().type('Variable under test').blur(); |
||||
e2e.pages.Dashboard.Settings.Variables.Edit.ConstantVariable.constantOptionsQueryInput().type('pesto').blur(); |
||||
|
||||
e2e.pages.Dashboard.Settings.Variables.Edit.General.previewOfValuesOption().eq(0).should('have.text', 'pesto'); |
||||
|
||||
// Navigate back to the homepage and change the selected variable value
|
||||
e2e.pages.Dashboard.Settings.Variables.Edit.General.submitButton().click(); |
||||
e2e.components.BackButton.backArrow().should('be.visible').click({ force: true }); |
||||
e2e.components.RefreshPicker.runButtonV2().click(); |
||||
|
||||
// Assert it was rendered
|
||||
e2e().get('.markdown-html').should('include.text', 'VariableUnderTest: pesto'); |
||||
|
||||
// Assert the variable is not visible in the dashboard nav
|
||||
e2e.pages.Dashboard.SubMenu.submenuItemLabels('Variable under test').should('not.exist'); |
||||
}); |
||||
}); |
@ -0,0 +1,60 @@ |
||||
import { e2e } from '@grafana/e2e'; |
||||
|
||||
const PAGE_UNDER_TEST = 'kVi2Gex7z/test-variable-output'; |
||||
|
||||
function fillInCustomVariable(name: string, label: string, value: string) { |
||||
e2e.pages.Dashboard.Settings.Variables.Edit.General.generalTypeSelect().type('Custom{enter}'); |
||||
e2e.pages.Dashboard.Settings.Variables.Edit.General.generalNameInput().clear().type(name).blur(); |
||||
e2e.pages.Dashboard.Settings.Variables.Edit.General.generalLabelInput().type(label).blur(); |
||||
e2e.pages.Dashboard.Settings.Variables.Edit.CustomVariable.customValueInput().type(value).blur(); |
||||
} |
||||
|
||||
function assertPreviewValues(expectedValues: string[]) { |
||||
for (const expected of expectedValues) { |
||||
const index = expectedValues.indexOf(expected); |
||||
e2e.pages.Dashboard.Settings.Variables.Edit.General.previewOfValuesOption().eq(index).should('have.text', expected); |
||||
} |
||||
} |
||||
|
||||
describe('Variables - Custom', () => { |
||||
it('can add a custom template variable', () => { |
||||
e2e.flows.login('admin', 'admin'); |
||||
e2e.flows.openDashboard({ uid: `${PAGE_UNDER_TEST}?orgId=1&editview=templating` }); |
||||
|
||||
// Create a new "Custom" variable
|
||||
e2e.components.CallToActionCard.buttonV2('Add variable').click(); |
||||
fillInCustomVariable('VariableUnderTest', 'Variable under test', 'one,two,three'); |
||||
assertPreviewValues(['one', 'two', 'three']); |
||||
|
||||
// Navigate back to the homepage and change the selected variable value
|
||||
e2e.pages.Dashboard.Settings.Variables.Edit.General.submitButton().click(); |
||||
e2e.components.BackButton.backArrow().should('be.visible').click({ force: true }); |
||||
e2e.pages.Dashboard.SubMenu.submenuItemValueDropDownValueLinkTexts('one').click(); |
||||
e2e.pages.Dashboard.SubMenu.submenuItemValueDropDownOptionTexts('two').click(); |
||||
|
||||
// Assert it was rendered
|
||||
e2e().get('.markdown-html').should('include.text', 'VariableUnderTest: two'); |
||||
}); |
||||
|
||||
it('can add a custom template variable with labels', () => { |
||||
e2e.flows.login('admin', 'admin'); |
||||
e2e.flows.openDashboard({ uid: `${PAGE_UNDER_TEST}?orgId=1&editview=templating` }); |
||||
|
||||
// Create a new "Custom" variable
|
||||
e2e.components.CallToActionCard.buttonV2('Add variable').click(); |
||||
e2e.pages.Dashboard.Settings.Variables.Edit.General.generalTypeSelect().type('Custom{enter}'); |
||||
|
||||
// Set it's name, label, and content
|
||||
fillInCustomVariable('VariableUnderTest', 'Variable under test', 'One : 1,Two : 2, Three : 3'); |
||||
assertPreviewValues(['One', 'Two', 'Three']); |
||||
|
||||
// Navigate back to the homepage and change the selected variable value
|
||||
e2e.pages.Dashboard.Settings.Variables.Edit.General.submitButton().click(); |
||||
e2e.components.BackButton.backArrow().should('be.visible').click({ force: true }); |
||||
e2e.pages.Dashboard.SubMenu.submenuItemValueDropDownValueLinkTexts('One').click(); |
||||
e2e.pages.Dashboard.SubMenu.submenuItemValueDropDownOptionTexts('Two').click(); |
||||
|
||||
// Assert it was rendered
|
||||
e2e().get('.markdown-html').should('include.text', 'VariableUnderTest: 2'); |
||||
}); |
||||
}); |
@ -0,0 +1,28 @@ |
||||
import { e2e } from '@grafana/e2e'; |
||||
|
||||
const PAGE_UNDER_TEST = 'kVi2Gex7z/test-variable-output'; |
||||
|
||||
describe('Variables - Text box', () => { |
||||
it('can add a new text box variable', () => { |
||||
e2e.flows.login('admin', 'admin'); |
||||
e2e.flows.openDashboard({ uid: `${PAGE_UNDER_TEST}?orgId=1&editview=templating` }); |
||||
|
||||
// Create a new "Custom" variable
|
||||
e2e.components.CallToActionCard.buttonV2('Add variable').click(); |
||||
|
||||
e2e.pages.Dashboard.Settings.Variables.Edit.General.generalTypeSelect().type('Text box{enter}'); |
||||
e2e.pages.Dashboard.Settings.Variables.Edit.General.generalNameInput().clear().type('VariableUnderTest').blur(); |
||||
e2e.pages.Dashboard.Settings.Variables.Edit.General.generalLabelInput().type('Variable under test').blur(); |
||||
e2e.pages.Dashboard.Settings.Variables.Edit.TextBoxVariable.textBoxOptionsQueryInput().type('cat-dog').blur(); |
||||
|
||||
e2e.pages.Dashboard.Settings.Variables.Edit.General.previewOfValuesOption().eq(0).should('have.text', 'cat-dog'); |
||||
|
||||
// Navigate back to the homepage and change the selected variable value
|
||||
e2e.pages.Dashboard.Settings.Variables.Edit.General.submitButton().click(); |
||||
e2e.components.BackButton.backArrow().should('be.visible').click({ force: true }); |
||||
e2e().get('#VariableUnderTest').clear().type('dog-cat').blur(); |
||||
|
||||
// Assert it was rendered
|
||||
e2e().get('.markdown-html').should('include.text', 'VariableUnderTest: dog-cat'); |
||||
}); |
||||
}); |
Loading…
Reference in new issue