[MediaWiki-commits] [Gerrit] Added RepoApi tests for functions not yet tested - change (mediawiki...WikibaseJavaScriptApi)
Thiemo Mättig (WMDE) has submitted this change and it was merged. Change subject: Added RepoApi tests for functions not yet tested .. Added RepoApi tests for functions not yet tested Change-Id: I2e45bbfdcae0cb378a376dd9ff635e1fe080378f --- M README.md M tests/RepoApi.tests.js 2 files changed, 326 insertions(+), 40 deletions(-) Approvals: Thiemo Mättig (WMDE): Verified; Looks good to me, approved diff --git a/README.md b/README.md index fcbef2c..f2f54c4 100644 --- a/README.md +++ b/README.md @@ -7,6 +7,7 @@ Enhancements * Updated code documentation to be able to generate documentation using JSDuck. * `wikibase.api.RepoApi` QUnit tests have been rewritten to not execute actual API requests anymore. +* Added `wikibase.api.RepoApi` QUnit tests for functions not yet tested. ### Bugfixes * An empty `Entity` may be created by omitting the `data` parameter on `wikibase.api.RepoApi.createEntity()` again. diff --git a/tests/RepoApi.tests.js b/tests/RepoApi.tests.js index df88a68..bea05e1 100644 --- a/tests/RepoApi.tests.js +++ b/tests/RepoApi.tests.js @@ -112,6 +112,143 @@ assert.equal( getParam( mock.spy, 'data' ), JSON.stringify( data ) ); } ); +QUnit.test( 'formatValue()', function( assert ) { + var mock = mockApi( 'get' ); + + mock.api.formatValue( + { datavalue: 'serialization' }, + { option: 'option value'}, + 'data type id', + 'output format' + ); + + assert.ok( mock.spy.calledOnce, 'Triggered API call.' ); + + assert.equal( + getParam( mock.spy, 'action' ), + 'wbformatvalue', + 'Verified API module being called.' + ); + + assert.equal( + getParam( mock.spy, 'datavalue' ), + JSON.stringify( { datavalue: 'serialization' } ) + ); + assert.equal( getParam( mock.spy, 'options' ), JSON.stringify( { option: 'option value'} ) ); + assert.equal( getParam( mock.spy, 'datatype' ), 'data type id' ); + assert.equal( getParam( mock.spy, 'generate' ), 'output format' ); +} ); + +QUnit.test( 'getEntities()', function( assert ) { + var mock = mockApi( 'get' ); + + mock.api.getEntities( + ['entity id 1', 'entity id 2'], + ['property1', 'property2'], + ['language code 1', 'language code 2'], + ['sort property 1', 'sort property 2'], + 'sort direction' + ); + + mock.api.getEntities( + 'entity id', + 'property', + 'language code', + 'sort property', + 'sort direction' + ); + + assert.ok( mock.spy.calledTwice, 'Triggered API calls.' ); + + assert.equal( + getParam( mock.spy, 'action' ), + 'wbgetentities', + 'Verified API module being called.' + ); + + assert.equal( getParam( mock.spy, 'ids' ), 'entity id 1|entity id 2' ); + assert.equal( getParam( mock.spy, 'props' ), 'property1|property2' ); + assert.equal( getParam( mock.spy, 'languages' ), 'language code 1|language code 2' ); + assert.equal( getParam( mock.spy, 'sort' ), 'sort property 1|sort property 2' ); + assert.equal( getParam( mock.spy, 'dir' ), 'sort direction' ); + + assert.equal( getParam( mock.spy, 'ids', 1 ), 'entity id' ); + assert.equal( getParam( mock.spy, 'props', 1 ), 'property' ); + assert.equal( getParam( mock.spy, 'languages', 1 ), 'language code' ); + assert.equal( getParam( mock.spy, 'sort', 1 ), 'sort property' ); + assert.equal( getParam( mock.spy, 'dir', 1 ), 'sort direction' ); +} ); + +QUnit.test( 'getEntitiesByPage()', function( assert ) { + var mock = mockApi( 'get' ); + + mock.api.getEntitiesByPage( + ['site id 1', 'site id 2'], + ['title1', 'title2'], + ['property1', 'property2'], + ['language code 1', 'language code 2'], + ['sort property 1', 'sort property 2'], + 'sort direction', + true + ); + + mock.api.getEntitiesByPage( + 'site id', + 'title', + 'property', + 'language code', + 'sort property', + 'sort direction', + false + ); + + assert.ok( mock.spy.calledTwice, 'Triggered API calls.' ); + + assert.equal( + getParam( mock.spy, 'action' ), + 'wbgetentities', + 'Verified API module being called.' + ); + + assert.equal( getParam( mock.spy, 'sites' ), 'site id 1|site id 2' ); + assert.equal( getParam( mock.spy, 'titles' ), 'title1|title2' ); + assert.equal( getParam( mock.spy, 'props' ), 'property1|property2' ); + assert.equal( getParam( mock.spy, 'languages' ), '
[MediaWiki-commits] [Gerrit] Added RepoApi tests for functions not yet tested - change (mediawiki...WikibaseJavaScriptApi)
Henning Snater has uploaded a new change for review. https://gerrit.wikimedia.org/r/177509 Change subject: Added RepoApi tests for functions not yet tested .. Added RepoApi tests for functions not yet tested Change-Id: I2e45bbfdcae0cb378a376dd9ff635e1fe080378f --- M tests/RepoApi.tests.js 1 file changed, 311 insertions(+), 48 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/WikibaseJavaScriptApi refs/changes/09/177509/1 diff --git a/tests/RepoApi.tests.js b/tests/RepoApi.tests.js index cde2b2f..2c5e7fc 100644 --- a/tests/RepoApi.tests.js +++ b/tests/RepoApi.tests.js @@ -112,6 +112,143 @@ assert.equal( getParam( mock.spy, 'data' ), JSON.stringify( data ) ); } ); +QUnit.test( 'formatValue()', function( assert ) { + var mock = mockApi( 'get' ); + + mock.api.formatValue( + { datavalue: 'serialization' }, + { option: 'option value'}, + 'data type id', + 'output format' + ); + + assert.ok( mock.spy.calledOnce, 'Triggered API call.' ); + + assert.equal( + getParam( mock.spy, 'action' ), + 'wbformatvalue', + 'Verified API module being called.' + ); + + assert.equal( + getParam( mock.spy, 'datavalue' ), + JSON.stringify( { datavalue: 'serialization' } ) + ); + assert.equal( getParam( mock.spy, 'options' ), JSON.stringify( { option: 'option value'} ) ); + assert.equal( getParam( mock.spy, 'datatype' ), 'data type id' ); + assert.equal( getParam( mock.spy, 'generate' ), 'output format' ); +} ); + +QUnit.test( 'getEntities()', function( assert ) { + var mock = mockApi( 'get' ); + + mock.api.getEntities( + ['entity id 1', 'entity id 2'], + ['property1', 'property2'], + ['language code 1', 'language code 2'], + ['sort property 1', 'sort property 2'], + 'sort direction' + ); + + mock.api.getEntities( + 'entity id', + 'property', + 'language code', + 'sort property', + 'sort direction' + ); + + assert.ok( mock.spy.calledTwice, 'Triggered API calls.' ); + + assert.equal( + getParam( mock.spy, 'action' ), + 'wbgetentities', + 'Verified API module being called.' + ); + + assert.equal( getParam( mock.spy, 'ids' ), 'entity id 1|entity id 2' ); + assert.equal( getParam( mock.spy, 'props' ), 'property1|property2' ); + assert.equal( getParam( mock.spy, 'languages' ), 'language code 1|language code 2' ); + assert.equal( getParam( mock.spy, 'sort' ), 'sort property 1|sort property 2' ); + assert.equal( getParam( mock.spy, 'dir' ), 'sort direction' ); + + assert.equal( getParam( mock.spy, 'ids', 1 ), 'entity id' ); + assert.equal( getParam( mock.spy, 'props', 1 ), 'property' ); + assert.equal( getParam( mock.spy, 'languages', 1 ), 'language code' ); + assert.equal( getParam( mock.spy, 'sort', 1 ), 'sort property' ); + assert.equal( getParam( mock.spy, 'dir', 1 ), 'sort direction' ); +} ); + +QUnit.test( 'getEntitiesByPage()', function( assert ) { + var mock = mockApi( 'get' ); + + mock.api.getEntitiesByPage( + ['site id 1', 'site id 2'], + ['title1', 'title2'], + ['property1', 'property2'], + ['language code 1', 'language code 2'], + ['sort property 1', 'sort property 2'], + 'sort direction', + true + ); + + mock.api.getEntitiesByPage( + 'site id', + 'title', + 'property', + 'language code', + 'sort property', + 'sort direction', + false + ); + + assert.ok( mock.spy.calledTwice, 'Triggered API calls.' ); + + assert.equal( + getParam( mock.spy, 'action' ), + 'wbgetentities', + 'Verified API module being called.' + ); + + assert.equal( getParam( mock.spy, 'sites' ), 'site id 1|site id 2' ); + assert.equal( getParam( mock.spy, 'titles' ), 'title1|title2' ); + assert.equal( getParam( mock.spy, 'props' ), 'property1|property2' ); + assert.equal( getParam( mock.spy, 'languages' ), 'language code 1|language code 2' ); + assert.equal( getParam( mock.spy, 'sort' ), 'sort property 1|sort property 2' ); + assert.equal( getParam( mock.spy, 'dir' ), 'sort direction' ); + assert.strictEqual( getParam( mock.spy, 'normalize' ), true ); + + assert.equal( getParam( mock.spy, 'sites', 1 ), 'site id' ); + assert.equal( getParam( mock.spy, 'titles', 1 ), 'title' ); + assert.equal( getParam( mock.spy, 'props', 1 ), 'prop