1
1
import React from 'react' ;
2
2
import { Provider } from 'react-redux' ;
3
3
import '@testing-library/jest-dom' ;
4
- import { render , screen } from '@testing-library/react' ;
4
+ import { render , screen , fireEvent , waitFor } from '@testing-library/react' ;
5
5
import BottomTabs from '../app/src/components/bottom/BottomTabs' ;
6
6
import store from '../app/src/redux/store' ;
7
+ import ComponentPanel from '../app/src/components/right/ComponentPanel' ;
7
8
8
9
test ( 'Bottom Panel Contains All Seven Tabs' , ( ) => {
9
10
render (
@@ -20,3 +21,52 @@ test('Bottom Panel Contains All Seven Tabs', () => {
20
21
expect ( screen . getByText ( 'Context Manager' ) ) . toBeInTheDocument ( ) ;
21
22
expect ( screen . getByText ( 'State Manager' ) ) . toBeInTheDocument ( ) ;
22
23
} ) ;
24
+
25
+ test ( 'empty name field for new component' , async ( ) => {
26
+ render (
27
+ < Provider store = { store } >
28
+ < ComponentPanel isThemeLight = { null } />
29
+ </ Provider >
30
+ ) ;
31
+
32
+ fireEvent . click ( screen . getByText ( 'Create' ) , {
33
+ target : {
34
+ value : 'fasdfasd'
35
+ }
36
+ } ) ;
37
+
38
+ expect ( screen . getByText ( 'New Component' ) ) . toBeInTheDocument ( ) ;
39
+
40
+ await waitFor ( ( ) => {
41
+ expect (
42
+ screen . getByText ( 'Component name must start with a letter.' )
43
+ ) . toBeInTheDocument ( ) ;
44
+ } ) ;
45
+ } ) ;
46
+
47
+ test ( 'symbols in name of new component' , async ( ) => {
48
+ render (
49
+ < Provider store = { store } >
50
+ < ComponentPanel isThemeLight = { null } />
51
+ </ Provider >
52
+ ) ;
53
+
54
+ fireEvent . change ( screen . getByLabelText ( 'Name:' ) , {
55
+ target : {
56
+ value : '!@#'
57
+ }
58
+ } ) ;
59
+
60
+ fireEvent . click ( screen . getByText ( 'Create' ) ) ;
61
+
62
+ await waitFor ( ( ) => {
63
+ expect (
64
+ screen . getByText ( 'Component name must start with a letter.' )
65
+ ) . toBeInTheDocument ( ) ;
66
+ } ) ;
67
+ } ) ;
68
+ //test for edge cases
69
+ //trigger an event for each input
70
+ //value being empty string
71
+ //grab error message
72
+ //check if it matches what is expected
0 commit comments