@@ -4,6 +4,7 @@ import { screen, waitFor, within } from "@testing-library/react";
4
4
import userEvent from "@testing-library/user-event" ;
5
5
import * as api from "api/api" ;
6
6
import {
7
+ MockTemplate ,
7
8
MockTemplateVersion ,
8
9
MockWorkspaceBuildLogs ,
9
10
} from "testHelpers/entities" ;
@@ -17,26 +18,37 @@ jest.mock("components/TemplateResourcesTable/TemplateResourcesTable", () => {
17
18
} ;
18
19
} ) ;
19
20
20
- test ( "Use custom name, message and set it as active when publishing" , async ( ) => {
21
- const user = userEvent . setup ( ) ;
21
+ const renderTemplateEditorPage = ( ) => {
22
22
renderWithAuth ( < TemplateVersionEditorPage /> , {
23
+ route : `/templates/${ MockTemplate . name } /versions/${ MockTemplateVersion . name } /edit` ,
24
+ path : "/templates/:template/versions/:version/edit" ,
23
25
extraRoutes : [
24
26
{
25
27
path : "/templates/:templateId" ,
26
28
element : < div /> ,
27
29
} ,
28
30
] ,
29
31
} ) ;
32
+ } ;
33
+
34
+ test ( "Use custom name, message and set it as active when publishing" , async ( ) => {
35
+ const user = userEvent . setup ( ) ;
36
+ renderTemplateEditorPage ( ) ;
30
37
const topbar = await screen . findByTestId ( "topbar" ) ;
31
38
32
39
// Build Template
33
40
jest . spyOn ( api , "uploadFile" ) . mockResolvedValueOnce ( { hash : "hash" } ) ;
41
+ const newTemplateVersion = {
42
+ ...MockTemplateVersion ,
43
+ id : "new-version-id" ,
44
+ name : "new-version" ,
45
+ } ;
34
46
jest
35
47
. spyOn ( api , "createTemplateVersion" )
36
- . mockResolvedValueOnce ( MockTemplateVersion ) ;
48
+ . mockResolvedValue ( newTemplateVersion ) ;
37
49
jest
38
- . spyOn ( api , "getTemplateVersion " )
39
- . mockResolvedValue ( { ... MockTemplateVersion , id : "new-version-id" } ) ;
50
+ . spyOn ( api , "getTemplateVersionByName " )
51
+ . mockResolvedValue ( newTemplateVersion ) ;
40
52
jest
41
53
. spyOn ( api , "watchBuildLogsByTemplateVersionId" )
42
54
. mockImplementation ( ( _ , options ) => {
@@ -52,7 +64,7 @@ test("Use custom name, message and set it as active when publishing", async () =
52
64
// Publish
53
65
const patchTemplateVersion = jest
54
66
. spyOn ( api , "patchTemplateVersion" )
55
- . mockResolvedValue ( MockTemplateVersion ) ;
67
+ . mockResolvedValue ( newTemplateVersion ) ;
56
68
const updateActiveTemplateVersion = jest
57
69
. spyOn ( api , "updateActiveTemplateVersion" )
58
70
. mockResolvedValue ( { message : "" } ) ;
@@ -84,24 +96,22 @@ test("Use custom name, message and set it as active when publishing", async () =
84
96
85
97
test ( "Do not mark as active if promote is not checked" , async ( ) => {
86
98
const user = userEvent . setup ( ) ;
87
- renderWithAuth ( < TemplateVersionEditorPage /> , {
88
- extraRoutes : [
89
- {
90
- path : "/templates/:templateId" ,
91
- element : < div /> ,
92
- } ,
93
- ] ,
94
- } ) ;
99
+ renderTemplateEditorPage ( ) ;
95
100
const topbar = await screen . findByTestId ( "topbar" ) ;
96
101
97
102
// Build Template
98
103
jest . spyOn ( api , "uploadFile" ) . mockResolvedValueOnce ( { hash : "hash" } ) ;
104
+ const newTemplateVersion = {
105
+ ...MockTemplateVersion ,
106
+ id : "new-version-id" ,
107
+ name : "new-version" ,
108
+ } ;
99
109
jest
100
110
. spyOn ( api , "createTemplateVersion" )
101
- . mockResolvedValueOnce ( MockTemplateVersion ) ;
111
+ . mockResolvedValue ( newTemplateVersion ) ;
102
112
jest
103
- . spyOn ( api , "getTemplateVersion " )
104
- . mockResolvedValue ( { ... MockTemplateVersion , id : "new-version-id" } ) ;
113
+ . spyOn ( api , "getTemplateVersionByName " )
114
+ . mockResolvedValue ( newTemplateVersion ) ;
105
115
jest
106
116
. spyOn ( api , "watchBuildLogsByTemplateVersionId" )
107
117
. mockImplementation ( ( _ , options ) => {
@@ -117,7 +127,7 @@ test("Do not mark as active if promote is not checked", async () => {
117
127
// Publish
118
128
const patchTemplateVersion = jest
119
129
. spyOn ( api , "patchTemplateVersion" )
120
- . mockResolvedValue ( MockTemplateVersion ) ;
130
+ . mockResolvedValue ( newTemplateVersion ) ;
121
131
const updateActiveTemplateVersion = jest
122
132
. spyOn ( api , "updateActiveTemplateVersion" )
123
133
. mockResolvedValue ( { message : "" } ) ;
@@ -146,30 +156,27 @@ test("Do not mark as active if promote is not checked", async () => {
146
156
} ) ;
147
157
148
158
test ( "Patch request is not send when there are no changes" , async ( ) => {
149
- const MockTemplateVersionWithEmptyMessage = {
159
+ const newTemplateVersion = {
150
160
...MockTemplateVersion ,
161
+ id : "new-version-id" ,
162
+ name : "new-version" ,
163
+ } ;
164
+ const MockTemplateVersionWithEmptyMessage = {
165
+ ...newTemplateVersion ,
151
166
message : "" ,
152
167
} ;
153
168
const user = userEvent . setup ( ) ;
154
- renderWithAuth ( < TemplateVersionEditorPage /> , {
155
- extraRoutes : [
156
- {
157
- path : "/templates/:templateId" ,
158
- element : < div /> ,
159
- } ,
160
- ] ,
161
- } ) ;
169
+ renderTemplateEditorPage ( ) ;
162
170
const topbar = await screen . findByTestId ( "topbar" ) ;
163
171
164
172
// Build Template
165
173
jest . spyOn ( api , "uploadFile" ) . mockResolvedValueOnce ( { hash : "hash" } ) ;
166
174
jest
167
175
. spyOn ( api , "createTemplateVersion" )
168
- . mockResolvedValueOnce ( MockTemplateVersionWithEmptyMessage ) ;
169
- jest . spyOn ( api , "getTemplateVersion" ) . mockResolvedValue ( {
170
- ...MockTemplateVersionWithEmptyMessage ,
171
- id : "new-version-id" ,
172
- } ) ;
176
+ . mockResolvedValue ( MockTemplateVersionWithEmptyMessage ) ;
177
+ jest
178
+ . spyOn ( api , "getTemplateVersionByName" )
179
+ . mockResolvedValue ( MockTemplateVersionWithEmptyMessage ) ;
173
180
jest
174
181
. spyOn ( api , "watchBuildLogsByTemplateVersionId" )
175
182
. mockImplementation ( ( _ , options ) => {
0 commit comments