11import coverage , { ExampleCall , IOptions } from "./coverage" ;
22import { OpenrpcDocument } from "@open-rpc/meta-schema" ;
33import EmptyReporter from "./reporters/emptyReporter" ;
4+ import ConsoleReporter from "./reporters/console" ;
45
56const mockSchema = {
67 openrpc : "1.0.0" ,
@@ -127,7 +128,7 @@ describe("coverage", () => {
127128 }
128129 const transport = ( ) => Promise . resolve ( ) ;
129130 coverage ( {
130- reporter : new CustomReporter ( ) ,
131+ reporters : [ new CustomReporter ( ) ] ,
131132 transport,
132133 openrpcDocument : mockSchema ,
133134 skip : [ ] ,
@@ -148,7 +149,7 @@ describe("coverage", () => {
148149 return { result : true } ;
149150 } ;
150151 coverage ( {
151- reporter : new CustomReporter ( ) ,
152+ reporters : [ new CustomReporter ( ) ] ,
152153 transport,
153154 openrpcDocument : mockSchema ,
154155 skip : [ ] ,
@@ -168,7 +169,7 @@ describe("coverage", () => {
168169 const transport = ( ) => Promise . resolve ( { } ) ;
169170 const openrpcDocument = mockSchema ;
170171 const options = {
171- reporter,
172+ reporters : [ reporter ] ,
172173 transport,
173174 openrpcDocument,
174175 skip : [ 'foo' , 'bar' , 'baz' ] ,
@@ -189,14 +190,14 @@ describe("coverage", () => {
189190 const openrpcDocument = { ...mockSchema } ;
190191 openrpcDocument . servers = undefined ;
191192 const options = {
192- reporter,
193+ reporters : [ reporter ] ,
193194 transport,
194195 openrpcDocument,
195196 skip : [ ] ,
196197 only : [ 'baz' ] ,
197198 } ;
198199
199- await expect ( coverage ( options ) ) . resolves . toBeUndefined ( ) ;
200+ await expect ( coverage ( options ) ) . resolves . toBeDefined ( ) ;
200201 } ) ;
201202 } ) ;
202203 describe ( "transport" , ( ) => {
@@ -206,7 +207,7 @@ describe("coverage", () => {
206207 return Promise . resolve ( { } ) ;
207208 } ;
208209 coverage ( {
209- reporter : new EmptyReporter ( ) ,
210+ reporters : [ new EmptyReporter ( ) ] ,
210211 transport,
211212 openrpcDocument : mockSchema ,
212213 skip : [ ] ,
@@ -222,7 +223,7 @@ describe("coverage", () => {
222223 const transport = ( ) => Promise . resolve ( { } ) ;
223224 const openrpcDocument = mockSchema ;
224225 const options = {
225- reporter,
226+ reporters : [ reporter ] ,
226227 transport,
227228 openrpcDocument,
228229 skip : [ ] ,
@@ -244,7 +245,7 @@ describe("coverage", () => {
244245 const transport = ( ) => Promise . resolve ( { } ) ;
245246 const openrpcDocument = mockSchema ;
246247 const options = {
247- reporter,
248+ reporters : [ reporter ] ,
248249 transport,
249250 openrpcDocument,
250251 skip : [ ] ,
@@ -254,5 +255,40 @@ describe("coverage", () => {
254255 await coverage ( options ) ;
255256 expect ( spy ) . toHaveBeenCalledTimes ( 12 ) ;
256257 } ) ;
258+ it ( "can handle multiple reporters" , async ( ) => {
259+ const reporter = new EmptyReporter ( ) ;
260+ const reporter2 = new EmptyReporter ( ) ;
261+ const transport = ( ) => Promise . resolve ( { } ) ;
262+ const openrpcDocument = mockSchema ;
263+
264+ const onBeginSpy = jest . spyOn ( reporter , "onBegin" ) ;
265+ const onTestBeginSpy = jest . spyOn ( reporter , "onTestBegin" ) ;
266+ const onTestEndSpy = jest . spyOn ( reporter , "onTestEnd" ) ;
267+ const onEndSpy = jest . spyOn ( reporter , "onEnd" ) ;
268+
269+ const onBeginSpy2 = jest . spyOn ( reporter2 , "onBegin" ) ;
270+ const onTestBeginSpy2 = jest . spyOn ( reporter2 , "onTestBegin" ) ;
271+ const onTestEndSpy2 = jest . spyOn ( reporter2 , "onTestEnd" ) ;
272+ const onEndSpy2 = jest . spyOn ( reporter2 , "onEnd" ) ;
273+
274+ const options = {
275+ reporters : [ reporter , reporter2 ] ,
276+ transport,
277+ openrpcDocument,
278+ skip : [ ] ,
279+ only : [ ] ,
280+ } ;
281+ await coverage ( options ) ;
282+
283+ expect ( onBeginSpy ) . toHaveBeenCalledTimes ( 1 ) ;
284+ expect ( onTestBeginSpy ) . toHaveBeenCalledTimes ( 12 ) ;
285+ expect ( onTestEndSpy ) . toHaveBeenCalledTimes ( 12 ) ;
286+ expect ( onEndSpy ) . toHaveBeenCalledTimes ( 1 ) ;
287+
288+ expect ( onBeginSpy2 ) . toHaveBeenCalledTimes ( 1 ) ;
289+ expect ( onTestBeginSpy2 ) . toHaveBeenCalledTimes ( 12 ) ;
290+ expect ( onTestEndSpy2 ) . toHaveBeenCalledTimes ( 12 ) ;
291+ expect ( onEndSpy2 ) . toHaveBeenCalledTimes ( 1 ) ;
292+ } )
257293 } ) ;
258294} ) ;
0 commit comments