diff --git a/.eslintrc.json b/.eslintrc.json index 24af0bf..ca3a390 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -6,6 +6,7 @@ }, "globals": { "dataValues": false, + "module": false, "util": false, "wikibase": false }, diff --git a/.gitignore b/.gitignore index 140fd58..3031066 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,4 @@ vendor/ node_modules/ + +.idea/ diff --git a/.travis.yml b/.travis.yml index fdddf6c..ff65237 100644 --- a/.travis.yml +++ b/.travis.yml @@ -9,7 +9,7 @@ before_script: - nvm install 4 script: - - npm install && npm run eslint + - npm install && npm test notifications: irc: diff --git a/karma.conf.js b/karma.conf.js new file mode 100644 index 0000000..7ed3647 --- /dev/null +++ b/karma.conf.js @@ -0,0 +1,44 @@ +module.exports = function ( config ) { + config.set( { + frameworks: [ 'qunit' ], + + files: [ + 'node_modules/jquery/dist/jquery.js', + + // TODO: install JS dependencies using npm + 'node_modules/wikibase-data-values/lib/util/util.inherit.js', + 'node_modules/wikibase-data-values/src/dataValues.js', + 'node_modules/wikibase-data-values/src/DataValue.js', + 'node_modules/wikibase-data-values/src/values/StringValue.js', + 'node_modules/wikibase-data-values/src/values/UnDeserializableValue.js', + 'node_modules/wikibase-data-model/src/__namespace.js', + 'node_modules/wikibase-data-model/src/GroupableCollection.js', + 'node_modules/wikibase-data-model/src/Group.js', + 'node_modules/wikibase-data-model/src/Snak.js', + 'node_modules/wikibase-data-model/src/Set.js', + 'node_modules/wikibase-data-model/src/List.js', + 'node_modules/wikibase-data-model/src/*.js', + + 'src/__namespace.js', + 'src/Serializers/Serializer.js', + 'src/Serializers/*.js', + 'src/SerializerFactory.js', + 'src/StrategyProvider.js', + 'src/Deserializers/Deserializer.js', + 'src/Deserializers/*.js', + 'src/DeserializerFactory.js', + 'tests/MockEntity.js', + 'tests/MockEntity.tests.js', + 'tests/StrategyProvider.tests.js', + 'tests/SerializerFactory.tests.js', + 'tests/Serializers/*.js', + 'tests/Deserializers/*.js', + 'tests/DeserializerFactory.tests.js' + ], + + port: 9876, + + logLevel: config.LOG_INFO, + browsers: [ 'PhantomJS' ] + } ); +}; diff --git a/package.json b/package.json index a8c7d89..8dbc585 100644 --- a/package.json +++ b/package.json @@ -23,15 +23,26 @@ "lib": "src", "test": "tests" }, - "devDependencies": { - "eslint": "^3.19.0", - "eslint-config-wikimedia": "0.4.0" - }, - "scripts": { - "eslint": "eslint ." + "support": { + "url": "https://phabricator.wikimedia.org/" }, "dependencies": { + "jquery": "^3.2.1", "wikibase-data-model": "^4.0.0", "wikibase-data-values": "^0.10.0" + }, + "devDependencies": { + "eslint": "^3.19.0", + "eslint-config-wikimedia": "0.4.0", + "karma": "^1.7.1", + "karma-cli": "^1.0.1", + "karma-phantomjs-launcher": "^1.0.4", + "karma-qunit": "^1.2.1", + "qunit": "^1.0.0" + }, + "scripts": { + "test": "npm run eslint && npm run run-tests", + "eslint": "eslint .", + "run-tests": "karma start --single-run" } } diff --git a/src/__namespace.js b/src/__namespace.js index 7874cf3..c279ba1 100644 --- a/src/__namespace.js +++ b/src/__namespace.js @@ -1,4 +1,5 @@ /** * @ignore */ +window.wikibase = window.wikibase || {}; wikibase.serialization = wikibase.serialization || {};