From 6e19383a7d3cd47d1df79ccc6bd303eb98823685 Mon Sep 17 00:00:00 2001 From: Fedor Indutny <79877362+indutny-signal@users.noreply.github.com> Date: Tue, 1 Jun 2021 13:10:19 -0700 Subject: [PATCH] Fix SMS-only check for unregistered convo --- .../util/isConversationSMSOnly_test.ts | 24 ++++++++++++++++--- ts/util/isConversationSMSOnly.ts | 4 +--- 2 files changed, 22 insertions(+), 6 deletions(-) diff --git a/ts/test-both/util/isConversationSMSOnly_test.ts b/ts/test-both/util/isConversationSMSOnly_test.ts index b3f96e65a..9a21d9e02 100644 --- a/ts/test-both/util/isConversationSMSOnly_test.ts +++ b/ts/test-both/util/isConversationSMSOnly_test.ts @@ -6,14 +6,32 @@ import { assert } from 'chai'; import { isConversationSMSOnly } from '../../util/isConversationSMSOnly'; describe('isConversationSMSOnly', () => { - it('returns false if passed an undefined discoveredUnregisteredAt', () => { - assert.isFalse(isConversationSMSOnly({})); + it('returns false if passed an undefined type', () => { assert.isFalse( - isConversationSMSOnly({ discoveredUnregisteredAt: undefined }) + isConversationSMSOnly({ + type: undefined, + }) ); }); ['direct', 'private'].forEach(type => { + it('returns false if passed an undefined discoveredUnregisteredAt', () => { + assert.isFalse( + isConversationSMSOnly({ type, discoveredUnregisteredAt: undefined }) + ); + }); + + it('returns true if passed a very old discoveredUnregisteredAt', () => { + assert.isTrue( + isConversationSMSOnly({ + type, + e164: 'e164', + uuid: 'uuid', + discoveredUnregisteredAt: 1, + }) + ); + }); + it(`returns true if passed a time fewer than 6 hours ago and is ${type}`, () => { assert.isTrue( isConversationSMSOnly({ diff --git a/ts/util/isConversationSMSOnly.ts b/ts/util/isConversationSMSOnly.ts index 8e22cfb1d..2739188cc 100644 --- a/ts/util/isConversationSMSOnly.ts +++ b/ts/util/isConversationSMSOnly.ts @@ -1,8 +1,6 @@ // Copyright 2021 Signal Messenger, LLC // SPDX-License-Identifier: AGPL-3.0-only -import { isConversationUnregistered } from './isConversationUnregistered'; - export type MinimalConversationType = Readonly<{ type?: string; e164?: string; @@ -23,5 +21,5 @@ export function isConversationSMSOnly( return true; } - return isConversationUnregistered(conversation); + return conversation.discoveredUnregisteredAt !== undefined; }