Skip to content

Commit f031943

Browse files
committed
chore(flags): remove EnableRemovalUnderMaintenanceStep flag
1 parent 29e5c3b commit f031943

File tree

10 files changed

+15
-564
lines changed

10 files changed

+15
-564
lines changed

src/app/(proper_react)/(redesign)/(authenticated)/user/(dashboard)/dashboard/fix/data-broker-profiles/removal-under-maintenance/page.tsx

Lines changed: 1 addition & 77 deletions
Original file line numberDiff line numberDiff line change
@@ -4,89 +4,13 @@
44

55
import { redirect } from "next/navigation";
66
import { getServerSession } from "../../../../../../../../../functions/server/getServerSession";
7-
import {
8-
getNextGuidedStep,
9-
StepDeterminationData,
10-
} from "../../../../../../../../../functions/server/getRelevantGuidedSteps";
11-
import { getCountryCode } from "../../../../../../../../../functions/server/getCountryCode";
12-
import { headers } from "next/headers";
13-
import {
14-
getMockedScanResults,
15-
getMockedScanResultsWithBrokerUnderMaintenance,
16-
getScanResultsWithBroker,
17-
getScanResultsWithBrokerUnderMaintenance,
18-
} from "../../../../../../../../../../db/tables/onerep_scans";
19-
import { getOnerepProfileId } from "../../../../../../../../../../db/tables/subscribers";
20-
import { getSubscriberBreaches } from "../../../../../../../../../functions/server/getSubscriberBreaches";
21-
import { getSubscriberEmails } from "../../../../../../../../../functions/server/getSubscriberEmails";
22-
import { RemovalUnderMaintenanceView } from "./RemovalUnderMaintenanceView";
23-
import { hasPremium } from "../../../../../../../../../functions/universal/user";
24-
import { getEnabledFeatureFlags } from "../../../../../../../../../../db/tables/featureFlags";
257

268
export default async function RemovalUnderMaintenance() {
279
const session = await getServerSession();
28-
const countryCode = getCountryCode(await headers());
2910

3011
if (!session?.user?.subscriber?.id) {
3112
return redirect("/");
3213
}
3314

34-
const enabledFeatureFlags = await getEnabledFeatureFlags({
35-
email: session.user.email,
36-
});
37-
38-
if (
39-
!hasPremium(session.user) ||
40-
!enabledFeatureFlags.includes("EnableRemovalUnderMaintenanceStep")
41-
) {
42-
redirect("/user/dashboard");
43-
}
44-
45-
const profileId = await getOnerepProfileId(session.user.subscriber.id);
46-
const useMockedScans =
47-
enabledFeatureFlags.includes("CustomDataBrokers") &&
48-
process.env.APP_ENV !== "production";
49-
50-
const scanResultsWithRemovalUnderMaintenance = useMockedScans
51-
? await getMockedScanResultsWithBrokerUnderMaintenance(profileId)
52-
: await getScanResultsWithBrokerUnderMaintenance(profileId);
53-
54-
const scanResults = useMockedScans
55-
? await getMockedScanResults(profileId)
56-
: // MNTOR-4893: Implement removal under maintenance?
57-
await getScanResultsWithBroker(profileId, hasPremium(session.user));
58-
59-
const data: StepDeterminationData = {
60-
countryCode,
61-
user: session.user,
62-
latestScanData: scanResults ?? null,
63-
subscriberBreaches: await getSubscriberBreaches({
64-
fxaUid: session.user.subscriber.fxa_uid,
65-
countryCode,
66-
}),
67-
};
68-
69-
const getNextStep = getNextGuidedStep(
70-
data,
71-
enabledFeatureFlags,
72-
"DataBrokerManualRemoval",
73-
);
74-
75-
if (
76-
scanResultsWithRemovalUnderMaintenance?.results.length === 0 ||
77-
!scanResultsWithRemovalUnderMaintenance
78-
) {
79-
redirect(getNextStep.href);
80-
}
81-
82-
const subscriberEmails = await getSubscriberEmails(session.user);
83-
84-
return (
85-
<RemovalUnderMaintenanceView
86-
stepDeterminationData={data}
87-
data={scanResultsWithRemovalUnderMaintenance}
88-
subscriberEmails={subscriberEmails}
89-
enabledFeatureFlags={enabledFeatureFlags}
90-
/>
91-
);
15+
redirect("/user/dashboard");
9216
}

