1- import nock from 'nock'
1+ import { http , HttpResponse } from 'msw'
2+ import { setupServer } from 'msw/node'
23
34import config from '../../common/config'
45import * as workOrderAdapter from '../work-order-adapter'
56import * as factory from '../../../test/factories'
67
8+ const mockServer = setupServer ( )
9+
710describe ( 'work-order-adapter' , ( ) => {
11+ beforeAll ( ( ) => {
12+ mockServer . listen ( )
13+ } )
14+
15+ afterEach ( ( ) => {
16+ mockServer . resetHandlers ( )
17+ } )
18+
19+ afterAll ( ( ) => {
20+ mockServer . close ( )
21+ } )
22+
823 describe ( workOrderAdapter . getWorkOrdersByContactCode , ( ) => {
9- const workOrderMock = factory . workOrder . build ( )
24+ const workOrderMock = factory . workOrder . buildList ( 2 )
1025 it ( 'returns err if request fails' , async ( ) => {
11- nock ( config . workOrderService . url )
12- . get ( '/workOrders/contactCode/CC123' )
13- . reply ( 500 )
26+ mockServer . use (
27+ http . get (
28+ `${ config . workOrderService . url } /workOrders/contactCode/CC123` ,
29+ ( ) => new HttpResponse ( null , { status : 500 } )
30+ )
31+ )
1432
1533 const result = await workOrderAdapter . getWorkOrdersByContactCode ( 'CC123' )
1634
@@ -19,37 +37,55 @@ describe('work-order-adapter', () => {
1937 } )
2038
2139 it ( 'returns work order data' , async ( ) => {
22- nock ( config . workOrderService . url )
23- . get ( '/workOrders/contactCode/CC123' )
24- . reply ( 200 , {
25- content : { workOrders : [ workOrderMock ] } ,
26- } )
40+ mockServer . use (
41+ http . get (
42+ `${ config . workOrderService . url } /workOrders/contactCode/CC123` ,
43+ ( ) =>
44+ HttpResponse . json (
45+ {
46+ content : { workOrders : workOrderMock } ,
47+ } ,
48+ { status : 200 }
49+ )
50+ )
51+ )
2752
2853 const result = await workOrderAdapter . getWorkOrdersByContactCode ( 'CC123' )
2954
3055 expect ( result ) . toMatchObject ( {
3156 ok : true ,
32- data : [ workOrderMock ] ,
57+ data : workOrderMock ,
3358 } )
3459 } )
3560 } )
3661
3762 describe ( workOrderAdapter . createWorkOrder , ( ) => {
3863 const createWorkOrderMock = factory . createWorkOrder . build ( )
3964 it ( 'returns err if request fails' , async ( ) => {
40- nock ( config . workOrderService . url ) . post ( '/workOrders' ) . reply ( 500 )
65+ mockServer . use (
66+ http . post (
67+ `${ config . workOrderService . url } /workOrders` ,
68+ ( ) => new HttpResponse ( null , { status : 500 } )
69+ )
70+ )
4171
4272 const result = await workOrderAdapter . createWorkOrder ( createWorkOrderMock )
4373
4474 expect ( result . ok ) . toBe ( false )
45- if ( ! result . ok )
46- expect ( result . err ) . toBe ( 'Request failed with status code 500' )
75+ if ( ! result . ok ) expect ( result . err ) . toBe ( 'unknown' )
4776 } )
4877
4978 it ( 'returns work order data' , async ( ) => {
50- nock ( config . workOrderService . url )
51- . post ( '/workOrders' )
52- . reply ( 200 , { content : { newWorkOrderId : 1 } } )
79+ mockServer . use (
80+ http . post ( `${ config . workOrderService . url } /workOrders` , ( ) =>
81+ HttpResponse . json (
82+ {
83+ content : { newWorkOrderId : 1 } ,
84+ } ,
85+ { status : 200 }
86+ )
87+ )
88+ )
5389
5490 const result = await workOrderAdapter . createWorkOrder ( createWorkOrderMock )
5591
@@ -59,24 +95,33 @@ describe('work-order-adapter', () => {
5995 } )
6096
6197 describe ( workOrderAdapter . updateWorkOrder , ( ) => {
62- it ( 'returns err if request fails' , async ( ) => {
63- nock ( config . workOrderService . url ) . post ( '/workOrders/1/update' ) . reply ( 500 )
98+ it . only ( 'returns err if request fails' , async ( ) => {
99+ mockServer . use (
100+ http . post (
101+ `${ config . workOrderService . url } /workOrders/1/update` ,
102+ ( ) => new HttpResponse ( null , { status : 500 } )
103+ )
104+ )
64105
65- const result = await workOrderAdapter . updateWorkOrder ( 1 , 'Test message' )
106+ const result = await workOrderAdapter . updateWorkOrder ( '1' , 'Test message' )
66107
67108 expect ( result . ok ) . toBe ( false )
68- if ( ! result . ok )
69- expect ( result . err ) . toBe ( 'Request failed with status code 500' )
109+ if ( ! result . ok ) expect ( result . err ) . toBe ( 'unknown' )
70110 } )
71111
72112 it ( 'returns updated work order data' , async ( ) => {
73- nock ( config . workOrderService . url )
74- . post ( '/workOrders/1/update' )
75- . reply ( 200 , {
76- content : { message : 'Message added to work order with ID 1' } ,
77- } )
78-
79- const result = await workOrderAdapter . updateWorkOrder ( 1 , 'Test message' )
113+ mockServer . use (
114+ http . post ( `${ config . workOrderService . url } /workOrders/1/update` , ( ) =>
115+ HttpResponse . json (
116+ {
117+ content : { message : 'Message added to work order with ID 1' } ,
118+ } ,
119+ { status : 200 }
120+ )
121+ )
122+ )
123+
124+ const result = await workOrderAdapter . updateWorkOrder ( '1' , 'Test message' )
80125
81126 expect ( result . ok ) . toBe ( true )
82127 if ( result . ok )
@@ -88,23 +133,33 @@ describe('work-order-adapter', () => {
88133
89134 describe ( workOrderAdapter . closeWorkOrder , ( ) => {
90135 it ( 'returns err if request fails' , async ( ) => {
91- nock ( config . workOrderService . url ) . post ( '/workOrders/1/close' ) . reply ( 500 )
136+ mockServer . use (
137+ http . post (
138+ `${ config . workOrderService . url } /workOrders/1/close` ,
139+ ( ) => new HttpResponse ( null , { status : 500 } )
140+ )
141+ )
92142
93- const result = await workOrderAdapter . closeWorkOrder ( 1 )
143+ const result = await workOrderAdapter . closeWorkOrder ( '1' )
94144
95145 expect ( result . ok ) . toBe ( false )
96146 if ( ! result . ok )
97147 expect ( result . err ) . toBe ( 'Request failed with status code 500' )
98148 } )
99149
100150 it ( 'returns closed work order data' , async ( ) => {
101- nock ( config . workOrderService . url )
102- . post ( '/workOrders/1/close' )
103- . reply ( 200 , {
104- content : { message : 'Work order with ID 1 updated successfully' } ,
105- } )
106-
107- const result = await workOrderAdapter . closeWorkOrder ( 1 )
151+ mockServer . use (
152+ http . post ( `${ config . workOrderService . url } /workOrders/1/close` , ( ) =>
153+ HttpResponse . json (
154+ {
155+ content : { message : 'Work order with ID 1 updated successfully' } ,
156+ } ,
157+ { status : 200 }
158+ )
159+ )
160+ )
161+
162+ const result = await workOrderAdapter . closeWorkOrder ( '1' )
108163
109164 expect ( result . ok ) . toBe ( true )
110165 if ( result . ok )
0 commit comments