1
1
import { describe , it , expect , vi , afterEach } from "vitest" ;
2
2
import { render , screen , fireEvent , waitFor } from "@testing-library/vue" ;
3
- import { createRouter , createWebHistory } from "vue-router" ;
4
3
import userEvent from "@testing-library/user-event" ;
4
+ import { testRouter } from '@/tests/utils/testRouter'
5
5
6
6
import EditUserView from "@/views/EditUserView.vue" ;
7
- import HomeView from "@/views/HomeView.vue" ;
7
+ import * as userService from '@/services/userService'
8
8
9
9
const mockUser = {
10
10
id : "123" ,
@@ -19,14 +19,6 @@ const mockUser = {
19
19
]
20
20
} ;
21
21
22
- const router = createRouter ( {
23
- history : createWebHistory ( ) ,
24
- routes : [
25
- { path : "/" , component : HomeView } ,
26
- { path : "/edit/:id" , component : EditUserView }
27
- ]
28
- } ) ;
29
-
30
22
afterEach ( ( ) => {
31
23
vi . unstubAllGlobals ( ) ;
32
24
} ) ;
@@ -35,23 +27,15 @@ describe("UI - Editar usuario", () => {
35
27
it ( "Debería cargar datos y permitir editar el usuario" , async ( ) => {
36
28
vi . stubGlobal ( "alert" , vi . fn ( ) ) ;
37
29
38
- vi . stubGlobal ( "fetch" , vi . fn ( ( url , options ) => {
39
- if ( options && options . method === "PUT" ) {
40
- return Promise . resolve ( { ok : true , json : ( ) => Promise . resolve ( { } ) } ) ;
41
- }
42
-
43
- return Promise . resolve ( {
44
- ok : true ,
45
- json : ( ) => Promise . resolve ( [ mockUser ] )
46
- } ) ;
47
- } ) ) ;
30
+ vi . spyOn ( userService , "getUsers" ) . mockResolvedValue ( [ mockUser ] )
31
+ vi . spyOn ( userService , "updateUser" ) . mockResolvedValue ( )
48
32
49
- router . push ( "/edit/123" ) ;
50
- await router . isReady ( ) ;
33
+ testRouter . push ( "/edit/123" )
34
+ await testRouter . isReady ( )
51
35
52
36
render ( EditUserView , {
53
37
global : {
54
- plugins : [ router ]
38
+ plugins : [ testRouter ]
55
39
}
56
40
} ) ;
57
41
@@ -70,7 +54,7 @@ describe("UI - Editar usuario", () => {
70
54
await fireEvent . click ( submitButton ) ;
71
55
72
56
await waitFor ( ( ) => {
73
- expect ( router . currentRoute . value . fullPath ) . toBe ( "/" ) ;
57
+ expect ( testRouter . currentRoute . value . fullPath ) . toBe ( "/home " ) ;
74
58
} ) ;
75
59
} ) ;
76
60
} ) ;
0 commit comments