mirror of
https://gerrit.wikimedia.org/r/mediawiki/skins/Vector.git
synced 2024-11-24 23:55:53 +00:00
Merge "Update a11y tests to output files in log/"
This commit is contained in:
commit
8e583116de
|
@ -1,5 +1,6 @@
|
|||
/.storybook/
|
||||
/docs/
|
||||
/log/
|
||||
/i18n/
|
||||
/node_modules/
|
||||
/vendor/
|
||||
|
|
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -20,6 +20,7 @@ sftp-config.json
|
|||
# Building & testing
|
||||
/composer.lock
|
||||
/docs
|
||||
/log
|
||||
/node_modules
|
||||
/vendor
|
||||
/coverage
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
"lint:js": "eslint --cache .",
|
||||
"lint:styles": "stylelint \"**/*.{less,css}\"",
|
||||
"lint:i18n": "banana-checker --requireLowerCase=0 i18n/",
|
||||
"doc": "jsdoc -c jsdoc.json && npm run build-storybook -s resources/skins.vector.styles && npm run test:a11y",
|
||||
"doc": "jsdoc -c jsdoc.json && npm run build-storybook -s resources/skins.vector.styles",
|
||||
"build-storybook": "bash dev-scripts/setup-storybook.sh && build-storybook --quiet --loglevel warn -o docs/ui",
|
||||
"minify-svg": "svgo --config=.svgo.config.js --quiet --recursive --folder resources/",
|
||||
"pre-commit": "[ \"${PRE_COMMIT:-1}\" -eq 0 ] || npm -s t"
|
||||
|
|
|
@ -8,7 +8,7 @@ const testData = {
|
|||
};
|
||||
|
||||
module.exports = {
|
||||
reportDir: 'docs/a11y',
|
||||
reportDir: 'log/a11y',
|
||||
namespace: 'Vector',
|
||||
defaults: {
|
||||
viewport: {
|
||||
|
@ -33,11 +33,14 @@ module.exports = {
|
|||
tests: [
|
||||
{
|
||||
name: 'default',
|
||||
url: testData.baseUrl + testData.defaultPage
|
||||
url: testData.baseUrl + testData.pageUrl,
|
||||
actions: [
|
||||
'click #mw-sidebar-button'
|
||||
]
|
||||
},
|
||||
{
|
||||
name: 'logged_in',
|
||||
url: testData.baseUrl + testData.defaultPage,
|
||||
url: testData.baseUrl + testData.pageUrl,
|
||||
wait: '500',
|
||||
actions: [
|
||||
'click #p-personal-checkbox',
|
||||
|
@ -47,12 +50,13 @@ module.exports = {
|
|||
'set field #wpName1 to ' + testData.loginUser,
|
||||
'set field #wpPassword1 to ' + testData.loginPassword,
|
||||
'click #wpLoginAttempt',
|
||||
'wait for #pt-userpage-2 to be visible' // Confirm login was successful
|
||||
'wait for #pt-userpage-2 to be visible', // Confirm login was successful
|
||||
'click #mw-sidebar-button'
|
||||
]
|
||||
},
|
||||
{
|
||||
name: 'search',
|
||||
url: testData.baseUrl + testData.defaultPage,
|
||||
url: testData.baseUrl + testData.pageUrl,
|
||||
rootElement: '#p-search',
|
||||
wait: '500',
|
||||
actions: [
|
||||
|
|
|
@ -14,7 +14,7 @@ const config = require( path.resolve( __dirname, 'a11y.config.js' ) );
|
|||
*/
|
||||
function resetReportDir() {
|
||||
// Delete and create report directory
|
||||
fs.rmdirSync( config.reportDir, { recursive: true } );
|
||||
fs.rmSync( config.reportDir, { recursive: true } );
|
||||
fs.mkdirSync( config.reportDir, { recursive: true } );
|
||||
}
|
||||
|
||||
|
@ -27,8 +27,8 @@ function resetReportDir() {
|
|||
* @return {Promise<any>}
|
||||
*/
|
||||
function sendMetrics( namespace, name, count ) {
|
||||
const metricPrefix = 'MediaWiki.a11y';
|
||||
const url = `${process.env.BEACON_URL}${metricPrefix}.${namespace}.${name}=${count}c`;
|
||||
const metricPrefix = 'ci_a11y';
|
||||
const url = `${process.env.WMF_JENKINS_BEACON_URL}${metricPrefix}.${namespace}.${name}=${count}c`;
|
||||
return fetch( url );
|
||||
}
|
||||
|
||||
|
@ -38,6 +38,12 @@ function sendMetrics( namespace, name, count ) {
|
|||
* @param {Object} opts
|
||||
*/
|
||||
async function runTests( opts ) {
|
||||
if ( !process.env.MW_SERVER ||
|
||||
!process.env.MEDIAWIKI_USER ||
|
||||
!process.env.MEDIAWIKI_PASSWORD ) {
|
||||
throw new Error( 'Missing env variables' );
|
||||
}
|
||||
|
||||
try {
|
||||
const tests = config.tests;
|
||||
const allValidTests = tests.filter( ( test ) => test.name ).length === tests.length;
|
||||
|
@ -45,7 +51,7 @@ async function runTests( opts ) {
|
|||
throw new Error( 'Config missing test name' );
|
||||
}
|
||||
|
||||
const canLogResults = process.env.BEACON_URL && config.namespace;
|
||||
const canLogResults = process.env.WMF_JENKINS_BEACON_URL && config.namespace;
|
||||
if ( opts.logResults && !canLogResults ) {
|
||||
throw new Error( 'Unable to log results, missing config or env variables' );
|
||||
}
|
||||
|
@ -78,7 +84,7 @@ async function runTests( opts ) {
|
|||
}
|
||||
|
||||
// Send data to Graphite
|
||||
// BEACON_URL is only defined in CI env
|
||||
// WMF_JENKINS_BEACON_URL is only defined in CI env
|
||||
if ( opts.logResults && canLogResults ) {
|
||||
await sendMetrics( config.namespace, testResult.name, errorNum )
|
||||
.then( ( response ) => {
|
||||
|
|
Loading…
Reference in a new issue