Aleksey Bekh-Ivanov (WMDE) has uploaded a new change for review. ( 
https://gerrit.wikimedia.org/r/367379 )

Change subject: [WIP] Introduce JS tests running without browser
......................................................................

[WIP] Introduce JS tests running without browser

Change-Id: Ibb15850f86545bc1311a0ef4695ac5a0783a124e
---
M Gruntfile.js
M package.json
M resources/widgets/GlossWidget.js
A resources/widgets/Localization.js
A tests/jasmine/some.spec.js
5 files changed, 55 insertions(+), 4 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/WikibaseLexeme 
refs/changes/79/367379/1

diff --git a/Gruntfile.js b/Gruntfile.js
index f14dc80..20b6a68 100644
--- a/Gruntfile.js
+++ b/Gruntfile.js
@@ -4,6 +4,9 @@
        grunt.loadNpmTasks( 'grunt-eslint' );
        grunt.loadNpmTasks( 'grunt-jsonlint' );
        grunt.loadNpmTasks( 'grunt-banana-checker' );
+       grunt.loadNpmTasks( 'grunt-jasmine-nodejs' );
+
+       require( 'module-alias/register' );
 
        grunt.initConfig( {
                eslint: {
@@ -18,6 +21,16 @@
                                '!node_modules/**',
                                '!vendor/**'
                        ]
+               },
+               jasmine_nodejs: {
+                       all: {
+                               options: {
+                                       random: true
+                               },
+                               specs: [
+                                       'tests/jasmine/**/*.spec.js'
+                               ]
+                       }
                }
        } );
 
diff --git a/package.json b/package.json
index 1fca5de..d4d137d 100644
--- a/package.json
+++ b/package.json
@@ -1,5 +1,6 @@
 {
   "private": true,
+  "name": "Lexeme",
   "scripts": {
     "test": "grunt test"
   },
@@ -7,8 +8,15 @@
     "eslint-config-wikimedia": "0.4.0",
     "grunt": "0.4.5",
     "grunt-banana-checker": "0.4.0",
-    "grunt-eslint": "19.0.0",
     "grunt-cli": "0.1.13",
-    "grunt-jsonlint": "1.0.7"
+    "grunt-eslint": "19.0.0",
+    "grunt-jasmine-nodejs": "^1.6.0",
+    "grunt-jsonlint": "1.0.7",
+    "jasmine": "^2.6.0",
+    "module-alias": "^2.0.0",
+    "vue": "2.3.3"
+  },
+  "_moduleAliases":{
+    "wikibase.lexeme.widgets.GlossWidget": "./resources/widgets/GlossWidget.js"
   }
 }
diff --git a/resources/widgets/GlossWidget.js b/resources/widgets/GlossWidget.js
index a4e68fc..370409d 100644
--- a/resources/widgets/GlossWidget.js
+++ b/resources/widgets/GlossWidget.js
@@ -1,5 +1,6 @@
-module.exports = ( function ( $, mw, require, Vue, Vuex ) {
+module.exports = ( function ( require ) {
        'use strict';
+       var Vue = require( 'vue' );
 
        function deepClone( object ) {
                return JSON.parse( JSON.stringify( object ) );
@@ -56,4 +57,4 @@
                newGlossWidget: newGlossWidget
        };
 
-} )( jQuery, mediaWiki, require, Vue, Vuex );
+} )( require );
diff --git a/resources/widgets/Localization.js 
b/resources/widgets/Localization.js
new file mode 100644
index 0000000..0ef2477
--- /dev/null
+++ b/resources/widgets/Localization.js
@@ -0,0 +1,21 @@
+module.exports = ( function ( $, mw ) {
+       'use strict';
+
+       //TODO Test
+       return {
+               message: function message( key, parameters ) {
+                       parameters = parameters || [];
+                       var messageArguments = [];
+                       messageArguments.push( key );
+                       parameters.forEach( function ( argument ) {
+                               messageArguments.push( argument );
+                       } );
+
+                       return mw.message.apply( mw.message, messageArguments 
).text();
+               },
+               directionality: function directionality( languageCode ) {
+                       return $.util.getDirectionality( languageCode );
+               }
+       };
+
+} )( jQuery, mw );
diff --git a/tests/jasmine/some.spec.js b/tests/jasmine/some.spec.js
new file mode 100644
index 0000000..bffacf6
--- /dev/null
+++ b/tests/jasmine/some.spec.js
@@ -0,0 +1,8 @@
+describe( 'A suite', function() {
+
+       var GlossWidget = require( 'wikibase.lexeme.widgets.GlossWidget' );
+
+       it( 'contains spec with an expectation', function() {
+               expect( true ).toBe( true );
+       } );
+} );

-- 
To view, visit https://gerrit.wikimedia.org/r/367379
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ibb15850f86545bc1311a0ef4695ac5a0783a124e
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/WikibaseLexeme
Gerrit-Branch: master
Gerrit-Owner: Aleksey Bekh-Ivanov (WMDE) <aleksey.bekh-iva...@wikimedia.de>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to