mirror of https://github.com/grafana/grafana
Accessibility checks: Phase 2 - Adding Pa11y CI PR stage (#38556)
Co-authored-by: Hugo Häggmark <hugo.haggmark@grafana.com>pull/39179/head
parent
27e3fda7ce
commit
1edd415ddf
@ -0,0 +1,96 @@ |
||||
var config = { |
||||
defaults: { |
||||
concurrency: 1, |
||||
runners: ['axe'], |
||||
chromeLaunchConfig: { |
||||
args: ['--no-sandbox'], |
||||
}, |
||||
}, |
||||
|
||||
urls: [ |
||||
{ |
||||
url: '${HOST}/login', |
||||
actions: [ |
||||
"set field input[name='user'] to admin", |
||||
"set field input[name='password'] to admin", |
||||
"click element button[aria-label='Login button']", |
||||
"wait for element [aria-label='Skip change password button'] to be visible", |
||||
], |
||||
threshold: 2, |
||||
}, |
||||
{ |
||||
url: '${HOST}/?orgId=1', |
||||
threshold: 7, |
||||
}, |
||||
{ |
||||
url: '${HOST}/d/O6f11TZWk/panel-tests-bar-gauge', |
||||
hideElements: '.sidemenu', |
||||
threshold: 2, |
||||
}, |
||||
{ |
||||
url: '${HOST}/d/O6f11TZWk/panel-tests-bar-gauge?orgId=1&editview=settings', |
||||
rootElement: '.dashboard-settings', |
||||
threshold: 10, |
||||
}, |
||||
{ |
||||
url: '${HOST}/?orgId=1&search=open', |
||||
rootElement: '.main-view', |
||||
threshold: 15, |
||||
}, |
||||
{ |
||||
url: '${HOST}/alerting/list', |
||||
rootElement: '.main-view', |
||||
threshold: 7, |
||||
}, |
||||
{ |
||||
url: '${HOST}/datasources', |
||||
rootElement: '.main-view', |
||||
threshold: 36, |
||||
}, |
||||
{ |
||||
url: '${HOST}/org/users', |
||||
rootElement: '.main-view', |
||||
threshold: 4, |
||||
}, |
||||
{ |
||||
url: '${HOST}/org/teams', |
||||
rootElement: '.main-view', |
||||
threshold: 1, |
||||
}, |
||||
{ |
||||
url: '${HOST}/plugins', |
||||
rootElement: '.main-view', |
||||
threshold: 41, |
||||
}, |
||||
{ |
||||
url: '${HOST}/org', |
||||
rootElement: '.main-view', |
||||
threshold: 2, |
||||
}, |
||||
{ |
||||
url: '${HOST}/org/apikeys', |
||||
rootElement: '.main-view', |
||||
threshold: 5, |
||||
}, |
||||
{ |
||||
url: '${HOST}/dashboards', |
||||
rootElement: '.main-view', |
||||
threshold: 8, |
||||
}, |
||||
], |
||||
}; |
||||
|
||||
function myPa11yCiConfiguration(urls, defaults) { |
||||
const HOST_SERVER = process.env.HOST || 'localhost'; |
||||
const PORT_SERVER = process.env.PORT || '3000'; |
||||
for (var idx = 0; idx < urls.length; idx++) { |
||||
urls[idx] = { ...urls[idx], url: urls[idx].url.replace('${HOST}', `${HOST_SERVER}:${PORT_SERVER}`) }; |
||||
} |
||||
|
||||
return { |
||||
defaults: defaults, |
||||
urls: urls, |
||||
}; |
||||
} |
||||
|
||||
module.exports = myPa11yCiConfiguration(config.urls, config.defaults); |
@ -0,0 +1,27 @@ |
||||
#!/usr/bin/env bash |
||||
|
||||
set -x |
||||
|
||||
# Clean up old report |
||||
jsonReport="pa11y-ci-results.json" |
||||
if [ -f "$jsonReport" ] ; then |
||||
rm "$jsonReport" |
||||
fi |
||||
|
||||
# Clean up old folder |
||||
report="pa11y-ci-report/" |
||||
|
||||
if [ -d "$report" ] ; then |
||||
rm -R "$report" |
||||
fi |
||||
|
||||
# Run accessibility command |
||||
yarn wait-on http://localhost:3000 |
||||
|
||||
yarn run -s test:accessibility --json > pa11y-ci-results.json |
||||
|
||||
# Generate HTML report |
||||
pa11y-ci-reporter-html |
||||
|
||||
# Start local server |
||||
yarn http-server pa11y-ci-report -p 1234 |
Loading…
Reference in new issue