@@ -111,3 +111,118 @@ test("box-shadow", () => {
111111 testID,
112112 } ) ;
113113} ) ;
114+
115+ test ( "filter" , ( ) => {
116+ const compiled = registerCSS ( `
117+ :root, :host {
118+ --drop-shadow-md: 0 3px 3px rgb(0 0 0 / 0.12);
119+ }
120+
121+ .brightness-50 {
122+ --tw-brightness: brightness(50%);
123+ filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,);
124+ }
125+
126+ .drop-shadow-md {
127+ --tw-drop-shadow-size: drop-shadow(0 3px 3px var(--tw-drop-shadow-color, rgb(0 0 0 / 0.12)));
128+ --tw-drop-shadow: drop-shadow(var(--drop-shadow-md));
129+ filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,);
130+ }
131+ ` ) ;
132+
133+ expect ( compiled ) . toStrictEqual ( {
134+ s : [
135+ [
136+ "brightness-50" ,
137+ [
138+ {
139+ d : [
140+ [
141+ [
142+ [ { } , "var" , "tw-blur" , 1 ] ,
143+ [ { } , "var" , "tw-brightness" , 1 ] ,
144+ [ { } , "var" , "tw-contrast" , 1 ] ,
145+ [ { } , "var" , "tw-grayscale" , 1 ] ,
146+ [ { } , "var" , "tw-hue-rotate" , 1 ] ,
147+ [ { } , "var" , "tw-invert" , 1 ] ,
148+ [ { } , "var" , "tw-saturate" , 1 ] ,
149+ [ { } , "var" , "tw-sepia" , 1 ] ,
150+ [ { } , "var" , "tw-drop-shadow" , 1 ] ,
151+ ] ,
152+ "filter" ,
153+ ] ,
154+ ] ,
155+ s : [ 2 , 1 ] ,
156+ v : [ [ "tw-brightness" , [ { } , "brightness" , "50%" ] ] ] ,
157+ } ,
158+ ] ,
159+ ] ,
160+ [
161+ "drop-shadow-md" ,
162+ [
163+ {
164+ d : [
165+ [
166+ [
167+ [ { } , "var" , "tw-blur" , 1 ] ,
168+ [ { } , "var" , "tw-brightness" , 1 ] ,
169+ [ { } , "var" , "tw-contrast" , 1 ] ,
170+ [ { } , "var" , "tw-grayscale" , 1 ] ,
171+ [ { } , "var" , "tw-hue-rotate" , 1 ] ,
172+ [ { } , "var" , "tw-invert" , 1 ] ,
173+ [ { } , "var" , "tw-saturate" , 1 ] ,
174+ [ { } , "var" , "tw-sepia" , 1 ] ,
175+ [ { } , "var" , "tw-drop-shadow" , 1 ] ,
176+ ] ,
177+ "filter" ,
178+ ] ,
179+ ] ,
180+ s : [ 3 , 1 ] ,
181+ v : [
182+ [
183+ "tw-drop-shadow-size" ,
184+ [
185+ { } ,
186+ "drop-shadow" ,
187+ [
188+ 0 ,
189+ 3 ,
190+ 3 ,
191+ [ { } , "var" , [ "tw-drop-shadow-color" , "#0000001f" ] , 1 ] ,
192+ ] ,
193+ ] ,
194+ ] ,
195+ [
196+ "tw-drop-shadow" ,
197+ [ { } , "drop-shadow" , [ { } , "var" , "drop-shadow-md" , 1 ] ] ,
198+ ] ,
199+ ] ,
200+ } ,
201+ ] ,
202+ ] ,
203+ ] ,
204+ vr : [ [ "drop-shadow-md" , [ [ 0 , 3 , 3 , "#0000001f" ] ] ] ] ,
205+ } ) ;
206+
207+ render ( < View testID = { testID } className = "brightness-50 drop-shadow-md" /> ) ;
208+ const component = screen . getByTestId ( testID ) ;
209+
210+ expect ( component . type ) . toBe ( "View" ) ;
211+ expect ( component . props ) . toStrictEqual ( {
212+ children : undefined ,
213+ style : {
214+ filter : [
215+ { brightness : "50%" } ,
216+ {
217+ dropShadow : {
218+ blurRadius : 3 ,
219+ color : "#0000001f" ,
220+ offsetX : 0 ,
221+ offsetY : 3 ,
222+ } ,
223+ } ,
224+ ] ,
225+ } ,
226+ testID,
227+ } ) ;
228+ } ) ;
0 commit comments