fix(email): retire legacy SMTP follow-up
Keep follow-up draft generation but remove the direct application SMTP delivery boundary. Route users to the provider-aware Job email flow and return 410 for legacy API callers.
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
import React from 'react';
|
||||
import '@testing-library/jest-dom';
|
||||
import { fireEvent, render, screen, waitFor } from '@testing-library/react';
|
||||
import { fireEvent, render, screen } from '@testing-library/react';
|
||||
import { ConfirmProvider } from './confirm';
|
||||
import { PromptProvider } from './prompt';
|
||||
import { ToastProvider } from './toast';
|
||||
@@ -92,7 +92,7 @@ afterEach(() => {
|
||||
jest.clearAllMocks();
|
||||
});
|
||||
|
||||
test('follow-up workspace shows thread grounding and keeps sending manual', async () => {
|
||||
test('follow-up workspace keeps the draft editable and routes delivery to Job email', async () => {
|
||||
renderDialog();
|
||||
|
||||
fireEvent.click(await screen.findByRole('tab', { name: /follow up/i }));
|
||||
@@ -100,20 +100,14 @@ test('follow-up workspace shows thread grounding and keeps sending manual', asyn
|
||||
expect(await screen.findByText(/follow-up context/i)).toBeInTheDocument();
|
||||
expect(await screen.findByText(/saved application package material is available for reuse/i)).toBeInTheDocument();
|
||||
expect(await screen.findByText(/saved cover letter available/i)).toBeInTheDocument();
|
||||
expect(await screen.findByText(/manual send only/i)).toBeInTheDocument();
|
||||
expect(await screen.findByText(/manual send boundary/i)).toBeInTheDocument();
|
||||
expect(await screen.findByText(/open job email.*connected provider.*final confirmation/i)).toBeInTheDocument();
|
||||
expect(await screen.findByDisplayValue(/i wanted to follow up on the backend developer thread/i)).toBeInTheDocument();
|
||||
|
||||
const draft = screen.getByDisplayValue(/i wanted to follow up on the backend developer thread/i);
|
||||
fireEvent.change(draft, { target: { value: 'Hi Maria,\n\nEdited follow-up.\n\nThanks,\nCasey' } });
|
||||
|
||||
fireEvent.click(screen.getByRole('button', { name: /send and log email/i }));
|
||||
|
||||
await waitFor(() => {
|
||||
expect(mockedApi.post).toHaveBeenCalledWith('/jobapplications/42/send-followup', {
|
||||
toEmail: 'recruiter@acme.test',
|
||||
subject: 'Re: Backend Developer application update',
|
||||
body: 'Hi Maria,\n\nEdited follow-up.\n\nThanks,\nCasey',
|
||||
nextFollowUpAt: expect.any(String),
|
||||
});
|
||||
});
|
||||
expect(draft).toHaveValue('Hi Maria,\n\nEdited follow-up.\n\nThanks,\nCasey');
|
||||
expect(screen.getByRole('link', { name: /open job email/i })).toHaveAttribute('href', '/correspondence');
|
||||
expect(mockedApi.post).not.toHaveBeenCalledWith('/jobapplications/42/send-followup', expect.anything());
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user