File: userpreferences.js

package info (click to toggle)
mediawiki-extension-codemirror 6.0.0~git20250325.399da27-2
  • links: PTS, VCS
  • area: main
  • in suites: sid, trixie
  • size: 3,048 kB
  • sloc: javascript: 34,669; php: 366; sh: 84; makefile: 13
file content (42 lines) | stat: -rw-r--r-- 1,177 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
'use strict';

const Api = require( 'wdio-mediawiki/Api' ),
	BlankPage = require( 'wdio-mediawiki/BlankPage' ),
	LoginPage = require( 'wdio-mediawiki/LoginPage' ),
	Util = require( 'wdio-mediawiki/Util' );

class UserPreferences {
	async loginAsOther() {
		const username = Util.getTestString( 'User-' );
		const password = Util.getTestString();
		await Api.createAccount( await Api.bot(), username, password );
		await LoginPage.login( username, password );
	}

	async setPreferences( preferences ) {
		await BlankPage.open();
		Util.waitForModuleState( 'mediawiki.base' );

		return await browser.execute( ( prefs ) => mw.loader.using( 'mediawiki.api' ).then( () => new mw.Api().saveOptions( prefs ) ), preferences );
	}

	async enableWikitext2010EditorWithCodeMirror() {
		await this.setPreferences( {
			usebetatoolbar: '1',
			usecodemirror: '1',
			'visualeditor-enable': '0',
			'visualeditor-newwikitext': '0'
		} );
	}

	async enableWikitext2017EditorWithCodeMirror() {
		await this.setPreferences( {
			usebetatoolbar: null,
			usecodemirror: '1',
			'visualeditor-enable': '1',
			'visualeditor-newwikitext': '1'
		} );
	}
}

module.exports = new UserPreferences();