@@ -47,4 +47,65 @@ describe('<Wine />', () => {
47
47
</ div >
48
48
) ) . to . equal ( true ) ;
49
49
} ) ;
50
+ it ( 'doit afficher un bon vin avec le like' , ( ) => {
51
+ const wrapper = shallow (
52
+ < Wine wine = { blackHorse } liked onToggleLike = { nothing } />
53
+ ) ;
54
+ const spans = wrapper . find ( 'span' ) ;
55
+ const divs = wrapper . find ( 'div' ) ;
56
+ const img = wrapper . find ( 'img' ) . get ( 0 ) ;
57
+ expect ( wrapper . equals (
58
+ < div { ...divs . get ( 0 ) . props } >
59
+ < img { ...img . props } src = { `/api/wines/${ blackHorse . id } /image` } />
60
+ < div { ...divs . get ( 1 ) . props } > { blackHorse . name } </ div >
61
+ < div { ...divs . get ( 2 ) . props } >
62
+ < span { ...spans . get ( 0 ) . props } > Type</ span > { blackHorse . type }
63
+ </ div >
64
+ < div { ...divs . get ( 3 ) . props } >
65
+ < span { ...spans . get ( 1 ) . props } > Région</ span > { blackHorse . appellation . region }
66
+ </ div >
67
+ < div { ...divs . get ( 4 ) . props } >
68
+ < span { ...spans . get ( 2 ) . props } > Appellation</ span > { blackHorse . appellation . name }
69
+ </ div >
70
+ < div { ...divs . get ( 5 ) . props } >
71
+ < span { ...spans . get ( 3 ) . props } > Cépages</ span > { blackHorse . grapes . join ( ', ' ) }
72
+ </ div >
73
+ < div { ...divs . get ( 6 ) . props } >
74
+ < span { ...spans . get ( 4 ) . props } > unlike</ span >
75
+ </ div >
76
+ </ div >
77
+ ) ) . to . equal ( true ) ;
78
+ } ) ;
79
+ it ( 'doit gérer un click sur le like' , ( ) => {
80
+ const onToggleLike = sinon . spy ( ) ;
81
+ const wrapper = shallow (
82
+ < Wine wine = { blackHorse } liked onToggleLike = { onToggleLike } />
83
+ ) ;
84
+ const spans = wrapper . find ( 'span' ) ;
85
+ const divs = wrapper . find ( 'div' ) ;
86
+ const img = wrapper . find ( 'img' ) . get ( 0 ) ;
87
+ expect ( wrapper . equals (
88
+ < div { ...divs . get ( 0 ) . props } >
89
+ < img { ...img . props } src = { `/api/wines/${ blackHorse . id } /image` } />
90
+ < div { ...divs . get ( 1 ) . props } > { blackHorse . name } </ div >
91
+ < div { ...divs . get ( 2 ) . props } >
92
+ < span { ...spans . get ( 0 ) . props } > Type</ span > { blackHorse . type }
93
+ </ div >
94
+ < div { ...divs . get ( 3 ) . props } >
95
+ < span { ...spans . get ( 1 ) . props } > Région</ span > { blackHorse . appellation . region }
96
+ </ div >
97
+ < div { ...divs . get ( 4 ) . props } >
98
+ < span { ...spans . get ( 2 ) . props } > Appellation</ span > { blackHorse . appellation . name }
99
+ </ div >
100
+ < div { ...divs . get ( 5 ) . props } >
101
+ < span { ...spans . get ( 3 ) . props } > Cépages</ span > { blackHorse . grapes . join ( ', ' ) }
102
+ </ div >
103
+ < div { ...divs . get ( 6 ) . props } >
104
+ < span { ...spans . get ( 4 ) . props } > unlike</ span >
105
+ </ div >
106
+ </ div >
107
+ ) ) . to . equal ( true ) ;
108
+ spans . at ( 4 ) . simulate ( 'click' , { target : { getAttribute : ( ) => null } } ) ;
109
+ expect ( onToggleLike . calledOnce ) . to . equal ( true ) ;
110
+ } ) ;
50
111
} ) ;
0 commit comments