@@ -15,11 +15,17 @@ describe('Spinner', () => {
15
15
16
16
test ( "renders its content if object isn't loading" , ( ) => {
17
17
const { container : container , rerender} = render (
18
- < Spinner > Some spinner content</ Spinner >
18
+ < Spinner loading_state = { { is_loading : false } } >
19
+ Some spinner content
20
+ </ Spinner >
19
21
) ;
20
22
23
+ // spinner is initially visible until we've had time to update based on
24
+ // loading state. this can be disabled with show_initially={false}
25
+ act ( ( ) => jest . advanceTimersByTime ( 10 ) ) ;
26
+
21
27
expect ( container ) . toHaveTextContent ( 'Some spinner content' ) ;
22
- expect ( container . querySelector ( 'div.spinner-border' ) ) . toBe ( null ) ;
28
+ expect ( container . querySelector ( 'div.spinner-border' ) ) . toBe ( null ) ;
23
29
24
30
rerender (
25
31
< Spinner loading_state = { { is_loading : true } } > Some spinner content</ Spinner >
@@ -28,8 +34,19 @@ describe('Spinner', () => {
28
34
const overAll = container . firstChild ;
29
35
const spinner = overAll . lastChild ;
30
36
31
- expect ( overAll ) . toHaveTextContent ( 'Some spinner content' ) ;
32
- expect ( spinner . firstChild ) . toHaveClass ( 'spinner-border' ) ;
37
+ act ( ( ) => jest . advanceTimersByTime ( 10 ) ) ;
38
+
39
+ expect ( container ) . toHaveTextContent ( 'Some spinner content' ) ;
40
+ expect ( container . querySelector ( 'div.spinner-border' ) ) . not . toBe ( null ) ;
41
+ } ) ;
42
+
43
+ test ( "doesn't show initially when show_initially is false" , ( ) => {
44
+ const { container : container } = render (
45
+ < Spinner show_initially = { false } > Some spinner content</ Spinner >
46
+ ) ;
47
+
48
+ expect ( container ) . toHaveTextContent ( 'Some spinner content' ) ;
49
+ expect ( container . querySelector ( 'div.spinner-border' ) ) . toBe ( null ) ;
33
50
} ) ;
34
51
35
52
test ( 'applies additional CSS classes when props are set' , ( ) => {
0 commit comments