parent
b100068b95
commit
08f219ab64
@ -0,0 +1,23 @@
|
||||
import { Record as ImmutableRecord, fromJS } from 'immutable';
|
||||
|
||||
import { normalizeMention } from '../mention';
|
||||
|
||||
describe('normalizeMention()', () => {
|
||||
it('adds base fields', () => {
|
||||
const account = fromJS({});
|
||||
const result = normalizeMention(account);
|
||||
|
||||
expect(ImmutableRecord.isRecord(result)).toBe(true);
|
||||
expect(result.id).toEqual('');
|
||||
expect(result.acct).toEqual('');
|
||||
expect(result.username).toEqual('');
|
||||
expect(result.url).toEqual('');
|
||||
});
|
||||
|
||||
it('infers username from acct', () => {
|
||||
const account = fromJS({ acct: 'alex@gleasonator.com' });
|
||||
const result = normalizeMention(account);
|
||||
|
||||
expect(result.username).toEqual('alex');
|
||||
});
|
||||
});
|
@ -0,0 +1,24 @@
|
||||
/**
|
||||
* Mention normalizer:
|
||||
* Converts API mentions into our internal format.
|
||||
* @see {@link https://docs.joinmastodon.org/entities/mention/}
|
||||
*/
|
||||
import {
|
||||
Map as ImmutableMap,
|
||||
Record as ImmutableRecord,
|
||||
} from 'immutable';
|
||||
|
||||
import { normalizeAccount } from 'soapbox/normalizers/account';
|
||||
|
||||
// https://docs.joinmastodon.org/entities/mention/
|
||||
const MentionRecord = ImmutableRecord({
|
||||
id: '',
|
||||
acct: '',
|
||||
username: '',
|
||||
url: '',
|
||||
});
|
||||
|
||||
export const normalizeMention = (mention: ImmutableMap<string, any>) => {
|
||||
// Simply normalize it as an account then cast it as a mention ¯\_(ツ)_/¯
|
||||
return MentionRecord(normalizeAccount(mention));
|
||||
};
|
Loading…
Reference in new issue