feat: lancer manuellement les imports SFR
This commit is contained in:
@@ -1,7 +1,11 @@
|
||||
import { describe, expect, it } from "vitest";
|
||||
import { describe, expect, it, vi } from "vitest";
|
||||
import {
|
||||
createEmailImportAccountController,
|
||||
createImapFlowOptions,
|
||||
type EmailImportConfig,
|
||||
isEmailImportServiceRunning,
|
||||
startConfiguredEmailImportService,
|
||||
stopEmailImportService,
|
||||
validateEmailImportConfiguration,
|
||||
} from "./emailImportService";
|
||||
|
||||
@@ -76,3 +80,71 @@ describe("validateEmailImportConfiguration", () => {
|
||||
expect(error).toBe("Configuration IMAP incomplète");
|
||||
});
|
||||
});
|
||||
|
||||
describe("startConfiguredEmailImportService", () => {
|
||||
it("ne crée aucune planification si le test IMAP préalable échoue", async () => {
|
||||
const userId = 901;
|
||||
stopEmailImportService(userId);
|
||||
|
||||
const result = await startConfiguredEmailImportService(
|
||||
{ ...baseConfig, userId, authMode: "basic" },
|
||||
5,
|
||||
async () => ({
|
||||
success: false,
|
||||
message: "Authentification IMAP refusée.",
|
||||
}),
|
||||
);
|
||||
|
||||
expect(result).toEqual({
|
||||
success: false,
|
||||
message: "Authentification IMAP refusée.",
|
||||
});
|
||||
expect(isEmailImportServiceRunning(userId)).toBe(false);
|
||||
});
|
||||
|
||||
it("démarre après un test IMAP concluant et exécute le contrôle initial", async () => {
|
||||
const userId = 902;
|
||||
const runEmailCheck = vi.fn(async () => undefined);
|
||||
|
||||
try {
|
||||
const result = await startConfiguredEmailImportService(
|
||||
{ ...baseConfig, userId, authMode: "basic" },
|
||||
5,
|
||||
async () => ({ success: true, message: "Connexion IMAP réussie." }),
|
||||
runEmailCheck,
|
||||
);
|
||||
|
||||
expect(result).toEqual({
|
||||
success: true,
|
||||
message: "Service de réception e-mail démarré",
|
||||
});
|
||||
expect(isEmailImportServiceRunning(userId)).toBe(true);
|
||||
expect(runEmailCheck).toHaveBeenCalledWith(expect.objectContaining({ userId }));
|
||||
} finally {
|
||||
stopEmailImportService(userId);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
describe("createEmailImportAccountController", () => {
|
||||
it("cible exclusivement le compte sélectionné par un administrateur", async () => {
|
||||
const start = vi.fn(async () => ({ success: true, message: "Service de réception e-mail démarré" }));
|
||||
const stop = vi.fn();
|
||||
const isRunning = vi.fn(() => true);
|
||||
const controller = createEmailImportAccountController({ start, stop, isRunning });
|
||||
|
||||
await expect(controller.startAccount(42)).resolves.toEqual({
|
||||
success: true,
|
||||
message: "Service de réception e-mail démarré",
|
||||
});
|
||||
expect(start).toHaveBeenCalledWith(42);
|
||||
|
||||
expect(controller.stopAccount(42)).toEqual({
|
||||
success: true,
|
||||
message: "Service de réception e-mail arrêté",
|
||||
});
|
||||
expect(stop).toHaveBeenCalledWith(42);
|
||||
expect(controller.accountStatus(42)).toEqual({ isRunning: true });
|
||||
expect(isRunning).toHaveBeenCalledWith(42);
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user