@@ -45,49 +45,127 @@ describe('Hcaptcha snapshot tests', () => {
4545 expect ( component ) . toMatchSnapshot ( ) ;
4646 } ) ;
4747
48- [
49- {
50- data : 'open' ,
51- expectedSuccess : true ,
52- } ,
53- {
54- data : '10000000-aaaa-bbbb-cccc-000000000001' ,
55- expectedSuccess : true ,
56- } ,
57- {
58- data : 'webview-error' ,
59- expectedSuccess : false ,
60- } ,
61- ] . forEach ( ( { data, expectedSuccess } ) => {
62- it ( `test ${ data } forwarding` , async ( ) => {
63- jest . useFakeTimers ( ) ;
64- let setTimeoutSpy = jest . spyOn ( global , 'setTimeout' ) ;
65- setWebViewMessageData ( data ) ;
66- const onMessageMock = jest . fn ( ) ;
48+ describe ( 'onMessage' , ( ) => {
49+ [
50+ {
51+ data : 'open' ,
52+ expectedSuccess : true ,
53+ } ,
54+ {
55+ data : '10000000-aaaa-bbbb-cccc-000000000001' ,
56+ expectedSuccess : true ,
57+ } ,
58+ {
59+ data : 'webview-error' ,
60+ expectedSuccess : false ,
61+ } ,
62+ ] . forEach ( ( { data, expectedSuccess } ) => {
63+ it ( `test ${ data } forwarding` , async ( ) => {
64+ jest . useFakeTimers ( ) ;
65+ let setTimeoutSpy = jest . spyOn ( global , 'setTimeout' ) ;
66+ setWebViewMessageData ( data ) ;
67+ const onMessageMock = jest . fn ( ) ;
6768
68- render (
69- < Hcaptcha
70- siteKey = "00000000-0000-0000-0000-000000000000"
71- url = "https://hcaptcha.com"
72- languageCode = "en"
73- onMessage = { onMessageMock }
74- />
75- ) ;
76-
77- await waitFor ( ( ) => {
78- expect ( onMessageMock ) . toHaveBeenCalledTimes ( 1 ) ;
79- expect ( onMessageMock ) . toHaveBeenCalledWith (
80- expect . objectContaining ( {
81- success : expectedSuccess ,
82- nativeEvent : expect . objectContaining ( { data } ) ,
83- } )
69+ render (
70+ < Hcaptcha
71+ siteKey = "00000000-0000-0000-0000-000000000000"
72+ url = "https://hcaptcha.com"
73+ languageCode = "en"
74+ onMessage = { onMessageMock }
75+ />
8476 ) ;
8577
86- if ( data === 'token' ) {
87- expect ( setTimeoutSpy ) . toHaveBeenCalledTimes ( 1 ) ;
88- }
78+ await waitFor ( ( ) => {
79+ expect ( onMessageMock ) . toHaveBeenCalledTimes ( 1 ) ;
80+ expect ( onMessageMock ) . toHaveBeenCalledWith (
81+ expect . objectContaining ( {
82+ success : expectedSuccess ,
83+ nativeEvent : expect . objectContaining ( { data } ) ,
84+ } )
85+ ) ;
86+
87+ if ( data === 'token' ) {
88+ expect ( setTimeoutSpy ) . toHaveBeenCalledTimes ( 1 ) ;
89+ }
90+ } ) ;
8991 } ) ;
9092 } ) ;
9193 } ) ;
92- } ) ;
9394
95+ describe ( 'Theme' , ( ) => {
96+ const theme = {
97+ "palette" : {
98+ "mode" : "dark" ,
99+ "primary" : {
100+ "main" : "#26C6DA"
101+ } ,
102+ "warn" : {
103+ "main" : "#FF8A80"
104+ } ,
105+ "text" : {
106+ "heading" : "#FAFAFA" ,
107+ "body" : "#E0E0E0"
108+ }
109+ } ,
110+ "component" : {
111+ "checkbox" : {
112+ "main" : {
113+ "fill" : "#333333" ,
114+ "border" : "#F5F5F5"
115+ } ,
116+ "hover" : {
117+ "fill" : "#222222"
118+ }
119+ } ,
120+ "modal" : {
121+ "main" : {
122+ "fill" : "#222222"
123+ } ,
124+ "hover" : {
125+ "fill" : "#333333"
126+ } ,
127+ "focus" : {
128+ "outline" : "#80DEEA"
129+ }
130+ } ,
131+ "textarea" : {
132+ "main" : {
133+ "fill" : "#4F4F4F" ,
134+ "border" : "#828282"
135+ } ,
136+ "focus" : {
137+ "fill" : "#4F4F4F" ,
138+ "outline" : "#80DEEA"
139+ } ,
140+ "disabled" : {
141+ "fill" : "#828282"
142+ }
143+ }
144+ }
145+ } ;
146+
147+ [
148+ {
149+ data : theme ,
150+ } ,
151+ {
152+ data : JSON . stringify ( theme ) ,
153+ } ,
154+ {
155+ data : undefined ,
156+ } ,
157+ ] . forEach ( ( { data } ) => {
158+ it ( `test ${ typeof data } ` , async ( ) => {
159+ const component = render (
160+ < Hcaptcha
161+ siteKey = "00000000-0000-0000-0000-000000000000"
162+ url = "https://hcaptcha.com"
163+ languageCode = "en"
164+ theme = { data }
165+ />
166+ ) ;
167+ expect ( component ) . toMatchSnapshot ( ) ;
168+ } ) ;
169+ } ) ;
170+ } ) ;
171+ } ) ;
0 commit comments