@@ -6,7 +6,7 @@ import { User } from '../types';
6
6
7
7
jest . mock ( 'axios' ) ;
8
8
9
- jest . setTimeout ( 20000 ) ;
9
+ jest . setTimeout ( 7000 ) ;
10
10
describe ( 'PhoneBook' , ( ) => {
11
11
it ( 'fetches contacts successfully and renders in list' , async ( ) => {
12
12
( global . fetch as jest . Mock ) . mockResolvedValueOnce ( {
@@ -16,51 +16,47 @@ describe('PhoneBook', () => {
16
16
( axios . get as jest . Mock ) . mockResolvedValue ( { data : DATA } ) ;
17
17
render ( < PhoneBook /> ) ;
18
18
19
- await new Promise ( ( resolve ) => setTimeout ( resolve , 1000 ) ) ;
20
- screen . debug ( ) ;
21
- await new Promise ( ( resolve ) => setTimeout ( resolve , 1000 ) ) ;
22
- screen . debug ( ) ;
23
- // await waitForElementToBeRemoved(() => screen.getByText(/users data not quite there yet/i));
19
+ await waitForElementToBeRemoved ( ( ) => screen . getByText ( / u s e r s d a t a n o t q u i t e t h e r e y e t / i) ) ;
24
20
expect ( await screen . findByText ( 'Name: Mrs Ida Kristensen' ) ) . toBeOnTheScreen ( ) ;
25
21
expect ( await screen . findByText ( 'Email: ida.kristensen@example.com' ) ) . toBeOnTheScreen ( ) ;
26
22
expect ( await screen . findAllByText ( / n a m e / i) ) . toHaveLength ( 3 ) ;
27
23
} ) ;
28
24
29
- // it('fails to fetch contacts and renders error message', async () => {
30
- // (global.fetch as jest.Mock).mockResolvedValueOnce({
31
- // ok: false,
32
- // });
33
- // (axios.get as jest.Mock).mockResolvedValue({ data: DATA });
34
- // render(<PhoneBook />);
35
- //
36
- // await waitForElementToBeRemoved(() => screen.getByText(/users data not quite there yet/i));
37
- // expect(await screen.findByText(/error fetching contacts/i)).toBeOnTheScreen();
38
- // });
39
- //
40
- // it('fetches favorites successfully and renders all users avatars', async () => {
41
- // (global.fetch as jest.Mock).mockResolvedValueOnce({
42
- // ok: true,
43
- // json: jest.fn().mockResolvedValueOnce(DATA),
44
- // });
45
- // (axios.get as jest.Mock).mockResolvedValue({ data: DATA });
46
- // render(<PhoneBook />);
47
- //
48
- // await waitForElementToBeRemoved(() => screen.getByText(/figuring out your favorites/i));
49
- // expect(await screen.findByText(/my favorites/i)).toBeOnTheScreen();
50
- // expect(await screen.findAllByLabelText('favorite-contact-avatar')).toHaveLength(3);
51
- // });
52
- //
53
- // it('fails to fetch favorites and renders error message', async () => {
54
- // (global.fetch as jest.Mock).mockResolvedValueOnce({
55
- // ok: true,
56
- // json: jest.fn().mockResolvedValueOnce(DATA),
57
- // });
58
- // (axios.get as jest.Mock).mockRejectedValueOnce({ message: 'Error fetching favorites' });
59
- // render(<PhoneBook />);
60
- //
61
- // await waitForElementToBeRemoved(() => screen.getByText(/figuring out your favorites/i));
62
- // expect(await screen.findByText(/error fetching favorites/i)).toBeOnTheScreen();
63
- // });
25
+ it ( 'fails to fetch contacts and renders error message' , async ( ) => {
26
+ ( global . fetch as jest . Mock ) . mockResolvedValueOnce ( {
27
+ ok : false ,
28
+ } ) ;
29
+ ( axios . get as jest . Mock ) . mockResolvedValue ( { data : DATA } ) ;
30
+ render ( < PhoneBook /> ) ;
31
+
32
+ await waitForElementToBeRemoved ( ( ) => screen . getByText ( / u s e r s d a t a n o t q u i t e t h e r e y e t / i) ) ;
33
+ expect ( await screen . findByText ( / e r r o r f e t c h i n g c o n t a c t s / i) ) . toBeOnTheScreen ( ) ;
34
+ } ) ;
35
+
36
+ it ( 'fetches favorites successfully and renders all users avatars' , async ( ) => {
37
+ ( global . fetch as jest . Mock ) . mockResolvedValueOnce ( {
38
+ ok : true ,
39
+ json : jest . fn ( ) . mockResolvedValueOnce ( DATA ) ,
40
+ } ) ;
41
+ ( axios . get as jest . Mock ) . mockResolvedValue ( { data : DATA } ) ;
42
+ render ( < PhoneBook /> ) ;
43
+
44
+ await waitForElementToBeRemoved ( ( ) => screen . getByText ( / f i g u r i n g o u t y o u r f a v o r i t e s / i) ) ;
45
+ expect ( await screen . findByText ( / m y f a v o r i t e s / i) ) . toBeOnTheScreen ( ) ;
46
+ expect ( await screen . findAllByLabelText ( 'favorite-contact-avatar' ) ) . toHaveLength ( 3 ) ;
47
+ } ) ;
48
+
49
+ it ( 'fails to fetch favorites and renders error message' , async ( ) => {
50
+ ( global . fetch as jest . Mock ) . mockResolvedValueOnce ( {
51
+ ok : true ,
52
+ json : jest . fn ( ) . mockResolvedValueOnce ( DATA ) ,
53
+ } ) ;
54
+ ( axios . get as jest . Mock ) . mockRejectedValueOnce ( { message : 'Error fetching favorites' } ) ;
55
+ render ( < PhoneBook /> ) ;
56
+
57
+ await waitForElementToBeRemoved ( ( ) => screen . getByText ( / f i g u r i n g o u t y o u r f a v o r i t e s / i) ) ;
58
+ expect ( await screen . findByText ( / e r r o r f e t c h i n g f a v o r i t e s / i) ) . toBeOnTheScreen ( ) ;
59
+ } ) ;
64
60
} ) ;
65
61
66
62
const DATA : { results : User [ ] } = {
0 commit comments