@@ -25,6 +25,48 @@ const StatefulLoadingButton = (props: StatefulLoadingButtonProps) => {
2525 return < Button loading = { isLoading } onClick = { handleClick } { ...props } />
2626}
2727
28+ describe ( 'IconButton' , ( ) => {
29+ it ( 'should support `className` on the outermost element' , ( ) => {
30+ const Element = ( ) => < IconButton className = { 'test-class-name' } icon = { SearchIcon } aria-label = "Search button" />
31+ const FeatureFlagElement = ( ) => {
32+ return (
33+ < FeatureFlags
34+ flags = { {
35+ primer_react_css_modules_team : true ,
36+ primer_react_css_modules_staff : true ,
37+ primer_react_css_modules_ga : true ,
38+ } }
39+ >
40+ < Element />
41+ </ FeatureFlags >
42+ )
43+ }
44+ expect ( render ( < Element /> ) . container . firstChild ) . toHaveClass ( 'test-class-name' )
45+ expect ( render ( < FeatureFlagElement /> ) . container . firstChild ) . toHaveClass ( 'test-class-name' )
46+ } )
47+ } )
48+
49+ describe ( 'LinkButton' , ( ) => {
50+ it ( 'should support `className` on the outermost element' , ( ) => {
51+ const Element = ( ) => < LinkButton className = { 'test-class-name' } />
52+ const FeatureFlagElement = ( ) => {
53+ return (
54+ < FeatureFlags
55+ flags = { {
56+ primer_react_css_modules_team : true ,
57+ primer_react_css_modules_staff : true ,
58+ primer_react_css_modules_ga : true ,
59+ } }
60+ >
61+ < Element />
62+ </ FeatureFlags >
63+ )
64+ }
65+ expect ( render ( < Element /> ) . container . firstChild ) . toHaveClass ( 'test-class-name' )
66+ expect ( render ( < FeatureFlagElement /> ) . container . firstChild ) . toHaveClass ( 'test-class-name' )
67+ } )
68+ } )
69+
2870describe ( 'Button' , ( ) => {
2971 behavesAsComponent ( {
3072 Component : TestButton ,
@@ -320,45 +362,4 @@ describe('Button', () => {
320362 expect ( tooltipEl ) . toBeInTheDocument ( )
321363 expect ( triggerEl . getAttribute ( 'aria-describedby' ) ) . toEqual ( expect . stringContaining ( tooltipEl . id ) )
322364 } )
323-
324- describe ( 'with primer_react_css_modules_ga enabled' , ( ) => {
325- it ( 'iconbutton should support custom `className` along with default classnames' , ( ) => {
326- const { container} = render (
327- < FeatureFlags
328- flags = { {
329- primer_react_css_modules_ga : true ,
330- } }
331- >
332- < IconButton className = "test" aria-label = "Test" icon = { HeartIcon } />
333- </ FeatureFlags > ,
334- )
335- expect ( container . firstChild ) . toHaveClass ( 'IconButton' )
336- } )
337-
338- it ( 'button should support custom `className` along with default classnames' , ( ) => {
339- const { container} = render (
340- < FeatureFlags
341- flags = { {
342- primer_react_css_modules_ga : true ,
343- } }
344- >
345- < Button className = "test" > Hello</ Button >
346- </ FeatureFlags > ,
347- )
348- expect ( container . firstChild ) . toHaveClass ( 'ButtonBase' )
349- } )
350-
351- it ( 'linkbutton should support custom `className` along with default classnames' , ( ) => {
352- const { container} = render (
353- < FeatureFlags
354- flags = { {
355- primer_react_css_modules_ga : true ,
356- } }
357- >
358- < LinkButton className = "test" > Hello</ LinkButton >
359- </ FeatureFlags > ,
360- )
361- expect ( container . firstChild ) . toHaveClass ( 'ButtonBase' )
362- } )
363- } )
364365} )
0 commit comments