@@ -20,17 +20,55 @@ function createFetchResponse(status: number, body?: any) {
20
20
21
21
describe ( 'createHttpClient' , ( ) => {
22
22
23
- it ( 'get widgets returns 200 ' , ( ) => {
23
+ it ( 'get widget with ID ' , ( ) => {
24
24
return createHttpClient ( {
25
25
fetch : ( uri , request ) => {
26
- uri . should . equal ( 'http://local.example.com/v1/widgets' ) ;
26
+ uri . should . equal ( 'http://local.example.com/v1/widgets/xyzzy ' ) ;
27
27
request . method . should . equal ( 'GET' ) ;
28
28
expect ( request . headers ) . to . not . exist ;
29
29
expect ( request . body ) . to . not . exist ;
30
- return createFetchResponse ( 200 , { } ) ;
30
+ return createFetchResponse ( 200 , {
31
+ id : 'xyzzy' ,
32
+ name : 'Xyzzy'
33
+ } ) ;
31
34
}
32
- } ) . getWidgets ( { } ) . then ( result => {
33
- result . value . should . deep . equal ( { } ) ;
35
+ } ) . getWidget ( {
36
+ id : 'xyzzy'
37
+ } ) . then ( result => {
38
+ result . value . should . deep . equal ( {
39
+ widget : {
40
+ id : 'xyzzy' ,
41
+ name : 'Xyzzy'
42
+ }
43
+ } ) ;
44
+ } ) ;
45
+ } ) ;
46
+
47
+ it ( 'get widget with missing ID' , ( ) => {
48
+ return createHttpClient ( {
49
+ fetch : ( uri , request ) => {
50
+ throw new Error ( ) ;
51
+ }
52
+ } ) . getWidget ( { } ) . then ( result => {
53
+ result . error . should . deep . equal ( {
54
+ code : 'invalidRequest' ,
55
+ message : 'The request field \'id\' is required.'
56
+ } )
57
+ } ) ;
58
+ } ) ;
59
+
60
+ it ( 'get widget with blank ID' , ( ) => {
61
+ return createHttpClient ( {
62
+ fetch : ( uri , request ) => {
63
+ throw new Error ( ) ;
64
+ }
65
+ } ) . getWidget ( {
66
+ id : ''
67
+ } ) . then ( result => {
68
+ result . error . should . deep . equal ( {
69
+ code : 'invalidRequest' ,
70
+ message : 'The request field \'id\' is required.'
71
+ } )
34
72
} ) ;
35
73
} ) ;
36
74
0 commit comments