1- import { DataverseClient , DataverseSearchOptions , SearchType } from '../src/index'
1+ import { DataverseClient , DataverseSearchOptions , SearchOptions , SearchType } from '../src/index'
22import { assert , createSandbox , SinonSandbox , SinonStub } from 'sinon'
33import { expect } from 'chai'
44import axios from 'axios'
@@ -338,6 +338,31 @@ describe('DataverseClient', () => {
338338 } )
339339 } )
340340
341+ describe ( 'searchOnlyPublished' , ( ) => {
342+ let searchStub : SinonStub
343+
344+ beforeEach ( ( ) => {
345+ searchStub = sandbox
346+ . stub ( DataverseClient . prototype , 'search' )
347+ } )
348+
349+ it ( 'should call search with expected options' , async ( ) => {
350+ const mockQuery = random . word ( )
351+ const type : SearchType = SearchType . DATASET
352+ const mockDataverseAlias = random . word ( )
353+ const expectedOptions : SearchOptions = {
354+ query : mockQuery ,
355+ dataverseAlias : mockDataverseAlias ,
356+ type
357+ }
358+
359+ await client . searchOnlyPublished ( { query : mockQuery , type, dataverseAlias : mockDataverseAlias } )
360+
361+ assert . calledOnce ( searchStub )
362+ assert . calledWithExactly ( searchStub , expectedOptions , { } )
363+ } )
364+ } )
365+
341366 describe ( 'search' , ( ) => {
342367 it ( 'should call axios with expected url and options' , async ( ) => {
343368 const query = random . word ( )
@@ -357,7 +382,10 @@ describe('DataverseClient', () => {
357382
358383 assert . calledOnce ( axiosGetStub )
359384 assert . calledWithExactly ( axiosGetStub , `${ host } /api/search` , {
360- params : expectedOptions
385+ params : expectedOptions ,
386+ headers : {
387+ 'X-Dataverse-key' : apiToken
388+ }
361389 } )
362390 } )
363391
@@ -614,6 +642,43 @@ describe('DataverseClient', () => {
614642 } )
615643 } )
616644
645+ describe ( 'getLatestPublishedDatasetVersion' , ( ) => {
646+ let mockDatasetId : string
647+
648+ let getDatasetVersionStub : SinonStub
649+
650+ beforeEach ( ( ) => {
651+ mockDatasetId = random . number ( ) . toString ( )
652+ getDatasetVersionStub = sandbox . stub ( DataverseClient . prototype , 'getDatasetVersion' )
653+ } )
654+
655+ it ( 'should call get dataset version with expected input' , async ( ) => {
656+ await client . getLatestPublishedDatasetVersion ( mockDatasetId )
657+
658+ assert . calledOnce ( getDatasetVersionStub )
659+ assert . calledWithExactly ( getDatasetVersionStub , mockDatasetId , ':latest-published' )
660+ } )
661+ } )
662+
663+ describe ( 'getDraftDatasetVersion' , ( ) => {
664+ let mockDatasetId : string
665+
666+ let getDatasetVersionStub : SinonStub
667+
668+ beforeEach ( ( ) => {
669+ mockDatasetId = random . number ( ) . toString ( )
670+
671+ getDatasetVersionStub = sandbox . stub ( DataverseClient . prototype , 'getDatasetVersion' )
672+ } )
673+
674+ it ( 'should call get dataset version with expected input' , async ( ) => {
675+ await client . getDraftDatasetVersion ( mockDatasetId )
676+
677+ assert . calledOnce ( getDatasetVersionStub )
678+ assert . calledWithExactly ( getDatasetVersionStub , mockDatasetId , ':draft' )
679+ } )
680+ } )
681+
617682 describe ( 'getLatestDatasetInformationFromDOI' , ( ) => {
618683 let doi : string
619684
0 commit comments