@@ -21,7 +21,13 @@ describe('ResolveActions', () => {
21
21
describe ( 'disabled' , ( ) => {
22
22
it ( 'does not call onUpdate when clicked' , async ( ) => {
23
23
render (
24
- < ResolveActions onUpdate = { spy } disabled hasRelease = { false } projectSlug = "proj-1" />
24
+ < ResolveActions
25
+ hasSemverReleaseFeature = { false }
26
+ onUpdate = { spy }
27
+ disabled
28
+ hasRelease = { false }
29
+ projectSlug = "proj-1"
30
+ />
25
31
) ;
26
32
const button = screen . getByRole ( 'button' , { name : 'Resolve' } ) ;
27
33
expect ( button ) . toBeDisabled ( ) ;
@@ -34,6 +40,7 @@ describe('ResolveActions', () => {
34
40
it ( 'main button calls onUpdate when clicked and dropdown menu disabled' , async ( ) => {
35
41
render (
36
42
< ResolveActions
43
+ hasSemverReleaseFeature = { false }
37
44
onUpdate = { spy }
38
45
disableDropdown
39
46
hasRelease = { false }
@@ -55,6 +62,7 @@ describe('ResolveActions', () => {
55
62
it ( 'calls onUpdate with unresolved status when clicked' , async ( ) => {
56
63
render (
57
64
< ResolveActions
65
+ hasSemverReleaseFeature = { false }
58
66
onUpdate = { spy }
59
67
disabled
60
68
hasRelease = { false }
@@ -80,6 +88,7 @@ describe('ResolveActions', () => {
80
88
it ( 'cannot be unresolved manually' , async ( ) => {
81
89
render (
82
90
< ResolveActions
91
+ hasSemverReleaseFeature = { false }
83
92
onUpdate = { spy }
84
93
disabled
85
94
hasRelease = { false }
@@ -96,7 +105,14 @@ describe('ResolveActions', () => {
96
105
97
106
describe ( 'without confirmation' , ( ) => {
98
107
it ( 'calls spy with resolved status when clicked' , async ( ) => {
99
- render ( < ResolveActions onUpdate = { spy } hasRelease = { false } projectSlug = "proj-1" /> ) ;
108
+ render (
109
+ < ResolveActions
110
+ hasSemverReleaseFeature = { false }
111
+ onUpdate = { spy }
112
+ hasRelease = { false }
113
+ projectSlug = "proj-1"
114
+ />
115
+ ) ;
100
116
await userEvent . click ( screen . getByRole ( 'button' , { name : 'Resolve' } ) ) ;
101
117
expect ( spy ) . toHaveBeenCalledTimes ( 1 ) ;
102
118
expect ( spy ) . toHaveBeenCalledWith ( {
@@ -111,6 +127,7 @@ describe('ResolveActions', () => {
111
127
it ( 'displays confirmation modal with message provided' , async ( ) => {
112
128
render (
113
129
< ResolveActions
130
+ hasSemverReleaseFeature = { false }
114
131
onUpdate = { spy }
115
132
hasRelease = { false }
116
133
projectSlug = "proj-1"
@@ -139,7 +156,14 @@ describe('ResolveActions', () => {
139
156
url : '/projects/org-slug/project-slug/releases/' ,
140
157
body : [ ReleaseFixture ( ) ] ,
141
158
} ) ;
142
- render ( < ResolveActions hasRelease projectSlug = "project-slug" onUpdate = { onUpdate } /> ) ;
159
+ render (
160
+ < ResolveActions
161
+ hasSemverReleaseFeature = { false }
162
+ hasRelease
163
+ projectSlug = "project-slug"
164
+ onUpdate = { onUpdate }
165
+ />
166
+ ) ;
143
167
renderGlobalModal ( ) ;
144
168
145
169
await userEvent . click ( screen . getByLabelText ( 'More resolve options' ) ) ;
@@ -160,9 +184,10 @@ describe('ResolveActions', () => {
160
184
} ) ;
161
185
} ) ;
162
186
163
- it ( 'displays if the current release version uses semver' , async ( ) => {
187
+ it ( 'displays if the current release version uses semver and flag is not enabled ' , async ( ) => {
164
188
render (
165
189
< ResolveActions
190
+ hasSemverReleaseFeature = { false }
166
191
onUpdate = { spy }
167
192
hasRelease
168
193
projectSlug = "proj-1"
@@ -176,8 +201,31 @@ describe('ResolveActions', () => {
176
201
expect ( screen . getByText ( '(semver)' ) ) . toBeInTheDocument ( ) ;
177
202
} ) ;
178
203
204
+ it ( 'shows resolve in semver release option when the current release version uses semver and flag is enabled' , async ( ) => {
205
+ render (
206
+ < ResolveActions
207
+ hasSemverReleaseFeature
208
+ onUpdate = { spy }
209
+ hasRelease
210
+ projectSlug = "proj-1"
211
+ latestRelease = { { version : 'frontend@1.2.3' } }
212
+ />
213
+ ) ;
214
+
215
+ await userEvent . click ( screen . getByLabelText ( 'More resolve options' ) ) ;
216
+ expect ( screen . getByText ( 'The current semver release' ) ) . toBeInTheDocument ( ) ;
217
+ expect ( screen . getByText ( '1.2.3' ) ) . toBeInTheDocument ( ) ;
218
+ } ) ;
219
+
179
220
it ( 'displays prompt to setup releases when there are no releases' , async ( ) => {
180
- render ( < ResolveActions onUpdate = { spy } hasRelease = { false } projectSlug = "proj-1" /> ) ;
221
+ render (
222
+ < ResolveActions
223
+ hasSemverReleaseFeature = { false }
224
+ onUpdate = { spy }
225
+ hasRelease = { false }
226
+ projectSlug = "proj-1"
227
+ />
228
+ ) ;
181
229
182
230
await userEvent . click ( screen . getByLabelText ( 'More resolve options' ) ) ;
183
231
expect ( screen . getByText ( 'Resolving is better with Releases' ) ) . toBeInTheDocument ( ) ;
@@ -186,6 +234,7 @@ describe('ResolveActions', () => {
186
234
it ( 'does not prompt to setup releases when multiple projects are selected' , async ( ) => {
187
235
render (
188
236
< ResolveActions
237
+ hasSemverReleaseFeature = { false }
189
238
onUpdate = { spy }
190
239
hasRelease = { false }
191
240
projectSlug = "proj-1"
@@ -205,6 +254,7 @@ describe('ResolveActions', () => {
205
254
it ( 'does render more resolve options' , ( ) => {
206
255
render (
207
256
< ResolveActions
257
+ hasSemverReleaseFeature = { false }
208
258
onUpdate = { spy }
209
259
hasRelease = { false }
210
260
projectSlug = "proj-1"
@@ -217,6 +267,7 @@ describe('ResolveActions', () => {
217
267
it ( 'does not render more resolve options' , ( ) => {
218
268
render (
219
269
< ResolveActions
270
+ hasSemverReleaseFeature = { false }
220
271
onUpdate = { spy }
221
272
hasRelease = { false }
222
273
projectSlug = "proj-1"
@@ -232,7 +283,14 @@ describe('ResolveActions', () => {
232
283
url : '/projects/org-slug/project-slug/releases/' ,
233
284
body : [ ReleaseFixture ( ) ] ,
234
285
} ) ;
235
- render ( < ResolveActions hasRelease projectSlug = "project-slug" onUpdate = { onUpdate } /> ) ;
286
+ render (
287
+ < ResolveActions
288
+ hasSemverReleaseFeature = { false }
289
+ hasRelease
290
+ projectSlug = "project-slug"
291
+ onUpdate = { onUpdate }
292
+ />
293
+ ) ;
236
294
237
295
await userEvent . click ( screen . getByLabelText ( 'More resolve options' ) ) ;
238
296
expect ( await screen . findByText ( 'The next release' ) ) . toBeInTheDocument ( ) ;
0 commit comments