mirror of https://github.com/grafana/grafana
DashList: Update links with time range and variables change (#77850)
* user essentials mob! 🔱
lastFile:public/app/plugins/panel/dashlist/DashList.tsx
* DashList: Update variables in URL when they change
Co-authored-by: eledobleefe <laura.fernandez@grafana.com>
Co-authored-by: Joao Silva <joao.silva@grafana.com>
Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
* add e2e test to check dashlist variables are always correctly passed
* add comment with link to issue
* Alternative solution
* Minor tweaks
* revert accidental change
* fix
* New solution
* Fix test
* refinement
* Added unit test
* Update devenv/dev-dashboards/panel-dashlist/dashlist.json
Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
---------
Co-authored-by: Joao Silva <joao.silva@grafana.com>
Co-authored-by: joshhunt <josh@trtr.co>
Co-authored-by: eledobleefe <laura.fernandez@grafana.com>
Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
pull/77577/head
parent
4a6b209d64
commit
848efba0de
@ -0,0 +1,86 @@ |
||||
{ |
||||
"annotations": { |
||||
"list": [ |
||||
{ |
||||
"builtIn": 1, |
||||
"datasource": { |
||||
"type": "grafana", |
||||
"uid": "-- Grafana --" |
||||
}, |
||||
"enable": true, |
||||
"hide": true, |
||||
"iconColor": "rgba(0, 211, 255, 1)", |
||||
"name": "Annotations & Alerts", |
||||
"type": "dashboard" |
||||
} |
||||
] |
||||
}, |
||||
"editable": true, |
||||
"fiscalYearStartMonth": 0, |
||||
"graphTooltip": 0, |
||||
"id": null, |
||||
"links": [], |
||||
"liveNow": false, |
||||
"panels": [ |
||||
{ |
||||
"datasource": { |
||||
"type": "grafana-testdata-datasource", |
||||
"uid": "PD8C576611E62080A" |
||||
}, |
||||
"gridPos": { |
||||
"h": 12, |
||||
"w": 12, |
||||
"x": 0, |
||||
"y": 0 |
||||
}, |
||||
"id": 2, |
||||
"options": { |
||||
"folderUID": "", |
||||
"includeVars": true, |
||||
"keepTime": false, |
||||
"maxItems": 10, |
||||
"query": "", |
||||
"showHeadings": true, |
||||
"showRecentlyViewed": true, |
||||
"showSearch": false, |
||||
"showStarred": false, |
||||
"tags": [] |
||||
}, |
||||
"pluginVersion": "10.3.0-pre", |
||||
"title": "Include time range and variables enabled", |
||||
"type": "dashlist" |
||||
} |
||||
], |
||||
"refresh": "", |
||||
"schemaVersion": 39, |
||||
"tags": ["gdev", "panel-tests"], |
||||
"templating": { |
||||
"list": [ |
||||
{ |
||||
"current": { |
||||
"selected": true, |
||||
"text": "A", |
||||
"value": "A" |
||||
}, |
||||
"hide": 0, |
||||
"includeAll": false, |
||||
"multi": true, |
||||
"name": "server", |
||||
"query": "A,B,C,D", |
||||
"queryValue": "", |
||||
"skipUrlSync": false, |
||||
"type": "custom" |
||||
} |
||||
] |
||||
}, |
||||
"time": { |
||||
"from": "now-6h", |
||||
"to": "now" |
||||
}, |
||||
"timepicker": {}, |
||||
"timezone": "", |
||||
"title": "Panel Tests - DashList", |
||||
"uid": "a6801696-cc53-4196-b1f9-2403e3909185", |
||||
"version": 1, |
||||
"weekStart": "" |
||||
} |
@ -0,0 +1,37 @@ |
||||
import { e2e } from '../utils'; |
||||
const PAGE_UNDER_TEST = 'a6801696-cc53-4196-b1f9-2403e3909185/panel-tests-dashlist-variables'; |
||||
|
||||
describe('DashList panel', () => { |
||||
beforeEach(() => { |
||||
e2e.flows.login(Cypress.env('USERNAME'), Cypress.env('PASSWORD')); |
||||
}); |
||||
|
||||
// this is to prevent the fix for https://github.com/grafana/grafana/issues/76800 from regressing
|
||||
it('should pass current variable values correctly when `Include current template variable values` is set', () => { |
||||
e2e.flows.openDashboard({ uid: PAGE_UNDER_TEST }); |
||||
|
||||
// check the initial value of the urls contain the variable value correctly
|
||||
e2e.components.Panels.Panel.title('Include time range and variables enabled') |
||||
.should('be.visible') |
||||
.within(() => { |
||||
cy.get('a').each(($el) => { |
||||
cy.wrap($el).should('have.attr', 'href').and('contain', 'var-server=A'); |
||||
}); |
||||
}); |
||||
|
||||
// update variable to b
|
||||
e2e.pages.Dashboard.SubMenu.submenuItemLabels('server').click(); |
||||
e2e.pages.Dashboard.SubMenu.submenuItemValueDropDownOptionTexts('B').click(); |
||||
// blur the dropdown
|
||||
cy.get('body').click(); |
||||
|
||||
// check the urls are updated with the new variable value
|
||||
e2e.components.Panels.Panel.title('Include time range and variables enabled') |
||||
.should('be.visible') |
||||
.within(() => { |
||||
cy.get('a').each(($el) => { |
||||
cy.wrap($el).should('have.attr', 'href').and('contain', 'var-server=B'); |
||||
}); |
||||
}); |
||||
}); |
||||
}); |
Loading…
Reference in new issue