From ef2a2da7b47479255d236bbb2947aa1980c09278 Mon Sep 17 00:00:00 2001 From: automated-signal <37887102+automated-signal@users.noreply.github.com> Date: Wed, 18 Feb 2026 12:41:42 -0600 Subject: [PATCH] Fix megaphone check for dontShowBeforeEpochMs Co-authored-by: ayumi-signal <143036029+ayumi-signal@users.noreply.github.com> --- ts/services/megaphone.preload.ts | 7 ++++++- ts/test-node/services/megaphone_test.preload.ts | 7 +++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/ts/services/megaphone.preload.ts b/ts/services/megaphone.preload.ts index e584aa8105..fa3e82eecd 100644 --- a/ts/services/megaphone.preload.ts +++ b/ts/services/megaphone.preload.ts @@ -194,6 +194,7 @@ export function isMegaphoneShowable( ): megaphone is VisibleRemoteMegaphoneType { const nowMs = Date.now(); const { + dontShowBeforeEpochMs, dontShowAfterEpochMs, isFinished, snoozedAt, @@ -201,7 +202,11 @@ export function isMegaphoneShowable( secondaryCtaId, } = megaphone; - if (isFinished || nowMs > dontShowAfterEpochMs) { + if ( + isFinished || + nowMs < dontShowBeforeEpochMs || + nowMs > dontShowAfterEpochMs + ) { return false; } diff --git a/ts/test-node/services/megaphone_test.preload.ts b/ts/test-node/services/megaphone_test.preload.ts index 1b7831b406..5ceda95326 100644 --- a/ts/test-node/services/megaphone_test.preload.ts +++ b/ts/test-node/services/megaphone_test.preload.ts @@ -109,6 +109,13 @@ describe('megaphone service', () => { assert.strictEqual(isMegaphoneShowable(megaphone), true); }); + it('handles megaphone with dontShowBeforeEpochMs in the future', () => { + const megaphone = getMegaphone({ + dontShowBeforeEpochMs: Date.now() + 1 * DAY, + }); + assert.strictEqual(isMegaphoneShowable(megaphone), false); + }); + it('handles megaphone expired past dontShowAfterEpochMs', () => { const megaphone = getMegaphone({ dontShowAfterEpochMs: Date.now() - 1 * DAY,