This commit is contained in:
dangered wolf 2022-08-17 23:35:49 -04:00
parent bded3c1bd6
commit 45da5e3ecb
No known key found for this signature in database
GPG key ID: 41E4D37680ED8B58
2 changed files with 32 additions and 19 deletions

View file

@ -12,25 +12,36 @@ export const renderCard = async (
if (typeof values.choice1_count !== 'undefined') {
const poll = {} as APIPoll;
if (typeof values.end_datetime_utc !== 'undefined') {
poll.ends_at = values.end_datetime_utc.string_value || '';
poll.time_left_en = calculateTimeLeftString(new Date(values.end_datetime_utc.string_value));
}
poll.ends_at = values.end_datetime_utc?.string_value || '';
poll.time_left_en = calculateTimeLeftString(
new Date(values.end_datetime_utc?.string_value || '')
);
const choices: { [label: string]: number } = {
[values.choice1_label?.string_value || '']: parseInt(values.choice1_count?.string_value || '0'),
[values.choice2_label?.string_value || '']: parseInt(values.choice2_count?.string_value || '0'),
[values.choice3_label?.string_value || '']: parseInt(values.choice3_count?.string_value || '0'),
[values.choice4_label?.string_value || '']: parseInt(values.choice4_count?.string_value || '0')
}
[values.choice1_label?.string_value || '']: parseInt(
values.choice1_count?.string_value || '0'
),
[values.choice2_label?.string_value || '']: parseInt(
values.choice2_count?.string_value || '0'
),
[values.choice3_label?.string_value || '']: parseInt(
values.choice3_count?.string_value || '0'
),
[values.choice4_label?.string_value || '']: parseInt(
values.choice4_count?.string_value || '0'
)
};
poll.total_votes = Object.values(choices).reduce((a, b) => a + b, 0);
poll.choices = Object.keys(choices).filter(label => label !== '').map(label => {
poll.choices = Object.keys(choices)
.filter(label => label !== '')
.map(label => {
return {
label: label,
count: choices[label],
percentage: (Math.round((choices[label] / poll.total_votes) * 1000) || 0) / 10 || 0
percentage:
(Math.round((choices[label] / poll.total_votes) * 1000) || 0) / 10 || 0
};
});

View file

@ -273,7 +273,9 @@ test('API fetch poll Tweet', async () => {
const tweet = response.tweet as APITweet;
expect(tweet).toBeTruthy();
expect(tweet.url).toEqual('https://twitter.com/dangeredwolf/status/1547441637739184128');
expect(tweet.url).toEqual(
'https://twitter.com/dangeredwolf/status/1547441637739184128'
);
expect(tweet.id).toEqual('1547441637739184128');
expect(tweet.text).toEqual('Poll with 4 values');
expect(tweet.author.screen_name?.toLowerCase()).toEqual('dangeredwolf');