update tests

This commit is contained in:
Alex Holliday committed 2026-06-09 12:34:30 -07:00
1 parent d022f7d849
commit abec4e6c70
59 files changed
+167 -151

No files matched your search

@@ -1,5 +1,5 @@
import type { IIncidentsRepository } from "../../src/repositories/incidents/IIncidentsRepository.ts";
import type { Incident, IncidentSummary } from "../../src/types/index.ts";
import type { IIncidentsRepository } from "../../src/domain/incidents/incident.repository.interface.ts";
import type { Incident, IncidentSummary } from "../../src/domain/incidents/incident.type.ts";
import { randomUUID } from "crypto";
export class InMemoryIncidentsRepository implements IIncidentsRepository {
@@ -1,5 +1,6 @@
import type { IMonitorsRepository, TeamQueryConfig, SummaryConfig } from "../../src/repositories/monitors/IMonitorsRepository.ts";
import type { Monitor, MonitorsSummary, CheckSnapshot } from "../../src/types/index.ts";
import type { IMonitorsRepository, TeamQueryConfig, SummaryConfig } from "../../src/domain/monitors/monitor.repository.interface.ts";
import type { CheckSnapshot } from "../../src/domain/checks/check.type.ts";
import type { Monitor, MonitorsSummary } from "../../src/domain/monitors/monitor.types.ts";
export class InMemoryMonitorsRepository implements IMonitorsRepository {
private monitors: Monitor[] = [];
+6 -6
View File
@@ -1,14 +1,14 @@
import { jest } from "@jest/globals";
import { QueueHelper } from "../../src/service/infrastructure/JobQueues/QueueHelper.ts";
import { StatusService } from "../../src/service/infrastructure/statusService.ts";
import { IncidentService } from "../../src/service/business/incidentService.ts";
import { QueueHelper } from "../../src/service/job-queues/job-queue.helper.ts";
import { StatusService } from "../../src/service/statusService.ts";
import { IncidentService } from "../../src/domain/incidents/incident.service.ts";
import { InMemoryMonitorsRepository } from "./InMemoryMonitorsRepository.ts";
import { InMemoryIncidentsRepository } from "./InMemoryIncidentsRepository.ts";
import { createMockLogger } from "./createMockLogger.ts";
import type { Monitor } from "../../src/types/monitor.ts";
import type { Monitor } from "../../src/domain/monitors/monitor.types.ts";
import type { MonitorStatusResponse } from "../../src/types/network.ts";
import type { Check } from "../../src/types/check.ts";
import type { MaintenanceWindow } from "../../src/types/maintenanceWindow.ts";
import type { Check } from "../../src/domain/checks/check.type.ts";
import type { MaintenanceWindow } from "../../src/domain/maintenance-windows/maintenance-window.type.ts";
let checkCounter = 0;
+1 -1
View File
@@ -1,4 +1,4 @@
import type { StatusPage } from "../../src/types/index.ts";
import type { StatusPage } from "../../src/domain/status-pages/status-page.type.ts";
export const makeStatusPage = (overrides?: Partial<StatusPage>): StatusPage =>
({
+2 -2
View File
@@ -1,5 +1,5 @@
import type { Notification } from "../../src/types/index.ts";
import type { NotificationMessage } from "../../src/types/notificationMessage.ts";
import type { Notification } from "../../src/domain/notifications/notification.type.ts";
import type { NotificationMessage } from "../../src/domain/notifications/notification.type.ts";
export const makeNotification = (overrides?: Partial<Notification>): Notification =>
({
@@ -1,7 +1,7 @@
import { describe, expect, it } from "@jest/globals";
import type { INotificationProvider } from "../../src/service/infrastructure/notificationProviders/INotificationProvider.ts";
import type { Notification } from "../../src/types/index.ts";
import type { NotificationMessage } from "../../src/types/notificationMessage.ts";
import type { INotificationProvider } from "../../src/domain/notifications/providers/INotificationProvider.ts";
import type { Notification } from "../../src/domain/notifications/notification.type.ts";
import type { NotificationMessage } from "../../src/domain/notifications/notification.type.ts";
const makeMessage = (): NotificationMessage => ({
type: "monitor_down",
@@ -1,6 +1,6 @@
import { describe, expect, it } from "@jest/globals";
import type { IStatusProvider } from "../../src/service/infrastructure/network/IStatusProvider.ts";
import type { Monitor } from "../../src/types/index.ts";
import type { IStatusProvider } from "../../src/service/network/IStatusProvider.ts";
import type { Monitor } from "../../src/domain/monitors/monitor.types.ts";
/**
* Shared contract tests for all IStatusProvider implementations.
@@ -1,6 +1,6 @@
import { describe, expect, it, beforeEach } from "@jest/globals";
import { createHeartbeatTestHarness, makeMonitor, type HeartbeatTestHarness } from "../helpers/heartbeatTestHarness.ts";
import type { MaintenanceWindow } from "../../src/types/maintenanceWindow.ts";
import type { MaintenanceWindow } from "../../src/domain/maintenance-windows/maintenance-window.type.ts";
const makeMaintenanceWindow = (overrides?: Partial<MaintenanceWindow>): MaintenanceWindow => {
const now = new Date();
@@ -1,11 +1,12 @@
import { describe, expect, it, jest, beforeEach } from "@jest/globals";
import { IncidentService } from "../../src/service/business/incidentService.ts";
import { IncidentService } from "../../src/domain/incidents/incident.service.ts";
import { InMemoryIncidentsRepository } from "../helpers/InMemoryIncidentsRepository.ts";
import { createMockLogger } from "../helpers/createMockLogger.ts";
import type { IMonitorsRepository, IUsersRepository } from "../../src/repositories/index.ts";
import type { INotificationMessageBuilder } from "../../src/service/infrastructure/notificationMessageBuilder.ts";
import type { Monitor } from "../../src/types/monitor.ts";
import type { MonitorActionDecision } from "../../src/service/infrastructure/JobQueues/QueueHelper.ts";
import type { IMonitorsRepository } from "../../src/domain/monitors/monitor.repository.interface.ts";
import type { IUsersRepository } from "../../src/domain/users/user.repository.interface.ts";
import type { INotificationMessageBuilder } from "../../src/domain/notifications/notification.message-builder.ts";
import type { Monitor } from "../../src/domain/monitors/monitor.types.ts";
import type { MonitorActionDecision } from "../../src/service/job-queues/job-queue.helper.ts";
// ── Helpers ──────────────────────────────────────────────────────────────────
@@ -1,6 +1,6 @@
import { describe, expect, it } from "@jest/globals";
import { applyDefaultTheme, withoutThemeFields } from "../../../src/controllers/statusPageThemeFlag.ts";
import { DEFAULT_STATUS_PAGE_THEME, DEFAULT_STATUS_PAGE_THEME_MODE } from "../../../src/types/statusPage.ts";
import { applyDefaultTheme, withoutThemeFields } from "../../../src/api/controllers/statusPageThemeFlag.ts";
import { DEFAULT_STATUS_PAGE_THEME, DEFAULT_STATUS_PAGE_THEME_MODE } from "../../../src/domain/status-pages/status-page.type.ts";
import { makeStatusPage } from "../../helpers/makeStatusPage.ts";
describe("statusPageThemeFlag", () => {
@@ -1,6 +1,6 @@
import { describe, expect, it, jest } from "@jest/globals";
import { AdvancedMatcher } from "../../../../src/service/infrastructure/network/AdvancedMatcher.ts";
import type { Monitor } from "../../../../src/types/index.ts";
import { AdvancedMatcher } from "../../../../src/service/network/AdvancedMatcher.ts";
import type { Monitor } from "../../../../src/domain/monitors/monitor.types.ts";
// ── Helpers ──────────────────────────────────────────────────────────────────
@@ -1,8 +1,8 @@
import { beforeEach, describe, expect, it, jest } from "@jest/globals";
import { testStatusProviderContract } from "../../../helpers/statusProviderContract.ts";
import { NETWORK_ERROR } from "../../../../src/service/infrastructure/network/utils.ts";
import type { Monitor } from "../../../../src/types/index.ts";
import { DNSProvider } from "../../../../src/service/infrastructure/network/DNSProvider.ts";
import { NETWORK_ERROR } from "../../../../src/service/network/utils.ts";
import type { Monitor } from "../../../../src/domain/monitors/monitor.types.ts";
import { DNSProvider } from "../../../../src/service/network/DNSProvider.ts";
// ── Mocks ────────────────────────────────────────────────────────────────────
@@ -1,9 +1,9 @@
import { describe, expect, it, jest } from "@jest/globals";
import { DockerProvider } from "../../../../src/service/infrastructure/network/DockerProvider.ts";
import { DockerProvider } from "../../../../src/service/network/DockerProvider.ts";
import { testStatusProviderContract } from "../../../helpers/statusProviderContract.ts";
import { createMockLogger } from "../../../helpers/createMockLogger.ts";
import { NETWORK_ERROR } from "../../../../src/service/infrastructure/network/utils.ts";
import type { Monitor } from "../../../../src/types/index.ts";
import { NETWORK_ERROR } from "../../../../src/service/network/utils.ts";
import type { Monitor } from "../../../../src/domain/monitors/monitor.types.ts";
// ── Helpers ──────────────────────────────────────────────────────────────────
@@ -1,9 +1,9 @@
import { describe, expect, it, jest } from "@jest/globals";
import { GameProvider } from "../../../../src/service/infrastructure/network/GameProvider.ts";
import { GameProvider } from "../../../../src/service/network/GameProvider.ts";
import { testStatusProviderContract } from "../../../helpers/statusProviderContract.ts";
import { createMockLogger } from "../../../helpers/createMockLogger.ts";
import { NETWORK_ERROR } from "../../../../src/service/infrastructure/network/utils.ts";
import type { Monitor } from "../../../../src/types/index.ts";
import { NETWORK_ERROR } from "../../../../src/service/network/utils.ts";
import type { Monitor } from "../../../../src/domain/monitors/monitor.types.ts";
// ── Helpers ──────────────────────────────────────────────────────────────────
@@ -1,7 +1,7 @@
import { describe, expect, it, jest } from "@jest/globals";
import { GrpcProvider } from "../../../../src/service/infrastructure/network/GrpcProvider.ts";
import { GrpcProvider } from "../../../../src/service/network/GrpcProvider.ts";
import { testStatusProviderContract } from "../../../helpers/statusProviderContract.ts";
import type { Monitor } from "../../../../src/types/index.ts";
import type { Monitor } from "../../../../src/domain/monitors/monitor.types.ts";
// ── Helpers ──────────────────────────────────────────────────────────────────
@@ -1,8 +1,8 @@
import { describe, expect, it, jest } from "@jest/globals";
import { HardwareProvider } from "../../../../src/service/infrastructure/network/HardwareProvider.ts";
import { HardwareProvider } from "../../../../src/service/network/HardwareProvider.ts";
import { testStatusProviderContract } from "../../../helpers/statusProviderContract.ts";
import type { HttpProvider } from "../../../../src/service/infrastructure/network/HttpProvider.ts";
import type { Monitor } from "../../../../src/types/index.ts";
import type { HttpProvider } from "../../../../src/service/network/HttpProvider.ts";
import type { Monitor } from "../../../../src/domain/monitors/monitor.types.ts";
// ── Helpers ──────────────────────────────────────────────────────────────────
@@ -1,7 +1,7 @@
import { describe, expect, it, jest } from "@jest/globals";
import { testStatusProviderContract } from "../../../helpers/statusProviderContract.ts";
import { NETWORK_ERROR } from "../../../../src/service/infrastructure/network/utils.ts";
import type { Monitor } from "../../../../src/types/index.ts";
import { NETWORK_ERROR } from "../../../../src/service/network/utils.ts";
import type { Monitor } from "../../../../src/domain/monitors/monitor.types.ts";
// ── Mocks ────────────────────────────────────────────────────────────────────
@@ -38,7 +38,7 @@ jest.unstable_mockModule("got", () => ({
},
}));
const { HttpProvider } = await import("../../../../src/service/infrastructure/network/HttpProvider.ts");
const { HttpProvider } = await import("../../../../src/service/network/HttpProvider.ts");
const gotModule = await import("got");
const { HTTPError, RequestError } = gotModule;
@@ -1,10 +1,10 @@
import { describe, expect, it, jest } from "@jest/globals";
import { PageSpeedProvider } from "../../../../src/service/infrastructure/network/PageSpeedProvider.ts";
import { PageSpeedProvider } from "../../../../src/service/network/PageSpeedProvider.ts";
import { testStatusProviderContract } from "../../../helpers/statusProviderContract.ts";
import { createMockLogger } from "../../../helpers/createMockLogger.ts";
import type { HttpProvider } from "../../../../src/service/infrastructure/network/HttpProvider.ts";
import type { ISettingsService } from "../../../../src/service/system/settingsService.ts";
import type { Monitor } from "../../../../src/types/index.ts";
import type { HttpProvider } from "../../../../src/service/network/HttpProvider.ts";
import type { ISettingsService } from "../../../../src/domain/app-settings/app-settings.service.ts";
import type { Monitor } from "../../../../src/domain/monitors/monitor.types.ts";
// ── Helpers ──────────────────────────────────────────────────────────────────
@@ -1,7 +1,7 @@
import { describe, expect, it, jest } from "@jest/globals";
import { PingProvider } from "../../../../src/service/infrastructure/network/PingProvider.ts";
import { PingProvider } from "../../../../src/service/network/PingProvider.ts";
import { testStatusProviderContract } from "../../../helpers/statusProviderContract.ts";
import type { Monitor } from "../../../../src/types/index.ts";
import type { Monitor } from "../../../../src/domain/monitors/monitor.types.ts";
// ── Helpers ──────────────────────────────────────────────────────────────────
@@ -1,8 +1,8 @@
import { describe, expect, it, jest } from "@jest/globals";
import { PortProvider } from "../../../../src/service/infrastructure/network/PortProvider.ts";
import { PortProvider } from "../../../../src/service/network/PortProvider.ts";
import { testStatusProviderContract } from "../../../helpers/statusProviderContract.ts";
import { NETWORK_ERROR } from "../../../../src/service/infrastructure/network/utils.ts";
import type { Monitor } from "../../../../src/types/index.ts";
import { NETWORK_ERROR } from "../../../../src/service/network/utils.ts";
import type { Monitor } from "../../../../src/domain/monitors/monitor.types.ts";
// ── Helpers ──────────────────────────────────────────────────────────────────
@@ -1,5 +1,5 @@
import { describe, expect, it } from "@jest/globals";
import { timeRequest, NETWORK_ERROR, PING_ERROR, isStatusUp } from "../../../../src/service/infrastructure/network/utils.ts";
import { timeRequest, NETWORK_ERROR, PING_ERROR, isStatusUp } from "../../../../src/service/network/utils.ts";
describe("network utils", () => {
describe("timeRequest", () => {
@@ -1,8 +1,8 @@
import { describe, expect, it, jest, beforeEach, afterEach } from "@jest/globals";
import { WebSocketProvider } from "../../../../src/service/infrastructure/network/WebSocketProvider.ts";
import { WebSocketProvider } from "../../../../src/service/network/WebSocketProvider.ts";
import { testStatusProviderContract } from "../../../helpers/statusProviderContract.ts";
import { NETWORK_ERROR } from "../../../../src/service/infrastructure/network/utils.ts";
import type { Monitor } from "../../../../src/types/index.ts";
import { NETWORK_ERROR } from "../../../../src/service/network/utils.ts";
import type { Monitor } from "../../../../src/domain/monitors/monitor.types.ts";
// ── Helpers ──────────────────────────────────────────────────────────────────
@@ -6,7 +6,7 @@ import { testNotificationProviderContract } from "../../../helpers/notificationP
const mockGotPost = jest.fn().mockResolvedValue({});
jest.unstable_mockModule("got", () => ({ default: { post: mockGotPost } }));
const { DiscordProvider } = await import("../../../../src/service/infrastructure/notificationProviders/discord.ts");
const { DiscordProvider } = await import("../../../../src/domain/notifications/providers/discord.ts");
const createProvider = () => {
const logger = createMockLogger();
@@ -1,9 +1,9 @@
import { describe, expect, it, jest, beforeEach } from "@jest/globals";
import { EmailProvider } from "../../../../src/service/infrastructure/notificationProviders/email.ts";
import { EmailProvider } from "../../../../src/domain/notifications/providers/email.ts";
import { createMockLogger } from "../../../helpers/createMockLogger.ts";
import { makeNotification, makeMessage } from "../../../helpers/notificationMessage.ts";
import { testNotificationProviderContract } from "../../../helpers/notificationProviderContract.ts";
import type { IEmailService } from "../../../../src/service/infrastructure/emailService.ts";
import type { IEmailService } from "../../../../src/service/emailService.ts";
// ── Helpers ──────────────────────────────────────────────────────────────────
@@ -7,7 +7,7 @@ const mockGotPut = jest.fn().mockResolvedValue({});
jest.unstable_mockModule("got", () => ({ default: { put: mockGotPut } }));
jest.unstable_mockModule("crypto", () => ({ randomUUID: () => "test-uuid-1234" }));
const { MatrixProvider } = await import("../../../../src/service/infrastructure/notificationProviders/matrix.ts");
const { MatrixProvider } = await import("../../../../src/domain/notifications/providers/matrix.ts");
const createProvider = () => {
const logger = createMockLogger();
@@ -1,6 +1,6 @@
import { describe, expect, it, jest } from "@jest/globals";
import { buildTestEmail, getTestMessage } from "../../../../src/service/infrastructure/notificationProviders/utils.ts";
import type { IEmailService } from "../../../../src/service/infrastructure/emailService.ts";
import { buildTestEmail, getTestMessage } from "../../../../src/domain/notifications/providers/utils.ts";
import type { IEmailService } from "../../../../src/service/emailService.ts";
describe("notification utils", () => {
describe("getTestMessage", () => {
@@ -6,7 +6,7 @@ import { testNotificationProviderContract } from "../../../helpers/notificationP
const mockGotPost = jest.fn().mockResolvedValue({});
jest.unstable_mockModule("got", () => ({ default: { post: mockGotPost } }));
const { NtfyProvider } = await import("../../../../src/service/infrastructure/notificationProviders/ntfy.ts");
const { NtfyProvider } = await import("../../../../src/domain/notifications/providers/ntfy.ts");
const createProvider = () => {
const logger = createMockLogger();
@@ -6,7 +6,7 @@ import { testNotificationProviderContract } from "../../../helpers/notificationP
const mockGotPost = jest.fn().mockResolvedValue({});
jest.unstable_mockModule("got", () => ({ default: { post: mockGotPost } }));
const { PagerDutyProvider } = await import("../../../../src/service/infrastructure/notificationProviders/pagerduty.ts");
const { PagerDutyProvider } = await import("../../../../src/domain/notifications/providers/pagerduty.ts");
const createProvider = () => {
const logger = createMockLogger();
@@ -6,7 +6,7 @@ import { testNotificationProviderContract } from "../../../helpers/notificationP
const mockGotPost = jest.fn().mockResolvedValue({});
jest.unstable_mockModule("got", () => ({ default: { post: mockGotPost } }));
const { PushoverProvider } = await import("../../../../src/service/infrastructure/notificationProviders/pushover.ts");
const { PushoverProvider } = await import("../../../../src/domain/notifications/providers/pushover.ts");
const createProvider = () => {
const logger = createMockLogger();
@@ -6,7 +6,7 @@ import { testNotificationProviderContract } from "../../../helpers/notificationP
const mockGotPost = jest.fn().mockResolvedValue({});
jest.unstable_mockModule("got", () => ({ default: { post: mockGotPost }, HTTPError: class extends Error {} }));
const { SlackProvider } = await import("../../../../src/service/infrastructure/notificationProviders/slack.ts");
const { SlackProvider } = await import("../../../../src/domain/notifications/providers/slack.ts");
const createProvider = () => {
const logger = createMockLogger();
@@ -1,6 +1,6 @@
import { describe, expect, it, jest, beforeEach } from "@jest/globals";
import type { Notification } from "../../../../src/types/notification.ts";
import type { NotificationMessage } from "../../../../src/types/notificationMessage.ts";
import type { Notification } from "../../../../src/domain/notifications/notification.type.ts";
import type { NotificationMessage } from "../../../../src/domain/notifications/notification.type.ts";
import { createMockLogger } from "../../../helpers/createMockLogger.ts";
const mockPost = jest.fn();
@@ -9,7 +9,7 @@ jest.unstable_mockModule("got", () => ({
HTTPError: class HTTPError extends Error {},
}));
const { TeamsProvider } = await import("../../../../src/service/infrastructure/notificationProviders/teams.ts");
const { TeamsProvider } = await import("../../../../src/domain/notifications/providers/teams.ts");
const createNotification = (overrides?: Partial<Notification>): Notification => ({
id: "notif-1",
@@ -6,7 +6,7 @@ import { testNotificationProviderContract } from "../../../helpers/notificationP
const mockGotPost = jest.fn().mockResolvedValue({});
jest.unstable_mockModule("got", () => ({ default: { post: mockGotPost } }));
const { TelegramProvider } = await import("../../../../src/service/infrastructure/notificationProviders/telegram.ts");
const { TelegramProvider } = await import("../../../../src/domain/notifications/providers/telegram.ts");
const createProvider = () => {
const logger = createMockLogger();
@@ -6,7 +6,7 @@ import { testNotificationProviderContract } from "../../../helpers/notificationP
const mockGotPost = jest.fn().mockResolvedValue({});
jest.unstable_mockModule("got", () => ({ default: { post: mockGotPost } }));
const { TwilioProvider } = await import("../../../../src/service/infrastructure/notificationProviders/twilio.ts");
const { TwilioProvider } = await import("../../../../src/domain/notifications/providers/twilio.ts");
const createProvider = () => {
const logger = createMockLogger();
@@ -6,7 +6,7 @@ import { testNotificationProviderContract } from "../../../helpers/notificationP
const mockGotPost = jest.fn().mockResolvedValue({});
jest.unstable_mockModule("got", () => ({ default: { post: mockGotPost } }));
const { WebhookProvider } = await import("../../../../src/service/infrastructure/notificationProviders/webhook.ts");
const { WebhookProvider } = await import("../../../../src/domain/notifications/providers/webhook.ts");
const createProvider = () => {
const logger = createMockLogger();
@@ -1,10 +1,11 @@
import { describe, expect, it, jest, beforeEach, afterEach } from "@jest/globals";
import { BufferService } from "../../../src/service/infrastructure/bufferService.ts";
import { BufferService } from "../../../src/service/bufferService.ts";
import { createMockLogger } from "../../helpers/createMockLogger.ts";
import type { ICheckService } from "../../../src/service/business/checkService.ts";
import type { IGeoChecksService } from "../../../src/service/business/geoChecksService.ts";
import type { ISettingsService } from "../../../src/service/system/settingsService.ts";
import type { Check, GeoCheck } from "../../../src/types/index.ts";
import type { ICheckService } from "../../../src/domain/checks/check.service.ts";
import type { IGeoChecksService } from "../../../src/domain/geo-checks/geo-check.service.ts";
import type { ISettingsService } from "../../../src/domain/app-settings/app-settings.service.ts";
import type { Check } from "../../../src/domain/checks/check.type.ts";
import type { GeoCheck } from "../../../src/domain/geo-checks/geo-check.type.ts";
// ── Helpers ──────────────────────────────────────────────────────────────────
@@ -1,8 +1,9 @@
import { describe, expect, it, jest } from "@jest/globals";
import { CheckService } from "../../../src/service/business/checkService.ts";
import { CheckService } from "../../../src/domain/checks/check.service.ts";
import { createMockLogger } from "../../helpers/createMockLogger.ts";
import type { IChecksRepository, IMonitorsRepository } from "../../../src/repositories/index.ts";
import type { MonitorStatusResponse, HardwareStatusPayload, PageSpeedStatusPayload } from "../../../src/types/index.ts";
import type { IChecksRepository } from "../../../src/domain/checks/check.repository.interface.ts";
import type { IMonitorsRepository } from "../../../src/domain/monitors/monitor.repository.interface.ts";
import type { MonitorStatusResponse, HardwareStatusPayload, PageSpeedStatusPayload } from "../../../src/types/network.ts";
// ── Helpers ──────────────────────────────────────────────────────────────────
@@ -1,6 +1,6 @@
import { describe, expect, it, jest, beforeEach, afterEach } from "@jest/globals";
import { DiagnosticService } from "../../../src/service/business/diagnosticService.ts";
import type { IDb } from "../../../src/db/IDb.ts";
import { DiagnosticService } from "../../../src/domain/diagnostics/diagnostic.service.ts";
import type { IDb } from "../../../src/db/db.interface.ts";
import type { Mongoose } from "mongoose";
// ── Test helpers ─────────────────────────────────────────────────────────────
@@ -1,8 +1,8 @@
import { describe, expect, it, jest, beforeEach } from "@jest/globals";
import { EmailService } from "../../../src/service/infrastructure/emailService.ts";
import { EmailService } from "../../../src/service/emailService.ts";
import { createMockLogger } from "../../helpers/createMockLogger.ts";
import type { ISettingsService } from "../../../src/service/system/settingsService.ts";
import type { EmailTransportConfig } from "../../../src/types/index.ts";
import type { ISettingsService } from "../../../src/domain/app-settings/app-settings.service.ts";
import type { EmailTransportConfig } from "../../../src/domain/app-settings/app-settings.type.ts";
// ── Helpers ──────────────────────────────────────────────────────────────────
@@ -1,8 +1,8 @@
import { describe, expect, it, jest } from "@jest/globals";
import { GeoChecksService } from "../../../src/service/business/geoChecksService.ts";
import { GeoChecksService } from "../../../src/domain/geo-checks/geo-check.service.ts";
import { createMockLogger } from "../../helpers/createMockLogger.ts";
import type { Monitor } from "../../../src/types/index.ts";
import type { GeoCheckResult } from "../../../src/types/geoCheck.ts";
import type { Monitor } from "../../../src/domain/monitors/monitor.types.ts";
import type { GeoCheckResult } from "../../../src/domain/geo-checks/geo-check.type.ts";
// ── Helpers ──────────────────────────────────────────────────────────────────
@@ -1,6 +1,6 @@
import { describe, expect, it, jest, beforeEach, afterEach } from "@jest/globals";
import { createMockLogger } from "../../helpers/createMockLogger.ts";
import type { GeoContinent } from "../../../src/types/geoCheck.ts";
import type { GeoContinent } from "../../../src/domain/geo-checks/geo-check.type.ts";
// ── got mock ─────────────────────────────────────────────────────────────────
@@ -15,7 +15,7 @@ jest.unstable_mockModule("got", () => ({
}));
// Dynamic import AFTER mock registration
const { GlobalPingService } = await import("../../../src/service/infrastructure/globalPingService.ts");
const { GlobalPingService } = await import("../../../src/service/globalPingService.ts");
// ── Helpers ──────────────────────────────────────────────────────────────────
@@ -1,11 +1,13 @@
import { describe, expect, it, jest, beforeEach } from "@jest/globals";
import { IncidentService } from "../../../src/service/business/incidentService.ts";
import { IncidentService } from "../../../src/domain/incidents/incident.service.ts";
import { createMockLogger } from "../../helpers/createMockLogger.ts";
import type { IIncidentsRepository, IMonitorsRepository, IUsersRepository } from "../../../src/repositories/index.ts";
import type { INotificationMessageBuilder } from "../../../src/service/infrastructure/notificationMessageBuilder.ts";
import type { Monitor } from "../../../src/types/monitor.ts";
import type { Incident } from "../../../src/types/index.ts";
import type { MonitorActionDecision } from "../../../src/service/infrastructure/JobQueues/QueueHelper.ts";
import type { IIncidentsRepository } from "../../../src/domain/incidents/incident.repository.interface.ts";
import type { IMonitorsRepository } from "../../../src/domain/monitors/monitor.repository.interface.ts";
import type { IUsersRepository } from "../../../src/domain/users/user.repository.interface.ts";
import type { INotificationMessageBuilder } from "../../../src/domain/notifications/notification.message-builder.ts";
import type { Monitor } from "../../../src/domain/monitors/monitor.types.ts";
import type { Incident } from "../../../src/domain/incidents/incident.type.ts";
import type { MonitorActionDecision } from "../../../src/service/job-queues/job-queue.helper.ts";
// ── Helpers ──────────────────────────────────────────────────────────────────
@@ -1,6 +1,7 @@
import { describe, expect, it, jest } from "@jest/globals";
import { InviteService } from "../../../src/service/business/inviteService.ts";
import type { Invite, UserRole } from "../../../src/types/index.ts";
import { InviteService } from "../../../src/domain/invites/invite.service.ts";
import type { Invite } from "../../../src/domain/invites/invite.type.ts";
import type { UserRole } from "../../../src/domain/users/user.type.ts";
// ── Helpers ──────────────────────────────────────────────────────────────────
@@ -1,6 +1,6 @@
import { describe, expect, it, jest } from "@jest/globals";
import { createMockLogger } from "../../helpers/createMockLogger.ts";
import type { Monitor } from "../../../src/types/monitor.ts";
import type { Monitor } from "../../../src/domain/monitors/monitor.types.ts";
// ── Mock Scheduler / MongoStore ──────────────────────────────────────────────
@@ -44,7 +44,7 @@ jest.unstable_mockModule("less-simple-scheduler", () => ({
MongoStore: MockMongoStore,
}));
const { LessSimpleQueue } = await import("../../../src/service/infrastructure/JobQueues/LessSimpleQueue.ts");
const { LessSimpleQueue } = await import("../../../src/service/job-queues/job-queue.less-simple.ts");
const createQueueHelper = () => ({
getHeartbeatJob: jest.fn().mockReturnValue(() => Promise.resolve()),
@@ -1,8 +1,8 @@
import { describe, expect, it, jest } from "@jest/globals";
import { MaintenanceWindowService } from "../../../src/service/business/maintenanceWindowService.ts";
import type { IMaintenanceWindowsRepository } from "../../../src/repositories/maintenance-windows/IMaintenanceWindowsRepository.ts";
import type { IMonitorsRepository } from "../../../src/repositories/monitors/IMonitorsRepository.ts";
import type { MaintenanceWindow } from "../../../src/types/index.ts";
import { MaintenanceWindowService } from "../../../src/domain/maintenance-windows/maintenance-window.service.ts";
import type { IMaintenanceWindowsRepository } from "../../../src/domain/maintenance-windows/maintenance-window.repository.interface.ts";
import type { IMonitorsRepository } from "../../../src/domain/monitors/monitor.repository.interface.ts";
import type { MaintenanceWindow } from "../../../src/domain/maintenance-windows/maintenance-window.type.ts";
// ── Helpers ──────────────────────────────────────────────────────────────────
@@ -1,13 +1,11 @@
import { describe, expect, it, jest, beforeEach } from "@jest/globals";
import { MonitorService } from "../../../src/service/business/monitorService.ts";
import type {
IChecksRepository,
IGeoChecksRepository,
IIncidentsRepository,
IMonitorStatsRepository,
IMonitorsRepository,
IStatusPagesRepository,
} from "../../../src/repositories/index.ts";
import { MonitorService } from "../../../src/domain/monitors/monitor.service.ts";
import type { IChecksRepository } from "../../../src/domain/checks/check.repository.interface.ts";
import type { IGeoChecksRepository } from "../../../src/domain/geo-checks/geo-check.repository.interface.ts";
import type { IIncidentsRepository } from "../../../src/domain/incidents/incident.repository.interface.ts";
import type { IMonitorStatsRepository } from "../../../src/domain/monitor-stats/monitor-stats.repository.interface.ts";
import type { IMonitorsRepository } from "../../../src/domain/monitors/monitor.repository.interface.ts";
import type { IStatusPagesRepository } from "../../../src/domain/status-pages/status-page-repository.interface.ts";
import { createMockLogger } from "../../helpers/createMockLogger.ts";
const createMonitorsRepositoryMock = () =>
@@ -1,9 +1,9 @@
import { describe, expect, it, jest } from "@jest/globals";
import { NetworkService } from "../../../src/service/infrastructure/networkService.ts";
import { NetworkService } from "../../../src/service/networkService.ts";
import { createMockLogger } from "../../helpers/createMockLogger.ts";
import { NETWORK_ERROR } from "../../../src/service/infrastructure/network/utils.ts";
import type { IStatusProvider } from "../../../src/service/infrastructure/network/IStatusProvider.ts";
import type { Monitor, MonitorType } from "../../../src/types/index.ts";
import { NETWORK_ERROR } from "../../../src/service/network/utils.ts";
import type { IStatusProvider } from "../../../src/service/network/IStatusProvider.ts";
import type { Monitor, MonitorType } from "../../../src/domain/monitors/monitor.types.ts";
import type { AxiosStatic } from "axios";
// ── Helpers ──────────────────────────────────────────────────────────────────
@@ -1,7 +1,8 @@
import { describe, expect, it, beforeEach } from "@jest/globals";
import { NotificationMessageBuilder } from "../../../src/service/infrastructure/notificationMessageBuilder.ts";
import type { Monitor, MonitorStatusResponse, HardwareStatusPayload } from "../../../src/types/index.ts";
import type { MonitorActionDecision } from "../../../src/service/infrastructure/JobQueues/QueueHelper.ts";
import { NotificationMessageBuilder } from "../../../src/domain/notifications/notification.message-builder.ts";
import type { Monitor } from "../../../src/domain/monitors/monitor.types.ts";
import type { MonitorStatusResponse, HardwareStatusPayload } from "../../../src/types/network.ts";
import type { MonitorActionDecision } from "../../../src/service/job-queues/job-queue.helper.ts";
// ── Helpers ──────────────────────────────────────────────────────────────────
@@ -1,8 +1,10 @@
import { describe, expect, it, jest, beforeEach } from "@jest/globals";
import { NotificationsService } from "../../../src/service/infrastructure/notificationsService.ts";
import { NotificationsService } from "../../../src/domain/notifications/notification.service.ts";
import { createMockLogger } from "../../helpers/createMockLogger.ts";
import type { Notification, Monitor, MonitorStatusResponse } from "../../../src/types/index.ts";
import type { MonitorActionDecision } from "../../../src/service/infrastructure/JobQueues/QueueHelper.ts";
import type { Monitor } from "../../../src/domain/monitors/monitor.types.ts";
import type { Notification } from "../../../src/domain/notifications/notification.type.ts";
import type { MonitorStatusResponse } from "../../../src/types/network.ts";
import type { MonitorActionDecision } from "../../../src/service/job-queues/job-queue.helper.ts";
// ── Helpers ──────────────────────────────────────────────────────────────────
@@ -1,8 +1,8 @@
import { describe, expect, it, jest } from "@jest/globals";
import { SettingsService } from "../../../src/service/system/settingsService.ts";
import type { ISettingsRepository } from "../../../src/repositories/settings/ISettingsRepository.ts";
import type { ValidatedEnv } from "../../../src/validation/envValidation.ts";
import type { Settings } from "../../../src/types/index.ts";
import { SettingsService } from "../../../src/domain/app-settings/app-settings.service.ts";
import type { ISettingsRepository } from "../../../src/domain/app-settings/app-settings-repository.interface.ts";
import type { ValidatedEnv } from "../../../src/config/envValidation.ts";
import type { Settings } from "../../../src/domain/app-settings/app-settings.type.ts";
// ── Helpers ──────────────────────────────────────────────────────────────────
@@ -1,9 +1,9 @@
import { describe, expect, it, jest } from "@jest/globals";
import { StatusPageService } from "../../../src/service/business/statusPageService.ts";
import type { IStatusPagesRepository } from "../../../src/repositories/status-pages/IStatusPagesRepository.ts";
import type { ISettingsService } from "../../../src/service/system/settingsService.ts";
import type { StatusPage } from "../../../src/types/index.ts";
import { DEFAULT_STATUS_PAGE_THEME, DEFAULT_STATUS_PAGE_THEME_MODE } from "../../../src/types/index.ts";
import { StatusPageService } from "../../../src/domain/status-pages/status-page.service.ts";
import type { IStatusPagesRepository } from "../../../src/domain/status-pages/status-page-repository.interface.ts";
import type { ISettingsService } from "../../../src/domain/app-settings/app-settings.service.ts";
import type { StatusPage } from "../../../src/domain/status-pages/status-page.type.ts";
import { DEFAULT_STATUS_PAGE_THEME, DEFAULT_STATUS_PAGE_THEME_MODE } from "../../../src/domain/status-pages/status-page.type.ts";
// ── Helpers ──────────────────────────────────────────────────────────────────
@@ -1,10 +1,14 @@
import { describe, expect, it, jest, beforeEach } from "@jest/globals";
import { StatusService } from "../../../src/service/infrastructure/statusService.ts";
import { StatusService } from "../../../src/service/statusService.ts";
import { createMockLogger } from "../../helpers/createMockLogger.ts";
import { MAX_RECENT_CHECKS } from "../../../src/types/index.ts";
import type { Monitor, MonitorStatus, MonitorStatusResponse, Check, HardwareStatusPayload } from "../../../src/types/index.ts";
import type { IMonitorsRepository, IMonitorStatsRepository, IChecksRepository } from "../../../src/repositories/index.ts";
import type { IBufferService } from "../../../src/service/infrastructure/bufferService.ts";
import { MAX_RECENT_CHECKS } from "../../../src/domain/monitors/monitor.types.ts";
import type { Monitor, MonitorStatus } from "../../../src/domain/monitors/monitor.types.ts";
import type { Check } from "../../../src/domain/checks/check.type.ts";
import type { MonitorStatusResponse, HardwareStatusPayload } from "../../../src/types/network.ts";
import type { IMonitorsRepository } from "../../../src/domain/monitors/monitor.repository.interface.ts";
import type { IMonitorStatsRepository } from "../../../src/domain/monitor-stats/monitor-stats.repository.interface.ts";
import type { IChecksRepository } from "../../../src/domain/checks/check.repository.interface.ts";
import type { IBufferService } from "../../../src/service/bufferService.ts";
// ── Helpers ──────────────────────────────────────────────────────────────────
@@ -1,6 +1,6 @@
import { describe, expect, it, jest, beforeEach } from "@jest/globals";
import { createMockLogger } from "../../helpers/createMockLogger.ts";
import type { Monitor } from "../../../src/types/monitor.ts";
import type { Monitor } from "../../../src/domain/monitors/monitor.types.ts";
// ── Mock Scheduler ───────────────────────────────────────────────────────────
@@ -35,7 +35,7 @@ jest.unstable_mockModule("super-simple-scheduler", () => ({
default: MockScheduler,
}));
const { SuperSimpleQueue } = await import("../../../src/service/infrastructure/JobQueues/SuperSimpleQueue.ts");
const { SuperSimpleQueue } = await import("../../../src/service/job-queues/job-queue.sumper-simple.ts");
const createQueueHelper = () => ({
getHeartbeatJob: jest.fn().mockReturnValue(() => Promise.resolve()),
@@ -1,6 +1,6 @@
import { describe, expect, it, jest } from "@jest/globals";
import { QueueHelper } from "../../../src/service/infrastructure/JobQueues/QueueHelper.ts";
import type { Monitor } from "../../../src/types/monitor.ts";
import { QueueHelper } from "../../../src/service/job-queues/job-queue.helper.ts";
import type { Monitor } from "../../../src/domain/monitors/monitor.types.ts";
import { createMockLogger } from "../../helpers/createMockLogger.ts";
// ── Helpers ──────────────────────────────────────────────────────────────────
@@ -1,6 +1,6 @@
import { describe, expect, it, jest } from "@jest/globals";
import { TagsService } from "../../../src/service/infrastructure/tagService.ts";
import type { Tag } from "../../../src/types/index.ts";
import { TagsService } from "../../../src/domain/tags/tag.service.ts";
import type { Tag } from "../../../src/domain/tags/tag.type.ts";
// ── Helpers ──────────────────────────────────────────────────────────────────
@@ -1,7 +1,7 @@
import { describe, expect, it, jest } from "@jest/globals";
import { UserService } from "../../../src/service/business/userService.ts";
import { UserService } from "../../../src/domain/users/user.service.ts";
import { createMockLogger } from "../../helpers/createMockLogger.ts";
import type { User, UserRole } from "../../../src/types/index.ts";
import type { User, UserRole } from "../../../src/domain/users/user.type.ts";
// ── Helpers ──────────────────────────────────────────────────────────────────
@@ -1,6 +1,6 @@
import { describe, expect, it } from "@jest/globals";
import { isWindowActive } from "../../../src/utils/maintenanceWindow.ts";
import type { MaintenanceWindow } from "../../../src/types/index.ts";
import type { MaintenanceWindow } from "../../../src/domain/maintenance-windows/maintenance-window.type.ts";
const makeWindow = (overrides?: Partial<MaintenanceWindow>): MaintenanceWindow => {
const now = Date.now();
@@ -2,7 +2,7 @@ import { describe, expect, it, jest, afterEach } from "@jest/globals";
import {
createMaintenanceWindowBodyValidation,
editMaintenanceByIdWindowBodyValidation,
} from "../../../src/validation/maintenanceWindowValidation.ts";
} from "../../../src/api/validation/maintenanceWindowValidation.ts";
const FROZEN_NOW = new Date("2026-05-07T12:00:00Z").getTime();
@@ -1,5 +1,9 @@
import { describe, expect, it } from "@jest/globals";
import { createMonitorBodyValidation, editMonitorBodyValidation, importMonitorsBodyValidation } from "../../../src/validation/monitorValidation.ts";
import {
createMonitorBodyValidation,
editMonitorBodyValidation,
importMonitorsBodyValidation,
} from "../../../src/api/validation/monitorValidation.ts";
const baseDnsBody = {
name: "DNS check",
@@ -1,5 +1,5 @@
import { describe, expect, it } from "@jest/globals";
import { editUserBodyValidation } from "../../../src/validation/userValidation.ts";
import { editUserBodyValidation } from "../../../src/api/validation/userValidation.ts";
const validPassword = "OldPass1!";
const validNewPassword = "NewPass1!";