src/app/components/client/FixNavigation.tsx

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -83,12 +83,7 @@ export const Steps = (props: {
8383
{label} {count > 0 && `(${count})`}
8484
</div>
8585
);
86-
const dataBrokerStepCompleted =
87-
hasCompletedStepSection(props.data, "Scan") &&
88-
// TODO: MNTOR-3886 - Remove EnableRemovalUnderMaintenanceStep feature flag
89-
/* c8 ignore next */
90-
(!props.enabledFeatureFlags.includes("EnableRemovalUnderMaintenanceStep") ||
91-
hasCompletedStepSection(props.data, "DataBrokerManualRemoval"));
86+
const dataBrokerStepCompleted = hasCompletedStepSection(props.data, "Scan");
9287

9388
return (
9489
<ul className={styles.steps}>

src/app/components/client/exposure_card/ExposureCard.stories.tsx

Lines changed: 0 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -52,11 +52,6 @@ const ScanMockItemInProgress = createRandomScanResult({
5252
manually_resolved: false,
5353
});
5454

55-
const ScanMockItemRemovalUnderMaintenance = createRandomScanResult({
56-
status: "optout_in_progress",
57-
manually_resolved: false,
58-
broker_status: "removal_under_maintenance",
59-
});
6055
const ScanMockItemNoExposureData: OnerepScanResultDataBrokerRow = {
6156
id: 0,
6257
onerep_scan_result_id: 123,
@@ -82,21 +77,6 @@ const ScanMockItemNoExposureData: OnerepScanResultDataBrokerRow = {
8277
addresses: [],
8378
};
8479

85-
const ScanMockItemRemovalUnderMaintenanceManuallyFixed = createRandomScanResult(
86-
{
87-
status: "optout_in_progress",
88-
manually_resolved: true,
89-
broker_status: "removal_under_maintenance",
90-
},
91-
);
92-
93-
const ScanMockItemRemovalUnderMaintenanceAutomaticallyRemoved =
94-
createRandomScanResult({
95-
status: "removed",
96-
manually_resolved: false,
97-
broker_status: "removal_under_maintenance",
98-
});
99-
10080
const BreachMockItemRemoved = createRandomBreach({
10181
isResolved: true,
10282
dataClassesEffected: [
@@ -161,33 +141,6 @@ export const DataBreachActionNeeded: Story = {
161141
},
162142
};
163143

164-
export const DataBrokerRemovalUnderMaintenance: Story = {
165-
args: {
166-
exposureImg: FamilyTreeImage,
167-
exposureData: ScanMockItemRemovalUnderMaintenance,
168-
isPremiumUser: true,
169-
enabledFeatureFlags: ["EnableRemovalUnderMaintenanceStep"],
170-
},
171-
};
172-
173-
export const DataBrokerRemovalUnderMaintenanceFixed: Story = {
174-
args: {
175-
exposureImg: FamilyTreeImage,
176-
exposureData: ScanMockItemRemovalUnderMaintenanceManuallyFixed,
177-
isPremiumUser: true,
178-
enabledFeatureFlags: ["EnableRemovalUnderMaintenanceStep"],
179-
},
180-
};
181-
182-
export const DataBrokerRemovalUnderMaintenanceAutomaticallyRemoved: Story = {
183-
args: {
184-
exposureImg: FamilyTreeImage,
185-
exposureData: ScanMockItemRemovalUnderMaintenanceAutomaticallyRemoved,
186-
isPremiumUser: true,
187-
enabledFeatureFlags: ["EnableRemovalUnderMaintenanceStep"],
188-
},
189-
};
190-
191144
export const DataBreachFixed: Story = {
192145
args: {
193146
exposureImg: TwitterImage,

src/app/components/client/exposure_card/ExposureCard.test.tsx

Lines changed: 0 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,6 @@ import Meta, {
1515
DataBrokerManualRemoved,
1616
DataBrokerRemoved,
1717
DataBrokerRequestedRemoval,
18-
DataBrokerRemovalUnderMaintenance,
19-
DataBrokerRemovalUnderMaintenanceFixed,
20-
DataBrokerRemovalUnderMaintenanceAutomaticallyRemoved,
2118
DataBrokerActionNeededNoExposureResults,
2219
} from "./ExposureCard.stories";
2320
import { isDataBrokerUnderMaintenance } from "../../../(proper_react)/(redesign)/(authenticated)/user/(dashboard)/dashboard/View";
@@ -115,52 +112,6 @@ describe("ScanResultCard", () => {
115112
expect(innerDescription).toBeInTheDocument();
116113
});
117114

118-
// Data broker removal under maintenance unresolved
119-
it("shows the right description for a scan result card with removal under maintenance status", () => {
120-
const ComposedProgressCard = composeStory(
121-
DataBrokerRemovalUnderMaintenance,
122-
Meta,
123-
);
124-
render(<ComposedProgressCard />);
125-
const innerDescription = screen.getByText(
126-
"We’ve asked this data broker to remove your profile but they haven’t done it.",
127-
{ exact: false },
128-
);
129-
130-
expect(innerDescription).toBeInTheDocument();
131-
});
132-
133-
// Data broker removal under maintenance manually removed
134-
it("shows the right description for a scan result card with removal under maintenance status that's been manually resolved", () => {
135-
const ComposedProgressCard = composeStory(
136-
DataBrokerRemovalUnderMaintenanceFixed,
137-
Meta,
138-
);
139-
render(<ComposedProgressCard />);
140-
const innerDescription = screen.getByText(
141-
"You could be added back in the future, so ⁨Monitor⁩ will continue to scan data broker sites for new exposures.",
142-
{ exact: false },
143-
);
144-
145-
expect(innerDescription).toBeInTheDocument();
146-
});
147-
148-
// Data broker removal under maintenance automatically removed
149-
it("shows the right description for a scan result card with removal under maintenance status that's been automatically resolved", () => {
150-
const ComposedProgressCard = composeStory(
151-
DataBrokerRemovalUnderMaintenanceAutomaticallyRemoved,
152-
Meta,
153-
);
154-
155-
render(<ComposedProgressCard />);
156-
const innerDescription = screen.getByText(
157-
"will continually monitor to make sure they don’t add you back",
158-
{ exact: false },
159-
);
160-
161-
expect(innerDescription).toBeInTheDocument();
162-
});
163-
164115
// Data broker removal in progress
165116
it("shows the right description for a scan result card where removal is in progress", () => {
166117
const ComposedProgressCard = composeStory(DataBrokerInProgress, Meta);
@@ -173,20 +124,6 @@ describe("ScanResultCard", () => {
173124
expect(innerDescription).toBeInTheDocument();
174125
});
175126

176-
it("shows the right description for a scan result card where removal is under maintenance", () => {
177-
const ComposedProgressCard = composeStory(
178-
DataBrokerRemovalUnderMaintenance,
179-
Meta,
180-
);
181-
render(<ComposedProgressCard />);
182-
const innerDescription = screen.getByText(
183-
"We’ve asked this data broker to remove your profile but they haven’t done it.",
184-
{ exact: false },
185-
);
186-
187-
expect(innerDescription).toBeInTheDocument();
188-
});
189-
190127
it("shows an additional note for “requested removal” status label if the feature flag `DataBrokerRemovalAttempts` is enabled", () => {
191128
const ComposedProgressCard = composeStory(DataBrokerRequestedRemoval, Meta);
192129
render(<ComposedProgressCard />);

src/app/components/client/exposure_card/ScanResultCard.tsx

Lines changed: 0 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -112,27 +112,6 @@ export const ScanResultCard = (props: ScanResultCardProps) => {
112112
// Data broker cards manually resolved do not change their status to "removed";
113113
// instead, we track them using the "manually_resolved" property.
114114

115-
if (
116-
// TODO: MNTOR-3886 - Remove EnableRemovalUnderMaintenanceStep feature flag
117-
props.enabledFeatureFlags.includes("EnableRemovalUnderMaintenanceStep") &&
118-
isDataBrokerUnderMaintenance(props.scanResult)
119-
) {
120-
if (scanResult.manually_resolved) {
121-
return l10n.getFragment(
122-
"exposure-card-description-info-for-sale-fixed-removal-under-maintenance-manually-fixed",
123-
{ elems: { data_broker_profile: dataBrokerProfileLink } },
124-
);
125-
}
126-
return l10n.getFragment(
127-
"exposure-card-description-info-for-sale-manual-removal-needed",
128-
{
129-
elems: {
130-
b: <b />,
131-
},
132-
},
133-
);
134-
}
135-
136115
if (scanResult.manually_resolved) {
137116
return l10n.getFragment(
138117
"exposure-card-description-info-for-sale-fixed-manually-fixed",
@@ -260,14 +239,6 @@ export const ScanResultCard = (props: ScanResultCardProps) => {
260239
);
261240
}
262241

263-
if (
264-
// TODO: MNTOR-3886 - Remove EnableRemovalUnderMaintenanceStep feature flag
265-
props.enabledFeatureFlags.includes("EnableRemovalUnderMaintenanceStep") &&
266-
isDataBrokerUnderMaintenance(props.scanResult)
267-
) {
268-
return <span>{props.resolutionCta}</span>;
269-
}
270-
271242
switch (props.scanResult.status) {
272243
case "new":
273244
return <span>{props.resolutionCta}</span>;

src/app/components/server/StatusPill.tsx

Lines changed: 0 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -53,12 +53,6 @@ export const StatusPill = (props: Props) => {
5353
exposure: props.exposure,
5454
pillType,
5555
l10n,
56-
// TODO: MNTOR-3886 - Remove EnableRemovalUnderMaintenanceStep feature flag
57-
isDataBrokerUnderMaintenance: props.enabledFeatureFlags?.includes(
58-
"EnableRemovalUnderMaintenanceStep",
59-
)
60-
? props.isRemovalUnderMaintenance
61-
: undefined,
6256
})
6357
: getStatusLabel({
6458
pillType,
@@ -78,7 +72,6 @@ type StatusLabelProps = {
7872
exposure?: Exposure;
7973
pillType: string;
8074
l10n: ExtendedReactLocalization;
81-
isDataBrokerUnderMaintenance?: boolean;
8275
};
8376

8477
const getStatusLabel = (props: StatusLabelProps): string => {
@@ -91,10 +84,6 @@ const getStatusLabel = (props: StatusLabelProps): string => {
9184
return props.l10n.getString("status-pill-removed");
9285
}
9386

94-
if (props.isDataBrokerUnderMaintenance) {
95-
return props.l10n.getString("status-pill-action-needed");
96-
}
97-
9887
switch (props.pillType) {
9988
case StatusPillTypeMap.RequestedRemoval:
10089
return props.l10n.getString("status-pill-requested-removal");
@@ -119,19 +108,11 @@ export const getExposureStatus = (
119108
const additionalRemovalStatusesEnabled = enabledFeatureFlags.includes(
120109
"AdditionalRemovalStatuses",
121110
);
122-
// TODO: MNTOR-3886 - Remove EnableRemovalUnderMaintenanceStep feature flag
123-
const manualRemovalEnabled = enabledFeatureFlags.includes(
124-
"EnableRemovalUnderMaintenanceStep",
125-
);
126111

127112
if (exposure.manually_resolved) {
128113
return "fixed";
129114
}
130115

131-
if (manualRemovalEnabled && isRemovalUnderMaintenance) {
132-
return "actionNeeded";
133-
}
134-
135116
switch (exposure.status) {
136117
case "removed":
137118
return "removed";

0 commit comments

Comments
 (0)