mirror of
https://github.com/grafana/grafana.git
synced 2024-11-24 09:50:29 -06:00
773da0e330
* Add keybindings to explore, allow override of dashboard model update for explore update * Remove edits to Dashboard Model, add definition when url params should be updated * Add tests * Add and expose util function instead of bringing in unrelated library do not define explicit path to library file * Use more generic model for TimeSrv * Remove url utility functions, use javascript function instead * Break out TimeModel into new type and bring it in * condense object creation
48 lines
1.7 KiB
TypeScript
48 lines
1.7 KiB
TypeScript
import { e2e } from '@grafana/e2e';
|
|
|
|
e2e.scenario({
|
|
describeName: 'Explore',
|
|
itName: 'Basic path through Explore.',
|
|
addScenarioDataSource: false,
|
|
addScenarioDashBoard: false,
|
|
skipScenario: false,
|
|
scenario: () => {
|
|
e2e.pages.Explore.visit();
|
|
e2e.pages.Explore.General.container().should('have.length', 1);
|
|
e2e.components.RefreshPicker.runButtonV2().should('have.length', 1);
|
|
|
|
e2e.components.DataSource.TestData.QueryTab.scenarioSelectContainer()
|
|
.should('be.visible')
|
|
.within(() => {
|
|
e2e().get('input[id*="test-data-scenario-select-"]').should('be.visible').click();
|
|
});
|
|
|
|
cy.contains('CSV Metric Values').scrollIntoView().should('be.visible').click();
|
|
|
|
cy.location().then((loc) => {
|
|
const params = new URLSearchParams(loc.search);
|
|
const leftJSON = JSON.parse(params.get('left'));
|
|
expect(leftJSON.range.to).to.equal('now');
|
|
expect(leftJSON.range.from).to.equal('now-1h');
|
|
|
|
cy.get('body').click();
|
|
cy.get('body').type('t{leftarrow}');
|
|
|
|
cy.location().then((locPostKeypress) => {
|
|
const params = new URLSearchParams(locPostKeypress.search);
|
|
const leftJSON = JSON.parse(params.get('left'));
|
|
// be sure the keypress affected the time window
|
|
expect(leftJSON.range.to).to.not.equal('now');
|
|
expect(leftJSON.range.from).to.not.equal('now-1h');
|
|
// be sure the url does not contain dashboard range values
|
|
// eslint wants this to be a function, so we use this instead of to.be.false
|
|
expect(params.has('to')).to.equal(false);
|
|
expect(params.has('from')).to.equal(false);
|
|
});
|
|
});
|
|
|
|
const canvases = e2e().get('canvas');
|
|
canvases.should('have.length', 1);
|
|
},
|
|
});
|