Prometheus: Add e2e tests for decoupling (#80333)

* update selectors for prom

* add selector to switch component, needs id instead of testid

* add testid and ids to Prom settings

* add e2e tests for prom config

* add config to editor test

* export select function

* start query editor spec

* clean up describe

* add selectors for general query editor

* add selectors to components in options in best locations

* wrap header switch in id because component doesn't accept testid nor id

* add id to wrap legend components in one selector

* update selector in shared folder component, note to change in shared library

* update selector in shared folder component, note to change in shared library

* add notes for selectors in shared folder

* add tests and file for query editor

* add selectors for metrics browser in code editor

* add selector to component to open metrics browser

* add selectors to components within the metrics browser

* add tests for metrics browser and stub resource calls

* add selectors to query builder components

* add e2e tests for query builder

* generic query builder test with hints

* add selectors for more code editor parts

* add test for code and update selector

* fix tests with selector

* remove shared folder changes and use data-testid where possible

* remove unused import

* share getResources

* create variable query editor selectors

* add selectors to the variable query editor

* add e2e tests for the Prometheus variable query editor

* fix test function

* refactor add data source method

* add annotation selectors

* add selectors to annotation components

* add annotation e2e tests

* commit for yarn i18n:extract error in drone
This commit is contained in:
Brendan O'Handley
2024-01-22 08:42:24 -06:00
committed by GitHub
parent 2210ed50b4
commit 639bf3036d
20 changed files with 782 additions and 62 deletions

View File

@@ -62,11 +62,83 @@ export const Components = {
},
Prometheus: {
configPage: {
connectionSettings: 'Data source connection URL',
connectionSettings: 'Data source connection URL', // aria-label in grafana experimental
manageAlerts: 'prometheus-alerts-manager', // id for switch component
scrapeInterval: 'data-testid scrape interval',
queryTimeout: 'data-testid query timeout',
defaultEditor: 'data-testid default editor',
disableMetricLookup: 'disable-metric-lookup', // id for switch component
prometheusType: 'data-testid prometheus type',
prometheusVersion: 'data-testid prometheus version',
cacheLevel: 'data-testid cache level',
incrementalQuerying: 'prometheus-incremental-querying', // id for switch component
queryOverlapWindow: 'data-testid query overlap window',
disableRecordingRules: 'disable-recording-rules', // id for switch component
customQueryParameters: 'data-testid custom query parameters',
httpMethod: 'data-testid http method',
exemplarsAddButton: 'data-testid Add exemplar config button',
internalLinkSwitch: 'data-testid Internal link switch',
},
queryEditor: {
// kickstart: '', see QueryBuilder queryPatterns below
explain: 'data-testid prometheus explain switch wrapper',
editorToggle: 'data-testid QueryEditorModeToggle', // wrapper for toggle
options: 'data-testid prometheus options', // wrapper for options group
legend: 'data-testid prometheus legend wrapper', // wrapper for multiple compomnents
format: 'data-testid prometheus format',
step: 'prometheus-step', // id for autosize component
type: 'data-testid prometheus type', //wrapper for radio button group
exemplars: 'prometheus-exemplars', // id for editor switch component
builder: {
// see QueryBuilder below for commented selectors
// labelSelect: 'data-testid Select label',
// valueSelect: 'data-testid Select value',
// matchOperatorSelect: 'data-testid Select match operator',
metricSelect: 'data-testid metric select',
hints: 'data-testid prometheus hints', // wrapper for hints component
metricsExplorer: 'data-testid metrics explorer',
queryAdvisor: 'data-testid query advisor',
},
code: {
queryField: 'data-testid prometheus query field',
metricsBrowser: {
openButton: 'data-testid open metrics browser',
selectMetric: 'data-testid select a metric',
metricList: 'data-testid metric list',
labelNamesFilter: 'data-testid label names filter',
labelValuesFilter: 'data-testid label values filter',
useQuery: 'data-testid use query',
useAsRateQuery: 'data-testid use as rate query',
validateSelector: 'data-testid validate selector',
clear: 'data-testid clear',
},
},
},
exemplarMarker: 'data-testid Exemplar marker',
variableQueryEditor: {
queryType: 'data-testid query type',
labelnames: {
metricRegex: 'data-testid label names metric regex',
},
labelValues: {
labelSelect: 'data-testid label values label select',
// metric select see queryEditor: builder for more context
// label select for metric filtering see queryEditor: builder for more context
},
metricNames: {
metricRegex: 'data-testid metric names metric regex',
},
varQueryResult: 'data-testid variable query result',
seriesQuery: 'data-testid prometheus series query',
classicQuery: 'data-testid prometheus classic query',
},
annotations: {
minStep: 'prometheus-annotation-min-step', // id for autosize input
title: 'data-testid prometheus annotation title',
tags: 'data-testid prometheus annotation tags',
text: 'data-testid prometheus annotation text',
seriesValueAsTimestamp: 'data-testid prometheus annotation series value as timestamp',
},
},
},
Menu: {