Zfilipin has uploaded a new change for review. (
https://gerrit.wikimedia.org/r/382183 )
Change subject: WIP Mocha tests for Echo notifications
......................................................................
WIP Mocha tests for Echo notifications
Bug: T177412
Change-Id: Ia68c2a26240cc5a07f2122a5f3a6caa0f199a313
---
M Gruntfile.js
M package.json
A tests/mocha/.eslintrc.json
A tests/mocha/README.md
A tests/mocha/notifications.js
5 files changed, 94 insertions(+), 1 deletion(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Echo
refs/changes/83/382183/1
diff --git a/Gruntfile.js b/Gruntfile.js
index c389ce1..8660b07 100644
--- a/Gruntfile.js
+++ b/Gruntfile.js
@@ -49,4 +49,5 @@
grunt.registerTask( 'lint', [ 'eslint', 'stylelint', 'jsonlint',
'banana' ] );
grunt.registerTask( 'test', 'lint' );
grunt.registerTask( 'default', 'test' );
+ // TODO: grunt.registerTask( 'mocha', 'mocha' );
};
diff --git a/package.json b/package.json
index bd5d5e9..52f7c80 100644
--- a/package.json
+++ b/package.json
@@ -5,7 +5,8 @@
"description": "Build tools for Echo.",
"scripts": {
"test": "grunt test",
- "doc": "jsduck"
+ "doc": "jsduck",
+ "mocha": "grunt mocha"
},
"devDependencies": {
"eslint-config-wikimedia": "0.4.0",
@@ -15,6 +16,8 @@
"grunt-eslint": "19.0.0",
"grunt-jsonlint": "1.0.8",
"grunt-stylelint": "0.7.0",
+ "mocha": "4.0.0",
+ "nodemw": "0.11.0",
"stylelint": "7.8.0",
"stylelint-config-wikimedia": "0.4.1"
}
diff --git a/tests/mocha/.eslintrc.json b/tests/mocha/.eslintrc.json
new file mode 100644
index 0000000..db736b7
--- /dev/null
+++ b/tests/mocha/.eslintrc.json
@@ -0,0 +1,17 @@
+{
+ "extends": "../../.eslintrc.json",
+ "env": {
+ "es6": true,
+ "mocha": true,
+ "node": true
+ },
+ "parserOptions": {
+ "ecmaVersion": 6
+ },
+ "globals": {
+ "browser": false
+ },
+ "rules":{
+ "no-console":0
+ }
+}
diff --git a/tests/mocha/README.md b/tests/mocha/README.md
new file mode 100644
index 0000000..5ae0cd8
--- /dev/null
+++ b/tests/mocha/README.md
@@ -0,0 +1,10 @@
+# Usage
+
+ cd mediawiki/vagrant
+ vagrant up
+ vagrant roles enable echo flow wikimediaflow
+ vagrant provision
+
+ cd mediawiki/extensions/Echo
+ npm install
+ npm run mocha
diff --git a/tests/mocha/notifications.js b/tests/mocha/notifications.js
new file mode 100644
index 0000000..e25194e
--- /dev/null
+++ b/tests/mocha/notifications.js
@@ -0,0 +1,62 @@
+'use strict';
+const assert = require( 'assert' );
+
+describe( 'Echo', function () {
+
+ it( 'should notify a new user with welcome message', function () {
+
+ function apiCreateAccount( username, password ) {
+ const url = require( 'url' ), //
https://nodejs.org/docs/latest/api/url.html
+ baseUrl = url.parse( browser.options.baseUrl ),
// http://webdriver.io/guide/testrunner/browserobject.html
+ Bot = require( 'nodemw' ), //
https://github.com/macbre/nodemw
+ client = new Bot( {
+ protocol: baseUrl.protocol,
+ server: baseUrl.hostname,
+ port: baseUrl.port,
+ path: baseUrl.path,
+ debug: false
+ } );
+
+ return new Promise( ( resolve, reject ) => {
+ client.api.call(
+ {
+ action: 'query',
+ meta: 'tokens',
+ type: 'createaccount'
+ },
+ /**
+ * @param {Error|null} err
+ * @param {Object} info Processed query
result
+ * @param {Object} next More results?
+ * @param {Object} data Raw data
+ */
+ function ( err, info, next, data ) {
+ if ( err ) {
+ reject( err );
+ return;
+ }
+ client.api.call( {
+ action: 'createaccount',
+ createreturnurl:
browser.options.baseUrl,
+ createtoken:
data.query.tokens.createaccounttoken,
+ username: username,
+ password: password,
+ retype: password
+ }, function ( err ) {
+ if ( err ) {
+ reject( err );
+ return;
+ }
+ resolve();
+ }, 'POST' );
+ },
+ 'POST'
+ );
+
+ } );
+
+ }
+
+ } );
+
+} );
--
To view, visit https://gerrit.wikimedia.org/r/382183
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: Ia68c2a26240cc5a07f2122a5f3a6caa0f199a313
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Echo
Gerrit-Branch: master
Gerrit-Owner: Zfilipin <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits