Fix normalizer test types

environments/review-ts-tests-wjt3v6/deployments/488
Alex Gleason 2 years ago
parent c66f5c040f
commit 9d85a9f863
No known key found for this signature in database
GPG Key ID: 7211D1F99744FBB7

@ -154,9 +154,9 @@ describe('normalizeAccount()', () => {
const result = normalizeAccount(account); const result = normalizeAccount(account);
const field = result.fields.get(1); const field = result.fields.get(1);
expect(field.name_emojified).toBe('Soapbox <img draggable="false" class="emojione" alt=":ablobcatrainbow:" title=":ablobcatrainbow:" src="https://gleasonator.com/emoji/blobcat/ablobcatrainbow.png" />'); expect(field?.name_emojified).toBe('Soapbox <img draggable="false" class="emojione" alt=":ablobcatrainbow:" title=":ablobcatrainbow:" src="https://gleasonator.com/emoji/blobcat/ablobcatrainbow.png" />');
expect(field.value_emojified).toBe('<a href="https://soapbox.pub" rel="ugc">https://soapbox.pub</a> <img draggable="false" class="emojione" alt=":soapbox:" title=":soapbox:" src="https://gleasonator.com/emoji/Gleasonator/soapbox.png" />'); expect(field?.value_emojified).toBe('<a href="https://soapbox.pub" rel="ugc">https://soapbox.pub</a> <img draggable="false" class="emojione" alt=":soapbox:" title=":soapbox:" src="https://gleasonator.com/emoji/Gleasonator/soapbox.png" />');
expect(field.value_plain).toBe('https://soapbox.pub :soapbox:'); expect(field?.value_plain).toBe('https://soapbox.pub :soapbox:');
}); });
it('adds default avatar and banner to GoToSocial account', () => { it('adds default avatar and banner to GoToSocial account', () => {

@ -38,11 +38,11 @@ describe('normalizePoll()', () => {
const result = normalizePoll(poll); const result = normalizePoll(poll);
// Emojifies poll options // Emojifies poll options
expect(result.options.get(1).title_emojified) expect(result.options.get(1)?.title_emojified)
.toEqual('Custom emoji <img draggable="false" class="emojione" alt=":gleason_excited:" title=":gleason_excited:" src="https://gleasonator.com/emoji/gleason_emojis/gleason_excited.png" /> '); .toEqual('Custom emoji <img draggable="false" class="emojione" alt=":gleason_excited:" title=":gleason_excited:" src="https://gleasonator.com/emoji/gleason_emojis/gleason_excited.png" /> ');
// Parses emojis as Immutable.Record's // Parses emojis as Immutable.Record's
expect(ImmutableRecord.isRecord(result.emojis.get(0))).toBe(true); expect(ImmutableRecord.isRecord(result.emojis.get(0))).toBe(true);
expect(result.emojis.get(1).shortcode).toEqual('soapbox'); expect(result.emojis.get(1)?.shortcode).toEqual('soapbox');
}); });
}); });

@ -2,6 +2,8 @@ import { Record as ImmutableRecord, fromJS } from 'immutable';
import { normalizeStatus } from '../status'; import { normalizeStatus } from '../status';
import type { Poll, Card } from 'soapbox/types/entities';
describe('normalizeStatus()', () => { describe('normalizeStatus()', () => {
it('adds base fields', () => { it('adds base fields', () => {
const status = {}; const status = {};
@ -42,8 +44,8 @@ describe('normalizeStatus()', () => {
const result = normalizeStatus(status).mentions; const result = normalizeStatus(status).mentions;
expect(result.size).toBe(1); expect(result.size).toBe(1);
expect(result.get(0).toJS()).toMatchObject(expected); expect(result.get(0)?.toJS()).toMatchObject(expected);
expect(result.get(0).id).toEqual('106801667066418367'); expect(result.get(0)?.id).toEqual('106801667066418367');
expect(ImmutableRecord.isRecord(result.get(0))).toBe(true); expect(ImmutableRecord.isRecord(result.get(0))).toBe(true);
}); });
@ -101,8 +103,7 @@ describe('normalizeStatus()', () => {
const result = normalizeStatus(status).media_attachments; const result = normalizeStatus(status).media_attachments;
expect(result.size).toBe(4); expect(result.size).toBe(4);
expect(result.get(0).text_url).toBe(undefined); expect(result.get(1)?.meta).toEqual(fromJS({}));
expect(result.get(1).meta).toEqual(fromJS({}));
expect(result.getIn([1, 'pleroma', 'mime_type'])).toBe('application/x-nes-rom'); expect(result.getIn([1, 'pleroma', 'mime_type'])).toBe('application/x-nes-rom');
expect(ImmutableRecord.isRecord(result.get(3))).toBe(true); expect(ImmutableRecord.isRecord(result.get(3))).toBe(true);
}); });
@ -147,6 +148,7 @@ describe('normalizeStatus()', () => {
it('normalizes poll and poll options', () => { it('normalizes poll and poll options', () => {
const status = { poll: { options: [{ title: 'Apples' }] } }; const status = { poll: { options: [{ title: 'Apples' }] } };
const result = normalizeStatus(status); const result = normalizeStatus(status);
const poll = result.poll as Poll;
const expected = { const expected = {
options: [{ title: 'Apples', votes_count: 0 }], options: [{ title: 'Apples', votes_count: 0 }],
@ -159,46 +161,49 @@ describe('normalizeStatus()', () => {
voted: false, voted: false,
}; };
expect(ImmutableRecord.isRecord(result.poll)).toBe(true); expect(ImmutableRecord.isRecord(poll)).toBe(true);
expect(ImmutableRecord.isRecord(result.poll.options.get(0))).toBe(true); expect(ImmutableRecord.isRecord(poll.options.get(0))).toBe(true);
expect(result.poll.toJS()).toMatchObject(expected); expect(poll.toJS()).toMatchObject(expected);
expect(result.poll.expires_at instanceof Date).toBe(true); expect(poll.expires_at instanceof Date).toBe(true);
}); });
it('normalizes a Pleroma logged-out poll', () => { it('normalizes a Pleroma logged-out poll', () => {
const status = require('soapbox/__fixtures__/pleroma-status-with-poll.json'); const status = require('soapbox/__fixtures__/pleroma-status-with-poll.json');
const result = normalizeStatus(status); const result = normalizeStatus(status);
const poll = result.poll as Poll;
// Adds logged-in fields // Adds logged-in fields
expect(result.poll.voted).toBe(false); expect(poll.voted).toBe(false);
expect(result.poll.own_votes).toBe(null); expect(poll.own_votes).toBe(null);
}); });
it('normalizes poll with emojis', () => { it('normalizes poll with emojis', () => {
const status = require('soapbox/__fixtures__/pleroma-status-with-poll-with-emojis.json'); const status = require('soapbox/__fixtures__/pleroma-status-with-poll-with-emojis.json');
const result = normalizeStatus(status); const result = normalizeStatus(status);
const poll = result.poll as Poll;
// Emojifies poll options // Emojifies poll options
expect(result.poll.options.get(1).title_emojified) expect(poll.options.get(1)?.title_emojified)
.toEqual('Custom emoji <img draggable="false" class="emojione" alt=":gleason_excited:" title=":gleason_excited:" src="https://gleasonator.com/emoji/gleason_emojis/gleason_excited.png" /> '); .toEqual('Custom emoji <img draggable="false" class="emojione" alt=":gleason_excited:" title=":gleason_excited:" src="https://gleasonator.com/emoji/gleason_emojis/gleason_excited.png" /> ');
// Parses emojis as Immutable.Record's // Parses emojis as Immutable.Record's
expect(ImmutableRecord.isRecord(result.poll.emojis.get(0))).toBe(true); expect(ImmutableRecord.isRecord(poll.emojis.get(0))).toBe(true);
expect(result.poll.emojis.get(1).shortcode).toEqual('soapbox'); expect(poll.emojis.get(1)?.shortcode).toEqual('soapbox');
}); });
it('normalizes a card', () => { it('normalizes a card', () => {
const status = require('soapbox/__fixtures__/status-with-card.json'); const status = require('soapbox/__fixtures__/status-with-card.json');
const result = normalizeStatus(status); const result = normalizeStatus(status);
const card = result.card as Card;
expect(ImmutableRecord.isRecord(result.card)).toBe(true); expect(ImmutableRecord.isRecord(card)).toBe(true);
expect(result.card.type).toEqual('link'); expect(card.type).toEqual('link');
expect(result.card.provider_url).toEqual('https://soapbox.pub'); expect(card.provider_url).toEqual('https://soapbox.pub');
}); });
it('preserves Truth Social external_video_id', () => { it('preserves Truth Social external_video_id', () => {
const status = require('soapbox/__fixtures__/truthsocial-status-with-external-video.json'); const status = require('soapbox/__fixtures__/truthsocial-status-with-external-video.json');
const result = normalizeStatus(status); const result = normalizeStatus(status);
expect(result.media_attachments.get(0).external_video_id).toBe('vwfnq9'); expect(result.media_attachments.get(0)?.external_video_id).toBe('vwfnq9');
}); });
}); });

@ -32,6 +32,6 @@ describe('normalizeSoapboxConfig()', () => {
const result = normalizeSoapboxConfig(require('soapbox/__fixtures__/spinster-soapbox.json')); const result = normalizeSoapboxConfig(require('soapbox/__fixtures__/spinster-soapbox.json'));
expect(ImmutableRecord.isRecord(result.promoPanel)).toBe(true); expect(ImmutableRecord.isRecord(result.promoPanel)).toBe(true);
expect(ImmutableRecord.isRecord(result.promoPanel.items.get(0))).toBe(true); expect(ImmutableRecord.isRecord(result.promoPanel.items.get(0))).toBe(true);
expect(result.promoPanel.items.get(2).icon).toBe('question-circle'); expect(result.promoPanel.items.get(2)?.icon).toBe('question-circle');
}); });
}); });

Loading…
Cancel
Save