diff --git a/packages/importers/src/providers/betterstack/api-types.ts b/packages/importers/src/providers/betterstack/api-types.ts index e8e8aa6bb..363466e2a 100644 --- a/packages/importers/src/providers/betterstack/api-types.ts +++ b/packages/importers/src/providers/betterstack/api-types.ts @@ -32,6 +32,10 @@ export const BetterstackMonitorSchema = z.object({ .nullish() .transform((v) => v ?? []), required_keyword: z.string().nullable().default(null), + follow_redirects: z + .boolean() + .nullish() + .transform((v) => v ?? true), verify_ssl: z.boolean().default(true), regions: z .array(z.string()) diff --git a/packages/importers/src/providers/betterstack/fixtures.ts b/packages/importers/src/providers/betterstack/fixtures.ts index 0a947a79b..5db3e81aa 100644 --- a/packages/importers/src/providers/betterstack/fixtures.ts +++ b/packages/importers/src/providers/betterstack/fixtures.ts @@ -27,6 +27,7 @@ export const MOCK_MONITORS: BetterstackMonitor[] = [ request_body: "", expected_status_codes: [200], required_keyword: null, + follow_redirects: true, verify_ssl: true, regions: ["us", "eu"], status: "up", @@ -50,6 +51,7 @@ export const MOCK_MONITORS: BetterstackMonitor[] = [ request_body: "", expected_status_codes: [], required_keyword: "Welcome", + follow_redirects: true, verify_ssl: true, regions: ["us", "eu", "as"], status: "up", @@ -73,6 +75,7 @@ export const MOCK_MONITORS: BetterstackMonitor[] = [ request_body: "", expected_status_codes: [200, 301], required_keyword: null, + follow_redirects: false, verify_ssl: false, regions: ["us", "eu", "as", "au"], status: "paused", diff --git a/packages/importers/src/providers/betterstack/mapper.test.ts b/packages/importers/src/providers/betterstack/mapper.test.ts index 028d01bcf..f514fe93b 100644 --- a/packages/importers/src/providers/betterstack/mapper.test.ts +++ b/packages/importers/src/providers/betterstack/mapper.test.ts @@ -131,6 +131,11 @@ describe("mapMonitor", () => { const result = mapMonitor(MOCK_MONITORS[1], 42); expect(result.headers).toBe(""); }); + + test("carries over the monitor's follow_redirects setting", () => { + expect(mapMonitor(MOCK_MONITORS[0], 42).followRedirects).toBe(true); + expect(mapMonitor(MOCK_MONITORS[2], 42).followRedirects).toBe(false); + }); }); describe("mapMonitorGroup", () => { diff --git a/packages/importers/src/providers/betterstack/mapper.ts b/packages/importers/src/providers/betterstack/mapper.ts index 4c14bfad0..82e18d22a 100644 --- a/packages/importers/src/providers/betterstack/mapper.ts +++ b/packages/importers/src/providers/betterstack/mapper.ts @@ -109,6 +109,7 @@ export function mapMonitor(monitor: BetterstackMonitor, workspaceId: number) { headers, body: attrs.request_body, method: mapMethod(attrs.http_method), + followRedirects: attrs.follow_redirects, timeout: attrs.request_timeout * 1000, }; }