@@ -62,6 +62,7 @@ describe("RegisterSide", () => {
6262
6363 it ( "mostra erros obrigatórios ao submeter vazio" , async ( ) => {
6464 render ( < RegisterSide /> ) ;
65+ fireEvent . click ( screen . getByRole ( "button" , { name : / s o u a d m i n / i } ) ) ;
6566 fireEvent . click ( screen . getByRole ( "button" , { name : / c a d a s t r a r / i } ) ) ;
6667 expect ( await screen . findByText ( / c a m p o d e n o m e é o b r i g a t ó r i o / i) ) . toBeInTheDocument ( ) ;
6768 expect ( await screen . findByText ( / c a m p o d e e - m a i l é o b r i g a t ó r i o / i) ) . toBeInTheDocument ( ) ;
@@ -73,6 +74,7 @@ describe("RegisterSide", () => {
7374
7475 it ( "valida CPF inválido quando preenchido" , async ( ) => {
7576 render ( < RegisterSide /> ) ;
77+ fireEvent . click ( screen . getByRole ( "button" , { name : / s o u a d m i n / i } ) ) ;
7678 fireEvent . change ( screen . getByLabelText ( / n o m e / i) , { target : { value : "Usuário" } } ) ;
7779 fireEvent . change ( screen . getByLabelText ( / e m a i l / i) , { target : { value : "teste@email.com" } } ) ;
7880 fireEvent . change ( screen . getByPlaceholderText ( / \( 3 4 \) / i) , { target : { value : "+5534999999999" } } ) ;
@@ -87,6 +89,7 @@ describe("RegisterSide", () => {
8789 it ( "envia formulário válido sem CPF" , async ( ) => {
8890 mockRegister . mockResolvedValueOnce ( { message : "Usuário criado" } ) ;
8991 render ( < RegisterSide /> ) ;
92+ fireEvent . click ( screen . getByRole ( "button" , { name : / s o u a d m i n / i } ) ) ;
9093 fireEvent . change ( screen . getByLabelText ( / n o m e / i) , { target : { value : "Bene" } } ) ;
9194 fireEvent . change ( screen . getByLabelText ( / e m a i l / i) , { target : { value : "bene@teste.com" } } ) ;
9295 fireEvent . change ( screen . getByPlaceholderText ( / \( 3 4 \) / i) , { target : { value : "+5534999999999" } } ) ;
@@ -103,14 +106,38 @@ describe("RegisterSide", () => {
103106 cpf : "" ,
104107 level : "Júnior" ,
105108 technologies : [ "React" ] ,
109+ role : "admin" ,
106110 } ) ;
107111 } ) ;
108112 expect ( window . location . href ) . toBe ( "/login?registered=true" ) ;
109113 } ) ;
110114
115+ it ( "envia formulário válido como usuário (sem tecnologias/nível)" , async ( ) => {
116+ mockRegister . mockResolvedValueOnce ( { message : "Usuário criado" } ) ;
117+ render ( < RegisterSide /> ) ;
118+ fireEvent . change ( screen . getByLabelText ( / n o m e / i) , { target : { value : "Bene" } } ) ;
119+ fireEvent . change ( screen . getByLabelText ( / e m a i l / i) , { target : { value : "bene@teste.com" } } ) ;
120+ fireEvent . change ( screen . getByPlaceholderText ( / \( 3 4 \) / i) , { target : { value : "+5534999999999" } } ) ;
121+ fireEvent . change ( screen . getByLabelText ( / s e n h a / i) , { target : { value : "123456" } } ) ;
122+ fireEvent . click ( screen . getByRole ( "button" , { name : / c a d a s t r a r / i } ) ) ;
123+ await waitFor ( ( ) => {
124+ expect ( mockRegister ) . toHaveBeenCalledWith ( {
125+ email : "bene@teste.com" ,
126+ password : "123456" ,
127+ name : "Bene" ,
128+ phone : "+5534999999999" ,
129+ cpf : "" ,
130+ level : undefined ,
131+ technologies : undefined ,
132+ role : "user"
133+ } ) ;
134+ } ) ;
135+ } ) ;
136+
111137 it ( "exibe erro da API" , async ( ) => {
112138 mockRegister . mockRejectedValueOnce ( new Error ( "Email já cadastrado" ) ) ;
113139 render ( < RegisterSide /> ) ;
140+ fireEvent . click ( screen . getByRole ( "button" , { name : / s o u a d m i n / i } ) ) ;
114141 fireEvent . change ( screen . getByLabelText ( / n o m e / i) , { target : { value : "Bene" } } ) ;
115142 fireEvent . change ( screen . getByLabelText ( / e m a i l / i) , { target : { value : "bene@teste.com" } } ) ;
116143 fireEvent . change ( screen . getByPlaceholderText ( / \( 3 4 \) / i) , { target : { value : "+5534999999999" } } ) ;
@@ -124,6 +151,7 @@ describe("RegisterSide", () => {
124151 it ( "mostra loading durante requisição" , async ( ) => {
125152 mockRegister . mockImplementation ( ( ) => new Promise ( ( ) => { } ) ) ;
126153 render ( < RegisterSide /> ) ;
154+ fireEvent . click ( screen . getByRole ( "button" , { name : / s o u a d m i n / i } ) ) ;
127155 fireEvent . change ( screen . getByLabelText ( / n o m e / i) , { target : { value : "Bene" } } ) ;
128156 fireEvent . change ( screen . getByLabelText ( / e m a i l / i) , { target : { value : "bene@teste.com" } } ) ;
129157 fireEvent . change ( screen . getByPlaceholderText ( / \( 3 4 \) / i) , { target : { value : "+5534999999999" } } ) ;
@@ -146,6 +174,7 @@ describe("RegisterSide", () => {
146174 it ( "desabilita inputs durante loading" , async ( ) => {
147175 mockRegister . mockImplementation ( ( ) => new Promise ( ( ) => { } ) ) ;
148176 render ( < RegisterSide /> ) ;
177+ fireEvent . click ( screen . getByRole ( "button" , { name : / s o u a d m i n / i } ) ) ;
149178 const nomeInput = screen . getByLabelText ( / n o m e / i) ;
150179 const emailInput = screen . getByLabelText ( / e m a i l / i) ;
151180 const telefoneInput = screen . getByPlaceholderText ( / \( 3 4 \) / i) ;
0 commit comments