Skip to content
This repository was archived by the owner on Sep 30, 2024. It is now read-only.

Commit 77363ac

Browse files
authored
Remove campaign status for campaign plans (#8955)
1 parent aa93b00 commit 77363ac

File tree

6 files changed

+30
-163
lines changed

6 files changed

+30
-163
lines changed

web/src/e2e/e2e.test.ts

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1491,23 +1491,6 @@ describe('e2e test suite', () => {
14911491
// fill campaign preview form
14921492
await driver.page.type('.e2e-campaign-title', 'E2E campaign')
14931493

1494-
// first wait for loader to appear
1495-
try {
1496-
await driver.page.waitForSelector('.e2e-preview-loading', { timeout: 500 })
1497-
} catch (error) {
1498-
if (error.name === 'TimeoutError') {
1499-
// ignore this error as campaign previews can finish at the initial request also, we check below for errors and actual completion
1500-
} else {
1501-
throw error
1502-
}
1503-
}
1504-
// then wait for loader to disappear
1505-
await driver.page.waitForSelector('.e2e-preview-loading', { timeout: 10000, hidden: true })
1506-
// check if there have been any errors
1507-
const errorCount = await driver.page.evaluate(() => document.querySelectorAll('.alert.alert-danger').length)
1508-
expect(errorCount).toEqual(0)
1509-
// check if the completion marker is rendered
1510-
await driver.page.waitForSelector('.e2e-preview-success')
15111494
// ensure diff tab is open
15121495
await driver.page.click('.e2e-campaign-diff-tab')
15131496
await driver.page.waitForSelector('.file-diff-node')

web/src/enterprise/campaigns/detail/CampaignDetails.tsx

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -493,7 +493,7 @@ export const CampaignDetails: React.FunctionComponent<Props> = ({
493493
</>
494494
)
495495
) : (
496-
<>
496+
<div className="mb-3">
497497
<button type="reset" className="btn btn-secondary mr-1" onClick={onCancel}>
498498
Cancel
499499
</button>
@@ -504,19 +504,22 @@ export const CampaignDetails: React.FunctionComponent<Props> = ({
504504
>
505505
Update
506506
</button>
507-
</>
507+
</div>
508508
)}
509509
</Form>
510510

511511
{/* is already created or a plan is available */}
512512
{(campaign || campaignPlan) && (
513513
<>
514-
<CampaignStatus
515-
campaign={(campaignPlan || campaign)!}
516-
status={(campaignPlan || campaign)!.status}
517-
onPublish={onPublish}
518-
onRetry={onRetry}
519-
/>
514+
{/* Only show status for created campaigns and not in update mode */}
515+
{campaign && !campaignPlan && (
516+
<CampaignStatus
517+
campaign={campaign}
518+
status={campaign.status}
519+
onPublish={onPublish}
520+
onRetry={onRetry}
521+
/>
522+
)}
520523

521524
{campaign && !updateMode && (
522525
<>

web/src/enterprise/campaigns/detail/CampaignStatus.test.tsx

Lines changed: 0 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,6 @@ const CAMPAIGN: Pick<GQL.ICampaign, '__typename' | 'closedAt' | 'publishedAt' |
1616
} as GQL.IExternalChangesetConnection,
1717
}
1818

19-
const CAMPAIGN_PLAN: Pick<GQL.ICampaignPlan, '__typename'> = {
20-
__typename: 'CampaignPlan',
21-
}
22-
2319
describe('CampaignStatus', () => {
2420
for (const viewerCanAdminister of [true, false]) {
2521
const campaign = { ...CAMPAIGN, viewerCanAdminister }
@@ -96,23 +92,6 @@ describe('CampaignStatus', () => {
9692
)
9793
).toMatchSnapshot())
9894

99-
test('campaign plan processing', () =>
100-
expect(
101-
createRenderer().render(
102-
<CampaignStatus
103-
{...PROPS}
104-
campaign={CAMPAIGN_PLAN}
105-
status={{
106-
completedCount: 3,
107-
pendingCount: 3,
108-
errors: ['a', 'b'],
109-
state: GQL.BackgroundProcessState.PROCESSING,
110-
}}
111-
onPublish={() => undefined}
112-
/>
113-
)
114-
).toMatchSnapshot())
115-
11695
test('campaign errored', () =>
11796
expect(
11897
createRenderer().render(

web/src/enterprise/campaigns/detail/CampaignStatus.tsx

Lines changed: 13 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,9 @@ import InformationIcon from 'mdi-react/InformationIcon'
88
import { parseISO, isBefore, addMinutes } from 'date-fns'
99

1010
export interface CampaignStatusProps {
11-
campaign:
12-
| (Pick<GQL.ICampaign, '__typename' | 'closedAt' | 'viewerCanAdminister' | 'publishedAt'> & {
13-
changesets: Pick<GQL.ICampaign['changesets'], 'totalCount'>
14-
})
15-
| Pick<GQL.ICampaignPlan, '__typename'>
11+
campaign: Pick<GQL.ICampaign, 'closedAt' | 'viewerCanAdminister' | 'publishedAt'> & {
12+
changesets: Pick<GQL.ICampaign['changesets'], 'totalCount'>
13+
}
1614

1715
/** The campaign status. */
1816
status: Omit<GQL.IBackgroundProcessStatus, '__typename'>
@@ -35,7 +33,6 @@ export const CampaignStatus: React.FunctionComponent<CampaignStatusProps> = ({
3533
/* For completed campaigns that have been published, hide the creation complete status 1 day after the time of publication */
3634
const creationCompletedLongAgo =
3735
status.state === GQL.BackgroundProcessState.COMPLETED &&
38-
campaign.__typename === 'Campaign' &&
3936
!!campaign.publishedAt &&
4037
isBefore(parseISO(campaign.publishedAt), addMinutes(new Date(), 1))
4138
const progress = (status.completedCount / (status.pendingCount + status.completedCount)) * 100
@@ -51,12 +48,11 @@ export const CampaignStatus: React.FunctionComponent<CampaignStatusProps> = ({
5148
</div>
5249
</div>
5350
<p>
54-
{campaign.__typename === 'CampaignPlan' ? 'Computing' : 'Creating'} changes:{' '}
55-
{status.completedCount} / {status.pendingCount + status.completedCount}
51+
Creating changes: {status.completedCount} / {status.pendingCount + status.completedCount}
5652
</p>
5753
</div>
5854
)}
59-
{campaign.__typename === 'Campaign' && !campaign.closedAt && !campaign.publishedAt && (
55+
{!campaign.closedAt && !campaign.publishedAt && (
6056
<>
6157
<div className="d-flex my-3 alert alert-info">
6258
<InformationIcon className="icon-inline mr-1" /> Campaign is a draft.{' '}
@@ -72,7 +68,7 @@ export const CampaignStatus: React.FunctionComponent<CampaignStatusProps> = ({
7268
)}
7369
</>
7470
)}
75-
{campaign.__typename === 'Campaign' && campaign.closedAt ? (
71+
{campaign.closedAt ? (
7672
<div className="d-flex my-3">
7773
<WarningIcon className="icon-inline text-warning mr-1" /> Campaign is closed
7874
</div>
@@ -81,8 +77,8 @@ export const CampaignStatus: React.FunctionComponent<CampaignStatusProps> = ({
8177
status.state === GQL.BackgroundProcessState.COMPLETED &&
8278
!creationCompletedLongAgo && (
8379
<div className="d-flex my-3">
84-
<CheckCircleIcon className="icon-inline text-success mr-1 e2e-preview-success" />{' '}
85-
{campaign.__typename === 'Campaign' ? 'Creation' : 'Preview'} completed
80+
<CheckCircleIcon className="icon-inline text-success mr-1 e2e-preview-success" /> Creation
81+
completed
8682
</div>
8783
)
8884
)}
@@ -97,14 +93,11 @@ export const CampaignStatus: React.FunctionComponent<CampaignStatusProps> = ({
9793
// eslint-disable-next-line react/no-array-index-key
9894
<ErrorAlert error={error} className="mt-3" key={i} />
9995
))}
100-
{campaign.__typename === 'Campaign' &&
101-
status.state === GQL.BackgroundProcessState.ERRORED &&
102-
!campaign.closedAt &&
103-
campaign.viewerCanAdminister && (
104-
<button type="button" className="btn btn-primary mb-2" onClick={onRetry}>
105-
Retry failed jobs
106-
</button>
107-
)}
96+
{status.state === GQL.BackgroundProcessState.ERRORED && !campaign.closedAt && campaign.viewerCanAdminister && (
97+
<button type="button" className="btn btn-primary mb-2" onClick={onRetry}>
98+
Retry failed jobs
99+
</button>
100+
)}
108101
</>
109102
)
110103
}

web/src/enterprise/campaigns/detail/__snapshots__/CampaignDetails.test.tsx.snap

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,6 @@ Array [
152152
</button>
153153
</div>
154154
</form>,
155-
"CampaignStatus(state=PROCESSING)",
156155
<h3
157156
className="mt-3"
158157
>

web/src/enterprise/campaigns/detail/__snapshots__/CampaignStatus.test.tsx.snap

Lines changed: 6 additions & 96 deletions
Original file line numberDiff line numberDiff line change
@@ -21,45 +21,6 @@ exports[`CampaignStatus viewerCanAdminister: false campaign errored 1`] = `
2121
</React.Fragment>
2222
`;
2323

24-
exports[`CampaignStatus viewerCanAdminister: false campaign plan processing 1`] = `
25-
<React.Fragment>
26-
<div
27-
className="mt-3 e2e-preview-loading"
28-
>
29-
<div
30-
className="progress mb-1"
31-
>
32-
<div
33-
className="progress-bar"
34-
style={
35-
Object {
36-
"width": "50%",
37-
}
38-
}
39-
>
40-
 
41-
</div>
42-
</div>
43-
<p>
44-
Computing
45-
changes:
46-
47-
3
48-
/
49-
6
50-
</p>
51-
</div>
52-
<ErrorAlert
53-
className="mt-3"
54-
error="a"
55-
/>
56-
<ErrorAlert
57-
className="mt-3"
58-
error="b"
59-
/>
60-
</React.Fragment>
61-
`;
62-
6324
exports[`CampaignStatus viewerCanAdminister: false campaign processing 1`] = `
6425
<React.Fragment>
6526
<div
@@ -80,9 +41,7 @@ exports[`CampaignStatus viewerCanAdminister: false campaign processing 1`] = `
8041
</div>
8142
</div>
8243
<p>
83-
Creating
84-
changes:
85-
44+
Creating changes:
8645
3
8746
/
8847
6
@@ -134,9 +93,7 @@ exports[`CampaignStatus viewerCanAdminister: false drafted campaign 1`] = `
13493
<Memo(CheckCircleIcon)
13594
className="icon-inline text-success mr-1 e2e-preview-success"
13695
/>
137-
138-
Creation
139-
completed
96+
Creation completed
14097
</div>
14198
</React.Fragment>
14299
`;
@@ -163,9 +120,7 @@ exports[`CampaignStatus viewerCanAdminister: false drafted campaign, some publis
163120
<Memo(CheckCircleIcon)
164121
className="icon-inline text-success mr-1 e2e-preview-success"
165122
/>
166-
167-
Creation
168-
completed
123+
Creation completed
169124
</div>
170125
</React.Fragment>
171126
`;
@@ -198,45 +153,6 @@ exports[`CampaignStatus viewerCanAdminister: true campaign errored 1`] = `
198153
</React.Fragment>
199154
`;
200155

201-
exports[`CampaignStatus viewerCanAdminister: true campaign plan processing 1`] = `
202-
<React.Fragment>
203-
<div
204-
className="mt-3 e2e-preview-loading"
205-
>
206-
<div
207-
className="progress mb-1"
208-
>
209-
<div
210-
className="progress-bar"
211-
style={
212-
Object {
213-
"width": "50%",
214-
}
215-
}
216-
>
217-
 
218-
</div>
219-
</div>
220-
<p>
221-
Computing
222-
changes:
223-
224-
3
225-
/
226-
6
227-
</p>
228-
</div>
229-
<ErrorAlert
230-
className="mt-3"
231-
error="a"
232-
/>
233-
<ErrorAlert
234-
className="mt-3"
235-
error="b"
236-
/>
237-
</React.Fragment>
238-
`;
239-
240156
exports[`CampaignStatus viewerCanAdminister: true campaign processing 1`] = `
241157
<React.Fragment>
242158
<div
@@ -257,9 +173,7 @@ exports[`CampaignStatus viewerCanAdminister: true campaign processing 1`] = `
257173
</div>
258174
</div>
259175
<p>
260-
Creating
261-
changes:
262-
176+
Creating changes:
263177
3
264178
/
265179
6
@@ -318,9 +232,7 @@ exports[`CampaignStatus viewerCanAdminister: true drafted campaign 1`] = `
318232
<Memo(CheckCircleIcon)
319233
className="icon-inline text-success mr-1 e2e-preview-success"
320234
/>
321-
322-
Creation
323-
completed
235+
Creation completed
324236
</div>
325237
</React.Fragment>
326238
`;
@@ -354,9 +266,7 @@ exports[`CampaignStatus viewerCanAdminister: true drafted campaign, some publish
354266
<Memo(CheckCircleIcon)
355267
className="icon-inline text-success mr-1 e2e-preview-success"
356268
/>
357-
358-
Creation
359-
completed
269+
Creation completed
360270
</div>
361271
</React.Fragment>
362272
`;

0 commit comments

Comments
 (0)