22import { ReanimatedError } from '../../errors' ;
33import { ERROR_MESSAGES , processColor , processColorsInProps } from '../colors' ;
44
5- describe ( processColor , ( ) => {
5+ describe ( processColorsInProps , ( ) => {
66 describe ( 'properly converts colors in props' , ( ) => {
77 test . each ( [
88 [ 'backgroundColor' , 'red' , 0xff0000ff ] ,
@@ -23,6 +23,7 @@ describe(processColor, () => {
2323 [ 'overlayColor' , 'hsla(360, 100%, 50%, 0.75)' , 0xff0000bf ] ,
2424 [ 'tintColor' , 'hsl(180, 100%, 25%)' , 0x007f80ff ] ,
2525 ] ) ( 'converts %p with value %p to %p' , ( key , value , expected ) => {
26+ // convert from RGBA to ARGB format
2627 const argb = ( ( expected << 24 ) | ( expected >>> 8 ) ) >>> 0 ;
2728 const props = { [ key ] : value } ;
2829
@@ -46,6 +47,25 @@ describe(processColor, () => {
4647 expect ( props ) . toEqual ( { [ key ] : value } ) ;
4748 } ) ;
4849 } ) ;
50+ } ) ;
51+
52+ describe ( processColor , ( ) => {
53+ describe ( 'properly converts colors' , ( ) => {
54+ test . each ( [
55+ [ 'red' , 0xff0000ff ] ,
56+ [ 'rgb(255, 200, 0)' , 0xffc800ff ] ,
57+ [ 'rgba(50, 100, 150, 0.6)' , 0x32649699 ] ,
58+ [ '#34a' , 0x3344aaff ] ,
59+ [ 'hsl(240, 100%, 50%)' , 0x0000ffff ] ,
60+ [ 'hsla(120, 50%, 50%, 0.5)' , 0x40bf4080 ] ,
61+ [ 'hwb(0, 0%, 0%)' , 0xff0000ff ] ,
62+ [ 'transparent' , null ] ,
63+ ] ) ( 'converts %p to %p' , ( value , expected ) => {
64+ // convert from RGBA to ARGB format if not null
65+ const argb = expected && ( ( expected << 24 ) | ( expected >>> 8 ) ) >>> 0 ;
66+ expect ( processColor ( value ) ) . toEqual ( argb ) ;
67+ } ) ;
68+ } ) ;
4969
5070 describe ( 'throws an error for invalid color values' , ( ) => {
5171 test . each ( [
0 commit comments