11import { render , screen } from '@testing-library/react' ;
22import AppButton from './AppButton' ;
33import { ColorName } from '../../utils/style' ;
4+ import { AppThemeProvider } from '../../theme' ;
45
56/**
67 * Test specific color for AppButton
@@ -11,7 +12,11 @@ import { ColorName } from '../../utils/style';
1112function testButtonColor ( colorName : string , expectedClassName = colorName , ignoreClassName = false ) {
1213 it ( `supports "${ colorName } " color` , async ( ) => {
1314 let text = `${ colorName } button` ;
14- await render ( < AppButton color = { colorName as ColorName } > { text } </ AppButton > ) ;
15+ await render (
16+ < AppThemeProvider >
17+ < AppButton color = { colorName as ColorName } > { text } </ AppButton >
18+ </ AppThemeProvider >
19+ ) ;
1520
1621 let span = await screen . getByText ( text ) ; // <span> with specific text
1722 expect ( span ) . toBeDefined ( ) ;
@@ -30,7 +35,11 @@ describe('AppButton component', () => {
3035
3136 it ( 'renders itself' , async ( ) => {
3237 let text = 'sample button' ;
33- await render ( < AppButton > { text } </ AppButton > ) ;
38+ await render (
39+ < AppThemeProvider >
40+ < AppButton > { text } </ AppButton >
41+ </ AppThemeProvider >
42+ ) ;
3443 let span = await screen . getByText ( text ) ;
3544 expect ( span ) . toBeDefined ( ) ;
3645 expect ( span ) . toHaveTextContent ( text ) ;
@@ -54,7 +63,11 @@ describe('AppButton component', () => {
5463 it ( 'supports className property' , async ( ) => {
5564 let text = 'button with specific class' ;
5665 let className = 'someClassName' ;
57- await render ( < AppButton className = { className } > { text } </ AppButton > ) ;
66+ await render (
67+ < AppThemeProvider >
68+ < AppButton className = { className } > { text } </ AppButton >
69+ </ AppThemeProvider >
70+ ) ;
5871 let span = await screen . getByText ( text ) ;
5972 expect ( span ) . toBeDefined ( ) ;
6073 let button = await span . closest ( 'button' ) ; // parent <button> element
@@ -64,7 +77,11 @@ describe('AppButton component', () => {
6477
6578 it ( 'supports label property' , async ( ) => {
6679 let text = 'button with label' ;
67- await render ( < AppButton label = { text } /> ) ;
80+ await render (
81+ < AppThemeProvider >
82+ < AppButton label = { text } />
83+ </ AppThemeProvider >
84+ ) ;
6885 let span = await screen . getByText ( text ) ;
6986 expect ( span ) . toBeDefined ( ) ;
7087 let button = await span . closest ( 'button' ) ; // parent <button> element
@@ -73,7 +90,11 @@ describe('AppButton component', () => {
7390
7491 it ( 'supports text property' , async ( ) => {
7592 let text = 'button with text' ;
76- await render ( < AppButton text = { text } /> ) ;
93+ await render (
94+ < AppThemeProvider >
95+ < AppButton text = { text } />
96+ </ AppThemeProvider >
97+ ) ;
7798 let span = await screen . getByText ( text ) ;
7899 expect ( span ) . toBeDefined ( ) ;
79100 let button = await span . closest ( 'button' ) ; // parent <button> element
0 commit comments