diff --git a/app/soapbox/normalizers/__tests__/account.test.ts b/app/soapbox/normalizers/__tests__/account.test.ts index b78017e06..761b2fac5 100644 --- a/app/soapbox/normalizers/__tests__/account.test.ts +++ b/app/soapbox/normalizers/__tests__/account.test.ts @@ -47,6 +47,13 @@ describe('normalizeAccount()', () => { expect(result.birthday).toEqual('1993-07-03'); }); + it('normalizes undefined birthday to empty string', () => { + const account = require('soapbox/__fixtures__/mastodon-account.json'); + const result = normalizeAccount(account); + + expect(result.birthday).toEqual(''); + }); + it('normalizes Pleroma legacy fields', () => { const account = require('soapbox/__fixtures__/pleroma-2.2.2-account.json'); const result = normalizeAccount(account); diff --git a/app/soapbox/normalizers/account.ts b/app/soapbox/normalizers/account.ts index 784ba08aa..1a519b8a8 100644 --- a/app/soapbox/normalizers/account.ts +++ b/app/soapbox/normalizers/account.ts @@ -24,7 +24,7 @@ export const AccountRecord = ImmutableRecord({ acct: '', avatar: '', avatar_static: '', - birthday: undefined as string | undefined, + birthday: '', bot: false, created_at: new Date(), discoverable: false, @@ -261,6 +261,12 @@ const normalizeDiscoverable = (account: ImmutableMap) => { return account.set('discoverable', discoverable); }; +/** Normalize undefined/null birthday to empty string. */ +const fixBirthday = (account: ImmutableMap) => { + const birthday = account.get('birthday'); + return account.set('birthday', birthday || ''); +}; + export const normalizeAccount = (account: Record) => { return AccountRecord( ImmutableMap(fromJS(account)).withMutations(account => { @@ -280,6 +286,7 @@ export const normalizeAccount = (account: Record) => { addStaffFields(account); fixUsername(account); fixDisplayName(account); + fixBirthday(account); addInternalFields(account); }), );