Page Menu
Home
WickedGov Phorge
Search
Configure Global Search
Log In
Files
F5980293
wdio-defaults.conf.js
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Flag For Later
Award Token
Size
4 KB
Referenced Files
None
Subscribers
None
wdio-defaults.conf.js
View Options
/**
* Base WebdriverIO configuration, meant to be imported from skins and extensions like so:
*
* const { config } = require( 'wdio-mediawiki/wdio-defaults.conf.js' );
*
* exports.config = { ...config,
* logLevel: 'info'
* };
*/
'use strict'
;
let
ffmpeg
;
const
fs
=
require
(
'fs'
);
const
path
=
require
(
'path'
);
const
logPath
=
process
.
env
.
LOG_DIR
||
path
.
join
(
process
.
cwd
(),
'tests/selenium/log'
);
const
{
makeFilenameDate
,
saveScreenshot
,
startVideo
,
stopVideo
}
=
require
(
'wdio-mediawiki'
);
// T355556: remove when T324766 is resolved
const
dns
=
require
(
'dns'
);
if
(
!
process
.
env
.
MW_SERVER
||
!
process
.
env
.
MW_SCRIPT_PATH
)
{
throw
new
Error
(
'MW_SERVER or MW_SCRIPT_PATH not defined.\nSee https://www.mediawiki.org/wiki/Selenium/How-to/Set_environment_variables\n'
);
}
/**
* For more details documentation and available options:
* - https://webdriver.io/docs/configurationfile
* - https://webdriver.io/docs/configuration
*/
exports
.
config
=
{
// ======
// Custom conf keys for MediaWiki
//
// Access via `browser.config.<key>`.
// Defaults are for MediaWiki-Docker
// ======
mwUser
:
process
.
env
.
MEDIAWIKI_USER
,
mwPwd
:
process
.
env
.
MEDIAWIKI_PASSWORD
,
// ==================
// Runner Configuration
// ==================
runner
:
'local'
,
// ==================
// Test Files
// ==================
specs
:
[
'./tests/selenium/specs/**/*.js'
],
// ============
// Capabilities
// Define the different browser configurations to use ("capabilities") here.
// ============
maxInstances
:
1
,
capabilities
:
[
{
// For Chrome/Chromium https://www.w3.org/TR/webdriver
browserName
:
'chrome'
,
'goog:chromeOptions'
:
{
// If DISPLAY is set, assume developer asked non-headless or CI with Xvfb.
// Otherwise, use --headless.
args
:
[
// Dismissed Chrome's `Save password?` popup
'--enable-automation'
,
...(
process
.
env
.
DISPLAY
?
[]
:
[
'--headless'
]
),
// Chrome sandbox does not work in Docker
...(
fs
.
existsSync
(
'/.dockerenv'
)
?
[
'--no-sandbox'
]
:
[]
),
// Workaround inputs not working consistently post-navigation on Chrome 90
// https://issuetracker.google.com/issues/42322798
'--allow-pre-commit-input'
]
}
}
],
// ===================
// Test Configurations
// Define all options that are relevant for the WebdriverIO instance here
// ===================
// Level of logging verbosity: trace | debug | info | warn | error | silent
logLevel
:
'error'
,
// Setting this enables automatic screenshots for when a browser command fails
// It is also used by afterTest for capturing screenshots.
screenshotPath
:
logPath
,
// Stop after this many failures, or 0 to run all tests before reporting failures.
bail
:
0
,
// Base for browser.url() and wdio-mediawiki/Page#openTitle()
baseUrl
:
process
.
env
.
MW_SERVER
+
process
.
env
.
MW_SCRIPT_PATH
,
// See also: https://webdriver.io/docs/frameworks
framework
:
'mocha'
,
// See also: https://mochajs.org
// The number of times to retry the entire specfile when it fails as a whole
specFileRetries
:
1
,
// Delay in seconds between the spec file retry attempts
specFileRetriesDelay
:
0
,
// Whether or not retried specfiles should be retried immediately or deferred to the end of the
// queue
specFileRetriesDeferred
:
false
,
mochaOpts
:
{
ui
:
'bdd'
,
timeout
:
process
.
env
.
DEBUG
?
(
60
*
60
*
1000
)
:
(
60
*
1000
)
},
// See also: https://webdriver.io/docs/dot-reporter
reporters
:
[
// See also: https://webdriver.io/docs/spec-reporter
'spec'
,
// See also: https://webdriver.io/docs/junit-reporter
[
'junit'
,
{
outputDir
:
logPath
,
outputFileFormat
:
function
()
{
const
random
=
Math
.
random
().
toString
(
16
).
slice
(
2
,
10
);
return
`WDIO.xunit-
${
makeFilenameDate
()
}
-
${
random
}
.xml`
;
}
}
]
],
// =====
// Hooks
// =====
/**
* Gets executed just before initializing the webdriver session and test framework.
* It allows you to manipulate configurations depending on the capability or spec.
*
* @param {Object} config wdio configuration object
* @param {Array.<Object>} capabilities list of capabilities details
* @param {Array.<string>} specs List of spec file paths that are to be run
*/
// T355556: remove when T324766 is resolved
beforeSession
:
function
()
{
// eslint-disable-next-line n/no-unsupported-features/node-builtins
dns
.
setDefaultResultOrder
(
'ipv4first'
);
},
/**
* Executed before a Mocha test starts.
*
* @param {Object} test Mocha Test object
*/
beforeTest
:
function
(
test
)
{
ffmpeg
=
startVideo
(
ffmpeg
,
`
${
test
.
parent
}
-
${
test
.
title
}
`
);
},
/**
* Executed after a Mocha test ends.
*
* @param {Object} test Mocha Test object
*/
afterTest
:
async
function
(
test
)
{
await
saveScreenshot
(
`
${
test
.
parent
}
-
${
test
.
title
}
`
);
stopVideo
(
ffmpeg
);
}
};
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Sat, Oct 3, 21:19 (1 w, 13 h ago)
Storage Engine
local-disk
Storage Format
Raw Data
Storage Handle
74/e1/48a4b0420b696a94cc2aff862238
Default Alt Text
wdio-defaults.conf.js (4 KB)
Attached To
Mode
rMWPROD MediaWiki Production
Attached
Detach File
Event Timeline
Log In to Comment