Skip to content

Commit b45f91c

Browse files
♻️ types
1 parent c1fafe3 commit b45f91c

File tree

2 files changed

+65
-6
lines changed

2 files changed

+65
-6
lines changed

static/app/components/actions/resolve.spec.tsx

Lines changed: 64 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,13 @@ describe('ResolveActions', () => {
2121
describe('disabled', () => {
2222
it('does not call onUpdate when clicked', async () => {
2323
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+
/>
2531
);
2632
const button = screen.getByRole('button', {name: 'Resolve'});
2733
expect(button).toBeDisabled();
@@ -34,6 +40,7 @@ describe('ResolveActions', () => {
3440
it('main button calls onUpdate when clicked and dropdown menu disabled', async () => {
3541
render(
3642
<ResolveActions
43+
hasSemverReleaseFeature={false}
3744
onUpdate={spy}
3845
disableDropdown
3946
hasRelease={false}
@@ -55,6 +62,7 @@ describe('ResolveActions', () => {
5562
it('calls onUpdate with unresolved status when clicked', async () => {
5663
render(
5764
<ResolveActions
65+
hasSemverReleaseFeature={false}
5866
onUpdate={spy}
5967
disabled
6068
hasRelease={false}
@@ -80,6 +88,7 @@ describe('ResolveActions', () => {
8088
it('cannot be unresolved manually', async () => {
8189
render(
8290
<ResolveActions
91+
hasSemverReleaseFeature={false}
8392
onUpdate={spy}
8493
disabled
8594
hasRelease={false}
@@ -96,7 +105,14 @@ describe('ResolveActions', () => {
96105

97106
describe('without confirmation', () => {
98107
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+
);
100116
await userEvent.click(screen.getByRole('button', {name: 'Resolve'}));
101117
expect(spy).toHaveBeenCalledTimes(1);
102118
expect(spy).toHaveBeenCalledWith({
@@ -111,6 +127,7 @@ describe('ResolveActions', () => {
111127
it('displays confirmation modal with message provided', async () => {
112128
render(
113129
<ResolveActions
130+
hasSemverReleaseFeature={false}
114131
onUpdate={spy}
115132
hasRelease={false}
116133
projectSlug="proj-1"
@@ -139,7 +156,14 @@ describe('ResolveActions', () => {
139156
url: '/projects/org-slug/project-slug/releases/',
140157
body: [ReleaseFixture()],
141158
});
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+
);
143167
renderGlobalModal();
144168

145169
await userEvent.click(screen.getByLabelText('More resolve options'));
@@ -160,9 +184,10 @@ describe('ResolveActions', () => {
160184
});
161185
});
162186

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 () => {
164188
render(
165189
<ResolveActions
190+
hasSemverReleaseFeature={false}
166191
onUpdate={spy}
167192
hasRelease
168193
projectSlug="proj-1"
@@ -176,8 +201,31 @@ describe('ResolveActions', () => {
176201
expect(screen.getByText('(semver)')).toBeInTheDocument();
177202
});
178203

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+
179220
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+
);
181229

182230
await userEvent.click(screen.getByLabelText('More resolve options'));
183231
expect(screen.getByText('Resolving is better with Releases')).toBeInTheDocument();
@@ -186,6 +234,7 @@ describe('ResolveActions', () => {
186234
it('does not prompt to setup releases when multiple projects are selected', async () => {
187235
render(
188236
<ResolveActions
237+
hasSemverReleaseFeature={false}
189238
onUpdate={spy}
190239
hasRelease={false}
191240
projectSlug="proj-1"
@@ -205,6 +254,7 @@ describe('ResolveActions', () => {
205254
it('does render more resolve options', () => {
206255
render(
207256
<ResolveActions
257+
hasSemverReleaseFeature={false}
208258
onUpdate={spy}
209259
hasRelease={false}
210260
projectSlug="proj-1"
@@ -217,6 +267,7 @@ describe('ResolveActions', () => {
217267
it('does not render more resolve options', () => {
218268
render(
219269
<ResolveActions
270+
hasSemverReleaseFeature={false}
220271
onUpdate={spy}
221272
hasRelease={false}
222273
projectSlug="proj-1"
@@ -232,7 +283,14 @@ describe('ResolveActions', () => {
232283
url: '/projects/org-slug/project-slug/releases/',
233284
body: [ReleaseFixture()],
234285
});
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+
);
236294

237295
await userEvent.click(screen.getByLabelText('More resolve options'));
238296
expect(await screen.findByText('The next release')).toBeInTheDocument();

static/app/views/issueDetails/actions/index.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -661,6 +661,7 @@ export function GroupActions({group, project, disabled, event}: GroupActionsProp
661661
<GuideAnchor target="resolve" position="bottom" offset={20}>
662662
<ResolveActions
663663
disableResolveInRelease={!resolveInReleaseCap.enabled}
664+
hasSemverReleaseFeature={hasSemverReleaseFeature}
664665
disabled={disabled}
665666
disableDropdown={disabled}
666667
hasRelease={hasRelease}

0 commit comments

Comments
 (0)