1
- import { act , screen } from "@testing-library/react"
1
+ import { screen } from "@testing-library/react"
2
2
import userEvent from "@testing-library/user-event"
3
3
import { rest } from "msw"
4
4
import React from "react"
@@ -8,10 +8,11 @@ import { history, render } from "../../../testHelpers"
8
8
import { server } from "../../../testHelpers/server"
9
9
import { Language as UserLanguage } from "../../../xServices/users/usersXService"
10
10
import { CreateUserPage , Language } from "./CreateUserPage"
11
+ import * as API from "../../../api"
11
12
12
13
const fillForm = async ( {
13
- username = "testuser " ,
14
- email = "test @coder.com" ,
14
+ username = "someuser " ,
15
+ email = "someone @coder.com" ,
15
16
password = "password" ,
16
17
} : {
17
18
username ?: string
@@ -25,7 +26,7 @@ const fillForm = async ({
25
26
await userEvent . type ( emailField , email )
26
27
await userEvent . type ( passwordField , password )
27
28
const submitButton = await screen . findByText ( FooterLanguage . defaultSubmitLabel )
28
- act ( ( ) => submitButton . click ( ) )
29
+ submitButton . click ( )
29
30
}
30
31
31
32
describe ( "Create User Page" , ( ) => {
@@ -40,11 +41,9 @@ describe("Create User Page", () => {
40
41
expect ( errorMessage ) . toBeDefined ( )
41
42
} )
42
43
it ( "shows generic error message" , async ( ) => {
43
- server . use (
44
- rest . post ( "/api/v2/users" , ( ) => {
45
- Promise . reject ( "something went wrong" )
46
- } ) ,
47
- )
44
+ jest . spyOn ( API , "createUser" ) . mockRejectedValueOnce ( {
45
+ data : "unknown error" ,
46
+ } )
48
47
render ( < CreateUserPage /> )
49
48
await fillForm ( { } )
50
49
const errorMessage = await screen . findByText ( Language . unknownError )
@@ -53,7 +52,7 @@ describe("Create User Page", () => {
53
52
it ( "shows API error message" , async ( ) => {
54
53
const fieldErrorMessage = "username already in use"
55
54
server . use (
56
- rest . post ( "/api/v2/users" , ( req , res , ctx ) => {
55
+ rest . post ( "/api/v2/users" , async ( req , res , ctx ) => {
57
56
return res (
58
57
ctx . status ( 400 ) ,
59
58
ctx . json ( {
@@ -82,13 +81,13 @@ describe("Create User Page", () => {
82
81
it ( "redirects to users page on cancel" , async ( ) => {
83
82
render ( < CreateUserPage /> )
84
83
const cancelButton = await screen . findByText ( FooterLanguage . cancelLabel )
85
- act ( ( ) => cancelButton . click ( ) )
84
+ cancelButton . click ( )
86
85
expect ( history . location . pathname ) . toEqual ( "/users" )
87
86
} )
88
87
it ( "redirects to users page on close" , async ( ) => {
89
88
render ( < CreateUserPage /> )
90
89
const closeButton = await screen . findByText ( "ESC" )
91
- act ( ( ) => closeButton . click ( ) )
90
+ closeButton . click ( )
92
91
expect ( history . location . pathname ) . toEqual ( "/users" )
93
92
} )
94
93
} )
0 commit comments