selenium: Replace ES5 one-var assignments with const/let per line
[lhc/web/wiklou.git] / tests / selenium / wdio-mediawiki / README.md
1 # wdio-mediawiki
2
3 A plugin for [WebdriverIO](http://webdriver.io/) providing utilities to simplify testing of MediaWiki features.
4
5 ## Getting Started
6
7 ### Page
8
9 The `Page` class is a base class for following the [Page Objects Pattern](http://webdriver.io/guide/testrunner/pageobjects.html).
10
11 * `openTitle( title [, Object query [, string fragment ] ] )`
12
13 The convention is for implementations to extend this class and provide an `open()` method
14 that calls `super.openTitle()`, as well as add various getters for elements on the page.
15
16 See [BlankPage](./BlankPage.js) and [specs/BlankPage](./specs/BlankPage.js) for an example.
17
18 ### Api
19
20 Utilities to interact with the MediaWiki API. Uses the [mwbot](https://github.com/Fannon/mwbot) library.
21
22 Actions are performed logged-in using `browser.config.mwUser` and `browser.config.mwPwd`,
23 which typically come from `MEDIAWIKI_USER` and `MEDIAWIKI_PASSWORD` environment variables.
24
25 * `edit(string title, string content [, string username [, string password [, string baseUrl ] ] ])`
26 * `delete(string title, string reason)`
27 * `createAccount(string username, string password)`
28 * `blockUser([ string username [, string expiry ] ])`
29 * `unblockUser([ string username ])`
30 * `bot([string username [, string password [, string baseUrl ] ] ])`
31
32 ### RunJobs
33
34 Use the static `RunJobs.run()` method to ensure that any queued jobs are executed before
35 making assertions that depend on its outcome.
36
37 ### Util
38
39 `Util` is a collection of popular utility methods.
40
41 * `getTestString([ string prefix ])`
42 * `waitForModuleState(string moduleName [, string moduleStatus [, number timeout ] ])`
43
44 ## Versioning
45
46 This package follows [Semantic Versioning guidelines](https://semver.org/) for its releases. In
47 particular, its major version must be bumped when compatibility is removed for a previous of
48 MediaWiki.
49
50 It is the expectation that this module will only support a single version of MediaWiki at any
51 given time, and that tests in older branches of MediaWiki-related projects naturally use the older
52 release line of this package.
53
54 In order to allow for smooth and decentralised upgrades, it is recommended that the only type of
55 breaking change made to this package is a change that removes something. Thus, in order to change
56 something, it must either be backwards-compatible, or must be introduced as a new method that
57 co-exists with its deprecated equivalent for at least one release.
58
59 ## Issue tracker
60
61 Please report issues to [Phabricator](https://phabricator.wikimedia.org/tag/mediawiki-core-tests/).
62
63 ## Contributing
64
65 This module is maintained in the MediaWiki core repository and published from there as a
66 package to npmjs.org. To simplify development and to ensure changes are verified
67 automatically, MediaWiki core itself uses this module directly from the working copy
68 using [npm Local Paths](https://docs.npmjs.com/files/package.json#local-paths).