import { createClient } from '@supabase/supabase-js'; import { assertSpyCall, assertSpyCalls, returnsNext, stub, } from 'std/testing/mock'; import { ISource } from '../models/source.ts'; import { IProfile } from '../models/profile.ts'; import { getRSSFeed } from './rss.ts'; import { utils } from '../utils/index.ts'; import { feedutils } from './utils/index.ts'; import { assertEqualsItems, assertEqualsSource } from './utils/test.ts'; const supabaseClient = createClient('http://localhost:54321', 'test123'); const mockProfile: IProfile = { id: '', tier: 'free', createdAt: 0, updatedAt: 0, }; const mockSource: ISource = { id: '', columnId: 'mycolumn', userId: 'myuser', type: 'medium', title: '', }; const responseTagesschauWebsiteHTML = ` tagesschau.de - die erste Adresse für Nachrichten und Information | tagesschau.de `; const responseTagesschauWebsiteRSS = ` tagesschau.de - die erste Adresse für Nachrichten und Information https://www.tagesschau.de/ Die aktuellen Beiträge der Seite https://www.tagesschau.de/ de ARD-aktuell / tagesschau.de Tue, 12 Dec 2023 15:46:52 +0100 Tue, 12 Dec 2023 15:46:52 +0100 http://blogs.law.harvard.edu/tech/rss 90 tagesschau.de de ARD-aktuell / tagesschau.de 2023-12-12T14:44:56Z tagesschau.de Haushaltskrise: Um wie viele Milliarden es wirklich geht https://www.tagesschau.de/wirtschaft/haushalt-volumen-100.html Die Spitzen der Ampelkoalition suchen Auswege aus der Haushaltskrise. Die Wirtschaft drängt, einige Vorhaben stehen auf der Kippe. Was macht die Gespräche so schwierig - und um wie viel Geld geht es genau? Von H.-J. Vieweger. Tue, 12 Dec 2023 15:20:21 +0100 2371e076-f0bd-4e39-8fcf-3e6cf3308eff 2023-12-12T14:20:21Z Christian Lindner, Robert Habeck und Olaf Scholz im Bundestag  | dpa

Die Spitzen der Ampelkoalition suchen Auswege aus der Haushaltskrise. Die Wirtschaft drängt, einige Vorhaben stehen auf der Kippe. Was macht die Gespräche so schwierig - und um wie viel Geld geht es genau? Von H.-J. Vieweger.[mehr]

]]>
Verhandlungen über Haushalt gehen weiter https://www.tagesschau.de/inland/innenpolitik/haushalt-verhandlungen-fortsetzung-100.html Sie tagen wieder: Seit dem Vormittag sitzen die Spitzen der Ampel zusammen, um eine Lösung für den Haushalt 2024 zu finden. Vertreter von Wirtschaft und Gewerkschaften dringen auf eine schnelle Einigung. Tue, 12 Dec 2023 12:20:01 +0100 7b616ae4-0bd3-46cc-92b5-86c91235bfc3 2023-12-12T11:20:01Z Robert Habeck (M, Bündnis 90/Die Grünen), Bundesminister für Wirtschaft und Klimaschutz, kommt ins Bundeskanzleramt | dpa

Sie tagen wieder: Seit dem Vormittag sitzen die Spitzen der Ampel zusammen, um eine Lösung für den Haushalt 2024 zu finden. Vertreter von Wirtschaft und Gewerkschaften dringen auf eine schnelle Einigung.[mehr]

]]>
Ringen um Abschlusserklärung: Die dicken Bretter der Klimakonferenz https://www.tagesschau.de/ausland/asien/cop28-knackpunkte-100.html Auf der Klimakonferenz ist es den Teilnehmern bislang nicht gelungen, sich auf einen gemeinsamen Beschluss zu verständigen. Der größte Knackpunkt ist der Ausstieg aus fossilen Energien. Doch es gibt weitere. Von M. Polansky. Tue, 12 Dec 2023 13:24:39 +0100 43ab2bf0-e01d-48d8-ad12-cd4de07583ff 2023-12-12T12:24:39Z Verkleidete Klimaaktivisten fordern auf der Klimakonferenz in Dubai den Ausstieg aus fossilen Energien. | EPA

Auf der Klimakonferenz ist es den Teilnehmern bislang nicht gelungen, sich auf einen gemeinsamen Beschluss zu verständigen. Der größte Knackpunkt ist der Ausstieg aus fossilen Energien. Doch es gibt weitere. Von M. Polansky.[mehr]

]]>
`; Deno.test('getRSSFeed - Tagesschau Website', async () => { const fetchWithTimeoutSpy = stub( utils, 'fetchWithTimeout', returnsNext([ new Promise((resolve) => { resolve(new Response(responseTagesschauWebsiteHTML, { status: 200 })); }), new Promise((resolve) => { resolve(new Response(responseTagesschauWebsiteHTML, { status: 200 })); }), new Promise((resolve) => { resolve(new Response(responseTagesschauWebsiteRSS, { status: 200 })); }), ]), ); const getFaviconSpy = stub( feedutils, 'getFavicon', returnsNext([ new Promise((resolve) => { resolve({ url: 'https://www.tagesschau.de/resources/assets/image/favicon/apple-icon-152x152.png', size: 20251, extension: 'png', }); }), ]), ); const uploadSourceIconSpy = stub( feedutils, 'uploadSourceIcon', returnsNext([ new Promise((resolve) => { resolve( 'https://www.tagesschau.de/resources/assets/image/favicon/apple-icon-152x152.png', ); }), ]), ); try { const { source, items } = await getRSSFeed( supabaseClient, undefined, mockProfile, { ...mockSource, options: { rss: 'https://www.tagesschau.de', }, }, undefined, ); assertEqualsSource(source, { 'id': 'rss-myuser-mycolumn-790bbd13d8bff02d80672419ea0709b5', 'columnId': 'mycolumn', 'userId': 'myuser', 'type': 'rss', 'title': 'tagesschau.de - die erste Adresse für Nachrichten und Information', 'options': { 'rss': 'https://www.tagesschau.de/index~rss2.xml' }, 'link': 'https://www.tagesschau.de/', 'icon': 'https://www.tagesschau.de/resources/assets/image/favicon/apple-icon-152x152.png', }); assertEqualsItems(items, [{ 'id': 'rss-myuser-mycolumn-790bbd13d8bff02d80672419ea0709b5-0937a33dc3b35c2982ebb30ca389f6f8', 'userId': 'myuser', 'columnId': 'mycolumn', 'sourceId': 'rss-myuser-mycolumn-790bbd13d8bff02d80672419ea0709b5', 'title': 'Haushaltskrise: Um wie viele Milliarden es wirklich geht', 'link': 'https://www.tagesschau.de/wirtschaft/haushalt-volumen-100.html', 'media': 'https://images.tagesschau.de/image/2d5406e9-671d-4110-8302-de9b0a8b4832/AAABjBuUz7s/AAABibBxqrQ/16x9-1280/lindner-habeck-scholz-102.jpg', 'description': 'Die Spitzen der Ampelkoalition suchen Auswege aus der Haushaltskrise. Die Wirtschaft drängt, einige Vorhaben stehen auf der Kippe. Was macht die Gespräche so schwierig - und um wie viel Geld geht es genau? Von H.-J. Vieweger.', 'publishedAt': 1702390821, }, { 'id': 'rss-myuser-mycolumn-790bbd13d8bff02d80672419ea0709b5-73a9b28a98ee50d9d79c0b7b03fae3a8', 'userId': 'myuser', 'columnId': 'mycolumn', 'sourceId': 'rss-myuser-mycolumn-790bbd13d8bff02d80672419ea0709b5', 'title': 'Verhandlungen über Haushalt gehen weiter', 'link': 'https://www.tagesschau.de/inland/innenpolitik/haushalt-verhandlungen-fortsetzung-100.html', 'media': 'https://images.tagesschau.de/image/aff9abd4-3b6c-497a-9ff9-be59a588de60/AAABjF3BVcA/AAABibBxqrQ/16x9-1280/habeck-482.jpg', 'description': 'Sie tagen wieder: Seit dem Vormittag sitzen die Spitzen der Ampel zusammen, um eine Lösung für den Haushalt 2024 zu finden. Vertreter von Wirtschaft und Gewerkschaften dringen auf eine schnelle Einigung.', 'publishedAt': 1702380001, }, { 'id': 'rss-myuser-mycolumn-790bbd13d8bff02d80672419ea0709b5-fbdf4ad3cc0a0edfbde09afe55844dde', 'userId': 'myuser', 'columnId': 'mycolumn', 'sourceId': 'rss-myuser-mycolumn-790bbd13d8bff02d80672419ea0709b5', 'title': 'Ringen um Abschlusserklärung: Die dicken Bretter der Klimakonferenz', 'link': 'https://www.tagesschau.de/ausland/asien/cop28-knackpunkte-100.html', 'media': 'https://images.tagesschau.de/image/7fa64dfe-5ca7-4845-8dac-5cdeaa1e4c1d/AAABjF3uH6c/AAABibBxqrQ/16x9-1280/cop-aktivisten-102.jpg', 'description': 'Auf der Klimakonferenz ist es den Teilnehmern bislang nicht gelungen, sich auf einen gemeinsamen Beschluss zu verständigen. Der größte Knackpunkt ist der Ausstieg aus fossilen Energien. Doch es gibt weitere. Von M. Polansky.', 'publishedAt': 1702383879, }]); } finally { fetchWithTimeoutSpy.restore(); getFaviconSpy.restore(); uploadSourceIconSpy.restore(); } assertSpyCall(fetchWithTimeoutSpy, 0, { args: [ 'https://www.tagesschau.de', { method: 'get' }, 5000, ], returned: new Promise((resolve) => { resolve(new Response(responseTagesschauWebsiteHTML, { status: 200 })); }), }); assertSpyCall(fetchWithTimeoutSpy, 1, { args: [ 'https://www.tagesschau.de', { method: 'get' }, 5000, ], returned: new Promise((resolve) => { resolve(new Response(responseTagesschauWebsiteHTML, { status: 200 })); }), }); assertSpyCall(fetchWithTimeoutSpy, 2, { args: [ 'https://www.tagesschau.de/index~rss2.xml', { method: 'get' }, 5000, ], returned: new Promise((resolve) => { resolve(new Response(responseTagesschauWebsiteRSS, { status: 200 })); }), }); assertSpyCall(getFaviconSpy, 0, { args: ['https://www.tagesschau.de/'], returned: new Promise((resolve) => { resolve({ url: 'https://www.tagesschau.de/resources/assets/image/favicon/apple-icon-152x152.png', size: 20251, extension: 'png', }); }), }); assertSpyCall(uploadSourceIconSpy, 0, { args: [ supabaseClient, { 'id': 'rss-myuser-mycolumn-790bbd13d8bff02d80672419ea0709b5', 'columnId': 'mycolumn', 'userId': 'myuser', 'type': 'rss', 'title': 'tagesschau.de - die erste Adresse für Nachrichten und Information', 'options': { 'rss': 'https://www.tagesschau.de/index~rss2.xml' }, 'link': 'https://www.tagesschau.de/', 'icon': 'https://www.tagesschau.de/resources/assets/image/favicon/apple-icon-152x152.png', }, ], returned: new Promise((resolve) => { resolve( 'https://www.tagesschau.de/resources/assets/image/favicon/apple-icon-152x152.png', ); }), }); assertSpyCalls(fetchWithTimeoutSpy, 3); assertSpyCalls(getFaviconSpy, 1); assertSpyCalls(uploadSourceIconSpy, 1); }); const responseTagesschauAtom = ` tagesschau.de - die erste Adresse für Nachrichten und Information tagesschau.de Die aktuellen Beiträge der Seite https://www.tagesschau.de/ ARD-aktuell / tagesschau.de 2023-12-12T16:10:24Z de ARD-aktuell / tagesschau.de Haushaltskrise: Um wie viele Milliarden es wirklich geht 2371e076-f0bd-4e39-8fcf-3e6cf3308eff Die Spitzen der Ampelkoalition suchen Auswege aus der Haushaltskrise. Die Wirtschaft drängt, einige Vorhaben stehen auf der Kippe. Was macht die Gespräche so schwierig - und um wie viel Geld geht es genau? Von H.-J. Vieweger. <![CDATA[<p ><a href="https://www.tagesschau.de/wirtschaft/haushalt-volumen-100.html"><img src="https://images.tagesschau.de/image/2d5406e9-671d-4110-8302-de9b0a8b4832/AAABjBuUz7s/AAABibBxqrQ/16x9-1280/lindner-habeck-scholz-102.jpg" alt="Christian Lindner, Robert Habeck und Olaf Scholz im Bundestag | dpa" /></a ><br/><br/>Die Spitzen der Ampelkoalition suchen Auswege aus der Haushaltskrise. Die Wirtschaft drängt, einige Vorhaben stehen auf der Kippe. Was macht die Gespräche so schwierig - und um wie viel Geld geht es genau? <em >Von H.-J. Vieweger.</em >[<a href="https://www.tagesschau.de/wirtschaft/haushalt-volumen-100.html">mehr </a >]</p >]]> 2023-12-12T14:20:21Z Verhandlungen über Haushalt gehen weiter 7b616ae4-0bd3-46cc-92b5-86c91235bfc3 Sie tagen wieder: Seit dem Vormittag sitzen die Spitzen der Ampel zusammen, um eine Lösung für den Haushalt 2024 zu finden. Vertreter von Wirtschaft und Gewerkschaften dringen auf eine schnelle Einigung. <![CDATA[<p ><a href="https://www.tagesschau.de/inland/innenpolitik/haushalt-verhandlungen-fortsetzung-100.html"><img src="https://images.tagesschau.de/image/aff9abd4-3b6c-497a-9ff9-be59a588de60/AAABjF3BVcA/AAABibBxqrQ/16x9-1280/habeck-482.jpg" alt="Robert Habeck (M, Bündnis 90/Die Grünen), Bundesminister für Wirtschaft und Klimaschutz, kommt ins Bundeskanzleramt | dpa" /></a ><br/><br/>Sie tagen wieder: Seit dem Vormittag sitzen die Spitzen der Ampel zusammen, um eine Lösung für den Haushalt 2024 zu finden. Vertreter von Wirtschaft und Gewerkschaften dringen auf eine schnelle Einigung.[<a href="https://www.tagesschau.de/inland/innenpolitik/haushalt-verhandlungen-fortsetzung-100.html">mehr </a >]</p >]]> 2023-12-12T11:20:01Z `; Deno.test('getRSSFeed - Tagesschau Atom', async () => { const fetchWithTimeoutSpy = stub( utils, 'fetchWithTimeout', returnsNext([ new Promise((resolve) => { resolve(new Response(responseTagesschauAtom, { status: 200 })); }), ]), ); const getFaviconSpy = stub( feedutils, 'getFavicon', returnsNext([ new Promise((resolve) => { resolve(undefined); }), ]), ); const uploadSourceIconSpy = stub( feedutils, 'uploadSourceIcon', returnsNext([ new Promise((resolve) => { resolve(undefined); }), ]), ); try { const { source, items } = await getRSSFeed( supabaseClient, undefined, mockProfile, { ...mockSource, options: { rss: 'https://www.tagesschau.de/index~atom.xml', }, }, undefined, ); assertEqualsSource(source, { 'id': 'rss-myuser-mycolumn-8465a4b4e81845fd534f45a3ef63ae7f', 'columnId': 'mycolumn', 'userId': 'myuser', 'type': 'rss', 'title': 'tagesschau.de - die erste Adresse für Nachrichten und Information', 'options': { 'rss': 'https://www.tagesschau.de/index~atom.xml' }, 'link': 'https://www.tagesschau.de/', }); assertEqualsItems(items, [{ 'id': 'rss-myuser-mycolumn-8465a4b4e81845fd534f45a3ef63ae7f-0937a33dc3b35c2982ebb30ca389f6f8', 'userId': 'myuser', 'columnId': 'mycolumn', 'sourceId': 'rss-myuser-mycolumn-8465a4b4e81845fd534f45a3ef63ae7f', 'title': 'Haushaltskrise: Um wie viele Milliarden es wirklich geht', 'link': 'https://www.tagesschau.de/wirtschaft/haushalt-volumen-100.html', 'media': 'https://images.tagesschau.de/image/2d5406e9-671d-4110-8302-de9b0a8b4832/AAABjBuUz7s/AAABibBxqrQ/16x9-1280/lindner-habeck-scholz-102.jpg', 'description': 'Die Spitzen der Ampelkoalition suchen Auswege aus der Haushaltskrise. Die Wirtschaft drängt, einige Vorhaben stehen auf der Kippe. Was macht die Gespräche so schwierig - und um wie viel Geld geht es genau? Von H.-J. Vieweger.', 'publishedAt': 1702390821, }, { 'id': 'rss-myuser-mycolumn-8465a4b4e81845fd534f45a3ef63ae7f-73a9b28a98ee50d9d79c0b7b03fae3a8', 'userId': 'myuser', 'columnId': 'mycolumn', 'sourceId': 'rss-myuser-mycolumn-8465a4b4e81845fd534f45a3ef63ae7f', 'title': 'Verhandlungen über Haushalt gehen weiter', 'link': 'https://www.tagesschau.de/inland/innenpolitik/haushalt-verhandlungen-fortsetzung-100.html', 'media': 'https://images.tagesschau.de/image/aff9abd4-3b6c-497a-9ff9-be59a588de60/AAABjF3BVcA/AAABibBxqrQ/16x9-1280/habeck-482.jpg', 'description': 'Sie tagen wieder: Seit dem Vormittag sitzen die Spitzen der Ampel zusammen, um eine Lösung für den Haushalt 2024 zu finden. Vertreter von Wirtschaft und Gewerkschaften dringen auf eine schnelle Einigung.', 'publishedAt': 1702380001, }]); } finally { fetchWithTimeoutSpy.restore(); getFaviconSpy.restore(); uploadSourceIconSpy.restore(); } assertSpyCall(fetchWithTimeoutSpy, 0, { args: [ 'https://www.tagesschau.de/index~atom.xml', { method: 'get' }, 5000, ], returned: new Promise((resolve) => { resolve(new Response(responseTagesschauAtom, { status: 200 })); }), }); assertSpyCall(getFaviconSpy, 0, { args: ['https://www.tagesschau.de/'], returned: new Promise((resolve) => { resolve(undefined); }), }); assertSpyCall(uploadSourceIconSpy, 0, { args: [ supabaseClient, { 'id': 'rss-myuser-mycolumn-8465a4b4e81845fd534f45a3ef63ae7f', 'columnId': 'mycolumn', 'userId': 'myuser', 'type': 'rss', 'title': 'tagesschau.de - die erste Adresse für Nachrichten und Information', 'options': { 'rss': 'https://www.tagesschau.de/index~atom.xml' }, 'link': 'https://www.tagesschau.de/', icon: undefined, }, ], returned: new Promise((resolve) => { resolve(undefined); }), }); assertSpyCalls(fetchWithTimeoutSpy, 1); assertSpyCalls(getFaviconSpy, 1); assertSpyCalls(uploadSourceIconSpy, 1); }); const responseTagesschauRDF = ` tagesschau.de - die erste Adresse für Nachrichten und Information https://www.tagesschau.de/ Die aktuellen Beiträge der Seite https://www.tagesschau.de/ de ARD-aktuell / tagesschau.de Tue, 12 Dec 2023 17:18:00 +0100 Tue, 12 Dec 2023 17:18:00 +0100 90 tagesschau.de de ARD-aktuell / tagesschau.de 2023-12-12T16:14:28+00:00 tagesschau.de hourly 1 2023-12-12T16:18:00+00:00 tagesschau | ARD-aktuell https://images.tagesschau.de/image/89045d82-5cd5-46ad-8f91-73911add30ee/AAABh3YLLz0/AAABibBx4co/original/tagesschau-logo-100.jpg https://tagesschau.de Haushaltskrise: Um wie viele Milliarden es wirklich geht https://www.tagesschau.de/wirtschaft/haushalt-volumen-100.html Die Spitzen der Ampelkoalition suchen Auswege aus der Haushaltskrise. Die Wirtschaft drängt, einige Vorhaben stehen auf der Kippe. Was macht die Gespräche so schwierig - und um wie viel Geld geht es genau? Von H.-J. Vieweger. Tue, 12 Dec 2023 15:20:21 +0100 2371e076-f0bd-4e39-8fcf-3e6cf3308eff 2023-12-12T14:20:21Z Christian Lindner, Robert Habeck und Olaf Scholz im Bundestag  | dpa

Die Spitzen der Ampelkoalition suchen Auswege aus der Haushaltskrise. Die Wirtschaft drängt, einige Vorhaben stehen auf der Kippe. Was macht die Gespräche so schwierig - und um wie viel Geld geht es genau? Von H.-J. Vieweger.[mehr]

]]>
text/xml ARD-aktuell / tagesschau.de de tagesschau.de haushalt-volumen-100 all
Verhandlungen über Haushalt gehen weiter https://www.tagesschau.de/inland/innenpolitik/haushalt-verhandlungen-fortsetzung-100.html Sie tagen wieder: Seit dem Vormittag sitzen die Spitzen der Ampel zusammen, um eine Lösung für den Haushalt 2024 zu finden. Vertreter von Wirtschaft und Gewerkschaften dringen auf eine schnelle Einigung. Tue, 12 Dec 2023 12:20:01 +0100 7b616ae4-0bd3-46cc-92b5-86c91235bfc3 2023-12-12T11:20:01Z Robert Habeck (M, Bündnis 90/Die Grünen), Bundesminister für Wirtschaft und Klimaschutz, kommt ins Bundeskanzleramt | dpa

Sie tagen wieder: Seit dem Vormittag sitzen die Spitzen der Ampel zusammen, um eine Lösung für den Haushalt 2024 zu finden. Vertreter von Wirtschaft und Gewerkschaften dringen auf eine schnelle Einigung.[mehr]

]]>
text/xml ARD-aktuell / tagesschau.de de tagesschau.de haushalt-verhandlungen-fortsetzung-100 all
`; Deno.test('getRSSFeed - Tagesschau RDF', async () => { const fetchWithTimeoutSpy = stub( utils, 'fetchWithTimeout', returnsNext([ new Promise((resolve) => { resolve(new Response(responseTagesschauRDF, { status: 200 })); }), ]), ); const getFaviconSpy = stub( feedutils, 'getFavicon', returnsNext([ new Promise((resolve) => { resolve(undefined); }), ]), ); const uploadSourceIconSpy = stub( feedutils, 'uploadSourceIcon', returnsNext([ new Promise((resolve) => { resolve(undefined); }), ]), ); try { const { source, items } = await getRSSFeed( supabaseClient, undefined, mockProfile, { ...mockSource, options: { rss: 'https://www.tagesschau.de/index~rdf.xml', }, }, undefined, ); assertEqualsSource(source, { 'id': 'rss-myuser-mycolumn-315eca5c9ed1af9968989241a5b7de09', 'columnId': 'mycolumn', 'userId': 'myuser', 'type': 'rss', 'title': 'tagesschau.de - die erste Adresse für Nachrichten und Information', 'options': { 'rss': 'https://www.tagesschau.de/index~rdf.xml' }, 'link': 'https://www.tagesschau.de/', }); assertEqualsItems(items, [{ 'id': 'rss-myuser-mycolumn-315eca5c9ed1af9968989241a5b7de09-d1a49b5818b63c6c2d4cbabb45086a8c', 'userId': 'myuser', 'columnId': 'mycolumn', 'sourceId': 'rss-myuser-mycolumn-315eca5c9ed1af9968989241a5b7de09', 'title': 'Haushaltskrise: Um wie viele Milliarden es wirklich geht', 'link': 'https://www.tagesschau.de/wirtschaft/haushalt-volumen-100.html', 'description': 'Die Spitzen der Ampelkoalition suchen Auswege aus der Haushaltskrise. Die Wirtschaft drängt, einige Vorhaben stehen auf der Kippe. Was macht die Gespräche so schwierig - und um wie viel Geld geht es genau? Von H.-J. Vieweger.', 'publishedAt': 1702390821, }, { 'id': 'rss-myuser-mycolumn-315eca5c9ed1af9968989241a5b7de09-c2f8e98ba67224f9e65c3623e7989fd6', 'userId': 'myuser', 'columnId': 'mycolumn', 'sourceId': 'rss-myuser-mycolumn-315eca5c9ed1af9968989241a5b7de09', 'title': 'Verhandlungen über Haushalt gehen weiter', 'link': 'https://www.tagesschau.de/inland/innenpolitik/haushalt-verhandlungen-fortsetzung-100.html', 'description': 'Sie tagen wieder: Seit dem Vormittag sitzen die Spitzen der Ampel zusammen, um eine Lösung für den Haushalt 2024 zu finden. Vertreter von Wirtschaft und Gewerkschaften dringen auf eine schnelle Einigung.', 'publishedAt': 1702380001, }]); } finally { fetchWithTimeoutSpy.restore(); getFaviconSpy.restore(); uploadSourceIconSpy.restore(); } assertSpyCall(fetchWithTimeoutSpy, 0, { args: [ 'https://www.tagesschau.de/index~rdf.xml', { method: 'get' }, 5000, ], returned: new Promise((resolve) => { resolve(new Response(responseTagesschauRDF, { status: 200 })); }), }); assertSpyCall(getFaviconSpy, 0, { args: ['https://www.tagesschau.de/'], returned: new Promise((resolve) => { resolve(undefined); }), }); assertSpyCall(uploadSourceIconSpy, 0, { args: [ supabaseClient, { 'id': 'rss-myuser-mycolumn-315eca5c9ed1af9968989241a5b7de09', 'columnId': 'mycolumn', 'userId': 'myuser', 'type': 'rss', 'title': 'tagesschau.de - die erste Adresse für Nachrichten und Information', 'options': { 'rss': 'https://www.tagesschau.de/index~rdf.xml' }, 'link': 'https://www.tagesschau.de/', icon: undefined, }, ], returned: new Promise((resolve) => { resolve(undefined); }), }); assertSpyCalls(fetchWithTimeoutSpy, 1); assertSpyCalls(getFaviconSpy, 1); assertSpyCalls(uploadSourceIconSpy, 1); }); const responseNYT = ` NYT >World News https://www.nytimes.com/section/world en-us Copyright 2023 The New York Times Company Tue, 12 Dec 2023 17:20:39 +0000 Tue, 12 Dec 2023 17:18:21 +0000 NYT >World News https://static01.nyt.com/images/misc/NYT_logo_rss_250x40.png https://www.nytimes.com/section/world Israel-Hamas War: Houthis Strike Commercial Ship in Red Sea, Fanning Fears of Wider War https://www.nytimes.com/live/2023/12/12/world/israel-hamas-gaza-war-news https://www.nytimes.com/live/2023/12/12/world/israel-hamas-gaza-war-news A missile hit a tanker in one of the first successful strikes on a ship by the Iranian-backed Houthi militia in Yemen, which has vowed to target vessels in protest of Israel’s assault on Gaza. The New York Times Tue, 12 Dec 2023 17:17:11 +0000 Khaled Abdullah/Reuters Protesting in Sanaa, Yemen, this month to show support for Palestinians in Gaza. Russia-Ukraine War: As Zelensky Pleads for Aid, Republicans Demand Border Concessions From Biden https://www.nytimes.com/live/2023/12/12/us/zelensky-biden-visit https://www.nytimes.com/live/2023/12/12/us/zelensky-biden-visit Ukraine’s president is in Washington with an urgent request for more help to fight Russia, but Republicans in both chambers say they won’t act without a border deal. Mr. Zelensky will meet soon with President Biden. The New York Times Tue, 12 Dec 2023 17:17:11 +0000 Kent Nishimura for The New York Times President Volodymyr Zelensky of Ukraine arriving at the Capitol on Tuesday, where he earned a show of support from Senators Chuck Schumer and Mitch McConnell. `; Deno.test('getRSSFeed - NYT', async () => { const fetchWithTimeoutSpy = stub( utils, 'fetchWithTimeout', returnsNext([ new Promise((resolve) => { resolve(new Response(responseNYT, { status: 200 })); }), ]), ); const getFaviconSpy = stub( feedutils, 'getFavicon', returnsNext([ new Promise((resolve) => { resolve(undefined); }), ]), ); const uploadSourceIconSpy = stub( feedutils, 'uploadSourceIcon', returnsNext([ new Promise((resolve) => { resolve(undefined); }), ]), ); try { const { source, items } = await getRSSFeed( supabaseClient, undefined, mockProfile, { ...mockSource, options: { rss: 'https://rss.nytimes.com/services/xml/rss/nyt/World.xml', }, }, undefined, ); assertEqualsSource(source, { 'id': 'rss-myuser-mycolumn-befdaecfac50335eaa1a93512d673fb6', 'columnId': 'mycolumn', 'userId': 'myuser', 'type': 'rss', 'title': 'NYT >World News', 'options': { 'rss': 'https://rss.nytimes.com/services/xml/rss/nyt/World.xml', }, 'link': 'https://www.nytimes.com/section/world', }); assertEqualsItems(items, [{ 'id': 'rss-myuser-mycolumn-befdaecfac50335eaa1a93512d673fb6-d22cc21707b95a8e85b4c7bd88b712e5', 'userId': 'myuser', 'columnId': 'mycolumn', 'sourceId': 'rss-myuser-mycolumn-befdaecfac50335eaa1a93512d673fb6', 'title': 'Israel-Hamas War: Houthis Strike Commercial Ship in Red Sea, Fanning Fears of Wider War', 'link': 'https://www.nytimes.com/live/2023/12/12/world/israel-hamas-gaza-war-news', 'media': 'https://static01.nyt.com/images/2023/12/12/multimedia/12israel-hamas-header-sub-cthq/12israel-hamas-header-sub-cthq-mediumSquareAt3X.jpg', 'description': 'A missile hit a tanker in one of the first successful strikes on a ship by the Iranian-backed Houthi militia in Yemen, which has vowed to target vessels in protest of Israel’s assault on Gaza.', 'author': 'The New York Times', 'publishedAt': 1702401431, }, { 'id': 'rss-myuser-mycolumn-befdaecfac50335eaa1a93512d673fb6-92c1a2023e17f7793d796690ff6ef250', 'userId': 'myuser', 'columnId': 'mycolumn', 'sourceId': 'rss-myuser-mycolumn-befdaecfac50335eaa1a93512d673fb6', 'title': 'Russia-Ukraine War: As Zelensky Pleads for Aid, Republicans Demand Border Concessions From Biden', 'link': 'https://www.nytimes.com/live/2023/12/12/us/zelensky-biden-visit', 'media': 'https://static01.nyt.com/images/2023/12/12/multimedia/12zelensky-dc-blog/12zelensky-dc-hp-mediumSquareAt3X-v2.jpg', 'description': 'Ukraine’s president is in Washington with an urgent request for more help to fight Russia, but Republicans in both chambers say they won’t act without a border deal. Mr. Zelensky will meet soon with President Biden.', 'author': 'The New York Times', 'publishedAt': 1702401431, }]); } finally { fetchWithTimeoutSpy.restore(); getFaviconSpy.restore(); uploadSourceIconSpy.restore(); } assertSpyCall(fetchWithTimeoutSpy, 0, { args: [ 'https://rss.nytimes.com/services/xml/rss/nyt/World.xml', { method: 'get' }, 5000, ], returned: new Promise((resolve) => { resolve(new Response(responseNYT, { status: 200 })); }), }); assertSpyCall(getFaviconSpy, 0, { args: ['https://www.nytimes.com/section/world'], returned: new Promise((resolve) => { resolve(undefined); }), }); assertSpyCall(uploadSourceIconSpy, 0, { args: [ supabaseClient, { 'id': 'rss-myuser-mycolumn-befdaecfac50335eaa1a93512d673fb6', 'columnId': 'mycolumn', 'userId': 'myuser', 'type': 'rss', 'title': 'NYT >World News', 'options': { 'rss': 'https://rss.nytimes.com/services/xml/rss/nyt/World.xml', }, 'link': 'https://www.nytimes.com/section/world', icon: undefined, }, ], returned: new Promise((resolve) => { resolve(undefined); }), }); assertSpyCalls(fetchWithTimeoutSpy, 1); assertSpyCalls(getFaviconSpy, 1); assertSpyCalls(uploadSourceIconSpy, 1); }); const responseCNN = ` <![CDATA[CNN.com - RSS Channel]]> http://www.cnn.com http://i2.cdn.turner.com/cnn/2015/images/09/24/cnn.digital.png CNN.com - RSS Channel http://www.cnn.com coredev-bumblebee Tue, 12 Dec 2023 16:50:57 GMT Tue, 12 Dec 2023 16:50:57 GMT 10 <![CDATA[Zelensky visits Washington in push for more Ukraine aid]]> https://www.cnn.com/politics/live-news/zelensky-biden-visit-12-12-23/index.html https://www.cnn.com/politics/live-news/zelensky-biden-visit-12-12-23/index.html Tue, 12 Dec 2023 16:11:05 GMT <![CDATA[Humanitarian crisis worsens in Gaza as Israel-Hamas war intensifies]]> https://www.cnn.com/middleeast/live-news/israel-hamas-war-gaza-news-12-12-23/index.html https://www.cnn.com/middleeast/live-news/israel-hamas-war-gaza-news-12-12-23/index.html Tue, 12 Dec 2023 16:01:14 GMT `; Deno.test('getRSSFeed - CNN', async () => { const fetchWithTimeoutSpy = stub( utils, 'fetchWithTimeout', returnsNext([ new Promise((resolve) => { resolve(new Response(responseCNN, { status: 200 })); }), ]), ); const getFaviconSpy = stub( feedutils, 'getFavicon', returnsNext([ new Promise((resolve) => { resolve(undefined); }), ]), ); const uploadSourceIconSpy = stub( feedutils, 'uploadSourceIcon', returnsNext([ new Promise((resolve) => { resolve(undefined); }), ]), ); try { const { source, items } = await getRSSFeed( supabaseClient, undefined, mockProfile, { ...mockSource, options: { rss: 'http://rss.cnn.com/rss/cnn_latest.rss', }, }, undefined, ); assertEqualsSource(source, { 'id': 'rss-myuser-mycolumn-27c792d08caef396bf1e3ce488f6b4ea', 'columnId': 'mycolumn', 'userId': 'myuser', 'type': 'rss', 'title': 'CNN.com - RSS Channel', 'options': { 'rss': 'http://rss.cnn.com/rss/cnn_latest.rss' }, 'link': 'http://www.cnn.com', }); assertEqualsItems(items, [{ 'id': 'rss-myuser-mycolumn-27c792d08caef396bf1e3ce488f6b4ea-6577cd61df49e5dd769eb44e0be07ca5', 'userId': 'myuser', 'columnId': 'mycolumn', 'sourceId': 'rss-myuser-mycolumn-27c792d08caef396bf1e3ce488f6b4ea', 'title': 'Zelensky visits Washington in push for more Ukraine aid', 'link': 'https://www.cnn.com/politics/live-news/zelensky-biden-visit-12-12-23/index.html', 'media': 'https://cdn.cnn.com/cnnnext/dam/assets/231212094255-01-zelensky-dc-visit-121223-super-169.jpg', 'description': 'Ukrainian President Volodymyr Zelensky is meeting with President Joe Biden at the White House and lawmakers on Capitol Hill Tuesday as discussions on a Ukraine aid deal remain stalled. Follow for the latest live news updates.', 'publishedAt': 1702397465, }, { 'id': 'rss-myuser-mycolumn-27c792d08caef396bf1e3ce488f6b4ea-45e3785b62227cf241b472cd51107ae2', 'userId': 'myuser', 'columnId': 'mycolumn', 'sourceId': 'rss-myuser-mycolumn-27c792d08caef396bf1e3ce488f6b4ea', 'title': 'Humanitarian crisis worsens in Gaza as Israel-Hamas war intensifies', 'link': 'https://www.cnn.com/middleeast/live-news/israel-hamas-war-gaza-news-12-12-23/index.html', 'media': 'https://cdn.cnn.com/cnnnext/dam/assets/231211100814-gaza-skyline-5t-121123-super-169.jpeg', 'description': 'The United Nations General Assembly will resume its emergency session Tuesday on Gaza, days after the United States vetoed a Security Council resolution calling for a ceasefire. Follow for live updates.', 'publishedAt': 1702396874, }]); } finally { fetchWithTimeoutSpy.restore(); getFaviconSpy.restore(); uploadSourceIconSpy.restore(); } assertSpyCall(fetchWithTimeoutSpy, 0, { args: [ 'http://rss.cnn.com/rss/cnn_latest.rss', { method: 'get' }, 5000, ], returned: new Promise((resolve) => { resolve(new Response(responseCNN, { status: 200 })); }), }); assertSpyCall(getFaviconSpy, 0, { args: ['http://www.cnn.com'], returned: new Promise((resolve) => { resolve(undefined); }), }); assertSpyCall(uploadSourceIconSpy, 0, { args: [ supabaseClient, { 'id': 'rss-myuser-mycolumn-27c792d08caef396bf1e3ce488f6b4ea', 'columnId': 'mycolumn', 'userId': 'myuser', 'type': 'rss', 'title': 'CNN.com - RSS Channel', 'options': { 'rss': 'http://rss.cnn.com/rss/cnn_latest.rss' }, 'link': 'http://www.cnn.com', icon: undefined, }, ], returned: new Promise((resolve) => { resolve(undefined); }), }); assertSpyCalls(fetchWithTimeoutSpy, 1); assertSpyCalls(getFaviconSpy, 1); assertSpyCalls(uploadSourceIconSpy, 1); }); const responseNTV = ` n-tv.de - Startseite https://www.n-tv.de/ n-tv.de, Nachrichten seriös, schnell und kompetent. Artikel und Videos aus Politik, Wirtschaft, Börse, Sport und aller Welt. de-de n-tv Nachrichtenfernsehen GmbH. RSS Meldungen dürfen nur unverändert wiedergegeben und ausschließlich online verwendet werden. Die eingeräumten Nutzungsrechte beinhalten ausdrücklich nicht das Recht zur Weitergabe an Dritte. Insbesondere ist es nicht gestattet, die Daten auf öffentlichen Screens oder zum Download anzubieten - weder kostenlos noch kostenpflichtig. Tue, 12 Dec 2023 18:32:01 +0100 5 https://www.n-tv.de/resources/02291043/adaptive/images/head_logo.png n-tv.de - Startseite https://www.n-tv.de/ Tinte oder Laser: Das sind aktuell die besten Drucker Für einen guten Drucker im Homeoffice kann man 200 Euro, aber auch 500 Euro ausgeben, ein hoher Preis garantiert aber keine hohe Qualität. Welches Gerät das richtige ist, entscheiden individuelle Prioritäten und wie intensiv es eingesetzt wird. Stiftung Warentest hilft bei der Kaufentscheidung. https://www.n-tv.de/technik/Das-sind-aktuell-die-besten-Drucker-article24595055.html https://www.n-tv.de/technik/Das-sind-aktuell-die-besten-Drucker-article24595055.html Technik Tue, 12 Dec 2023 18:21:58 +0100 Für einen guten Drucker im Homeoffice kann man 200 Euro, aber auch 500 Euro ausgeben, ein hoher Preis garantiert aber keine hohe Qualität. Welches Gerät das richtige ist, entscheiden individuelle Prioritäten und wie intensiv es eingesetzt wird. Stiftung Warentest hilft bei der Kaufentscheidung.]]> Auch andere Konzerne betroffen: Hacker legen ukrainischen Mobilfunkanbieter lahm Am Morgen wird der größte Mobilfunkanbieter der Ukraine, Kyivstar, nach eigenen Angaben Opfer eines Hackerangriffs. Landesweit fallen Verbindungen aus. Die Polizei sei eingeschaltet worden, teilt der Konzern mit. Auch andere Unternehmen sind betroffen. https://www.n-tv.de/politik/Hacker-legen-ukrainischen-Mobilfunkanbieter-lahm-article24594969.html https://www.n-tv.de/politik/Hacker-legen-ukrainischen-Mobilfunkanbieter-lahm-article24594969.html Politik Tue, 12 Dec 2023 18:13:28 +0100 Am Morgen wird der größte Mobilfunkanbieter der Ukraine, Kyivstar, nach eigenen Angaben Opfer eines Hackerangriffs. Landesweit fallen Verbindungen aus. Die Polizei sei eingeschaltet worden, teilt der Konzern mit. Auch andere Unternehmen sind betroffen.]]> `; Deno.test('getRSSFeed - NTV', async () => { const fetchWithTimeoutSpy = stub( utils, 'fetchWithTimeout', returnsNext([ new Promise((resolve) => { resolve(new Response(responseNTV, { status: 200 })); }), ]), ); const getFaviconSpy = stub( feedutils, 'getFavicon', returnsNext([ new Promise((resolve) => { resolve(undefined); }), ]), ); const uploadSourceIconSpy = stub( feedutils, 'uploadSourceIcon', returnsNext([ new Promise((resolve) => { resolve(undefined); }), ]), ); try { const { source, items } = await getRSSFeed( supabaseClient, undefined, mockProfile, { ...mockSource, options: { rss: 'https://www.n-tv.de/rss', }, }, undefined, ); assertEqualsSource(source, { 'id': 'rss-myuser-mycolumn-390a57640c2613653000729c6fef53ae', 'columnId': 'mycolumn', 'userId': 'myuser', 'type': 'rss', 'title': 'n-tv.de - Startseite', 'options': { 'rss': 'https://www.n-tv.de/rss' }, 'link': 'https://www.n-tv.de/', }); assertEqualsItems(items, [{ 'id': 'rss-myuser-mycolumn-390a57640c2613653000729c6fef53ae-b959f7366439bfcc1381b9a5f9fcf636', 'userId': 'myuser', 'columnId': 'mycolumn', 'sourceId': 'rss-myuser-mycolumn-390a57640c2613653000729c6fef53ae', 'title': 'Tinte oder Laser: Das sind aktuell die besten Drucker', 'link': 'https://www.n-tv.de/technik/Das-sind-aktuell-die-besten-Drucker-article24595055.html', 'media': 'https://bilder2.n-tv.de/img/incoming/crop24595613/7928676886-cImg_4_3-w250/Drucker.jpg', 'description': 'Für einen guten Drucker im Homeoffice kann man 200 Euro, aber auch 500 Euro ausgeben, ein hoher Preis garantiert aber keine hohe Qualität. Welches Gerät das richtige ist, entscheiden individuelle Prioritäten und wie intensiv es eingesetzt wird. Stiftung Warentest hilft bei der Kaufentscheidung.', 'publishedAt': 1702401718, }, { 'id': 'rss-myuser-mycolumn-390a57640c2613653000729c6fef53ae-36e1c97d7833bb69e6e53704e866e3ba', 'userId': 'myuser', 'columnId': 'mycolumn', 'sourceId': 'rss-myuser-mycolumn-390a57640c2613653000729c6fef53ae', 'title': 'Auch andere Konzerne betroffen: Hacker legen ukrainischen Mobilfunkanbieter lahm', 'link': 'https://www.n-tv.de/politik/Hacker-legen-ukrainischen-Mobilfunkanbieter-lahm-article24594969.html', 'media': 'https://bilder2.n-tv.de/img/incoming/crop24595013/3588678578-cImg_4_3-w250/imago0241272335h.jpg', 'description': 'Am Morgen wird der größte Mobilfunkanbieter der Ukraine, Kyivstar, nach eigenen Angaben Opfer eines Hackerangriffs. Landesweit fallen Verbindungen aus. Die Polizei sei eingeschaltet worden, teilt der Konzern mit. Auch andere Unternehmen sind betroffen.', 'publishedAt': 1702401208, }]); } finally { fetchWithTimeoutSpy.restore(); getFaviconSpy.restore(); uploadSourceIconSpy.restore(); } assertSpyCall(fetchWithTimeoutSpy, 0, { args: [ 'https://www.n-tv.de/rss', { method: 'get' }, 5000, ], returned: new Promise((resolve) => { resolve(new Response(responseNTV, { status: 200 })); }), }); assertSpyCall(getFaviconSpy, 0, { args: ['https://www.n-tv.de/'], returned: new Promise((resolve) => { resolve(undefined); }), }); assertSpyCall(uploadSourceIconSpy, 0, { args: [ supabaseClient, { 'id': 'rss-myuser-mycolumn-390a57640c2613653000729c6fef53ae', 'columnId': 'mycolumn', 'userId': 'myuser', 'type': 'rss', 'title': 'n-tv.de - Startseite', 'options': { 'rss': 'https://www.n-tv.de/rss' }, 'link': 'https://www.n-tv.de/', icon: undefined, }, ], returned: new Promise((resolve) => { resolve(undefined); }), }); assertSpyCalls(fetchWithTimeoutSpy, 1); assertSpyCalls(getFaviconSpy, 1); assertSpyCalls(uploadSourceIconSpy, 1); }); const responseFP = ` Freie Presse - Chemnitz Freie Presse 2023-12-12T18:06:34Z tag:www.freiepresse.de,2023-12-12:/rss/rss_chemnitz.php https://www.freiepresse.de/chemnitz/nach-streit-im-chemnitzer-kuechwald-buehnenverein-werner-haas-gruendet-neues-theater-artikel13168401 2023-12-12T18:00:00Z Nach Streit im Chemnitzer Küchwald-Bühnenverein: Werner Haas gründet neues Theater <img src="https://www.freiepresse.de/DYNIMG/72/08/13067208_W740C2040x1360o0x0.jpg" />Es ist nicht lange still geblieben um Werner Haas. Der Regisseur und Chorleiter trennte sich im Sommer im Streit vom Verein zur Belebung der Küchwaldbühne. Er hatte den Verein gegründet und leitete die Laientheatergruppe, die fast jährlich auf der Freilichtbühne spielte. Für 2023 hatte sich der Vereinsvorstand aber mehrheitlich gegen eine Premiere entschieden. Haas habe kein tragfähiges Konzept da... Andreas Seidel/Archiv https://www.freiepresse.de/chemnitz/oberflaechliche-ermittlungen-fehlende-technik-im-gerichtssaal-prozessauftakt-zu-2018er-aufarbeitung-wirft-fragen-auf-artikel13168461 2023-12-12T17:00:00Z Oberflächliche Ermittlungen, fehlende Technik im Gerichtssaal: Prozessauftakt zu 2018er-Aufarbeitung wirft Fragen auf <img src="https://www.freiepresse.de/DYNIMG/73/46/13067346_W740C2040x1360o0x0.jpg" />Der Beginn der Verhandlung war auf 9 Uhr am Montag angesetzt, als die Vernehmung der ersten Zeugin begann, war es 13 Uhr. Sie sollte unter anderem den Weg skizzieren, den die mutmaßlichen Täter am Tattag zu den Tatorten genommen hatten. Vier Angeklagte mit je einem Vertreter auf der einen Seite, Staatsanwalt und drei Nebenkläger-Vertreter auf der anderen. Der Vorsitzende Richter Jürgen Zöllner lie... Harry Haertel `; Deno.test('getRSSFeed - FP', async () => { const fetchWithTimeoutSpy = stub( utils, 'fetchWithTimeout', returnsNext([ new Promise((resolve) => { resolve(new Response(responseFP, { status: 200 })); }), ]), ); const getFaviconSpy = stub( feedutils, 'getFavicon', returnsNext([ new Promise((resolve) => { resolve(undefined); }), ]), ); const uploadSourceIconSpy = stub( feedutils, 'uploadSourceIcon', returnsNext([ new Promise((resolve) => { resolve(undefined); }), ]), ); try { const { source, items } = await getRSSFeed( supabaseClient, undefined, mockProfile, { ...mockSource, options: { rss: 'https://www.freiepresse.de/rss/rss_chemnitz.php', }, }, undefined, ); assertEqualsSource(source, { 'id': 'rss-myuser-mycolumn-3d20715877c48f9b58c13809c5abc600', 'columnId': 'mycolumn', 'userId': 'myuser', 'type': 'rss', 'title': 'Freie Presse - Chemnitz', 'options': { 'rss': 'https://www.freiepresse.de/rss/rss_chemnitz.php' }, 'link': 'https://www.freiepresse.de/rss/rss_chemnitz.php', }); assertEqualsItems(items, [{ 'id': 'rss-myuser-mycolumn-3d20715877c48f9b58c13809c5abc600-39bfc1acb8b30883dce00bb6167b766d', 'userId': 'myuser', 'columnId': 'mycolumn', 'sourceId': 'rss-myuser-mycolumn-3d20715877c48f9b58c13809c5abc600', 'title': 'Nach Streit im Chemnitzer Küchwald-Bühnenverein: Werner Haas gründet neues Theater', 'link': 'https://www.freiepresse.de/chemnitz/nach-streit-im-chemnitzer-kuechwald-buehnenverein-werner-haas-gruendet-neues-theater-artikel13168401', 'media': 'https://www.freiepresse.de/DYNIMG/72/08/13067208_W740C2040x1360o0x0.jpg', 'description': 'Es ist nicht lange still geblieben um Werner Haas. Der Regisseur und Chorleiter trennte sich im Sommer im Streit vom Verein zur Belebung der Küchwaldbühne. Er hatte den Verein gegründet und leitete die Laientheatergruppe, die fast jährlich auf der Freilichtbühne spielte. Für 2023 hatte sich der Vereinsvorstand aber mehrheitlich gegen eine Premiere entschieden. Haas habe kein tragfähiges Konzept da...', 'publishedAt': 1702404000, }, { 'id': 'rss-myuser-mycolumn-3d20715877c48f9b58c13809c5abc600-cab31961af28e14e6b601b7e68bcd678', 'userId': 'myuser', 'columnId': 'mycolumn', 'sourceId': 'rss-myuser-mycolumn-3d20715877c48f9b58c13809c5abc600', 'title': 'Oberflächliche Ermittlungen, fehlende Technik im Gerichtssaal: Prozessauftakt zu 2018er-Aufarbeitung wirft Fragen auf', 'link': 'https://www.freiepresse.de/chemnitz/oberflaechliche-ermittlungen-fehlende-technik-im-gerichtssaal-prozessauftakt-zu-2018er-aufarbeitung-wirft-fragen-auf-artikel13168461', 'media': 'https://www.freiepresse.de/DYNIMG/73/46/13067346_W740C2040x1360o0x0.jpg', 'description': 'Der Beginn der Verhandlung war auf 9 Uhr am Montag angesetzt, als die Vernehmung der ersten Zeugin begann, war es 13 Uhr. Sie sollte unter anderem den Weg skizzieren, den die mutmaßlichen Täter am Tattag zu den Tatorten genommen hatten. Vier Angeklagte mit je einem Vertreter auf der einen Seite, Staatsanwalt und drei Nebenkläger-Vertreter auf der anderen. Der Vorsitzende Richter Jürgen Zöllner lie...', 'publishedAt': 1702400400, }]); } finally { fetchWithTimeoutSpy.restore(); getFaviconSpy.restore(); uploadSourceIconSpy.restore(); } assertSpyCall(fetchWithTimeoutSpy, 0, { args: [ 'https://www.freiepresse.de/rss/rss_chemnitz.php', { method: 'get' }, 5000, ], returned: new Promise((resolve) => { resolve(new Response(responseFP, { status: 200 })); }), }); assertSpyCall(getFaviconSpy, 0, { args: ['https://www.freiepresse.de/rss/rss_chemnitz.php'], returned: new Promise((resolve) => { resolve(undefined); }), }); assertSpyCall(uploadSourceIconSpy, 0, { args: [ supabaseClient, { 'id': 'rss-myuser-mycolumn-3d20715877c48f9b58c13809c5abc600', 'columnId': 'mycolumn', 'userId': 'myuser', 'type': 'rss', 'title': 'Freie Presse - Chemnitz', 'options': { 'rss': 'https://www.freiepresse.de/rss/rss_chemnitz.php' }, 'link': 'https://www.freiepresse.de/rss/rss_chemnitz.php', icon: undefined, }, ], returned: new Promise((resolve) => { resolve(undefined); }), }); assertSpyCalls(fetchWithTimeoutSpy, 1); assertSpyCalls(getFaviconSpy, 1); assertSpyCalls(uploadSourceIconSpy, 1); }); const responseHV = ` Hippovideo.io https://www.hippovideo.io/blog Video Personalization & Distribution Platform Thu, 26 Oct 2023 09:14:30 +0000 en-US hourly 1 https://wordpress.org/?v=6.1.4 Loom’s Acquisition: What Lies Ahead for Customer-Facing Functions? https://www.hippovideo.io/blog/looms-acquisition-what-lies-ahead-for-customer-facing-functions/?utm_source=rss&utm_medium=rss&utm_campaign=looms-acquisition-what-lies-ahead-for-customer-facing-functions https://www.hippovideo.io/blog/looms-acquisition-what-lies-ahead-for-customer-facing-functions/#respond Fri, 20 Oct 2023 14:14:08 +0000 https://www.hippovideo.io/blog/?p=49277 Growth of SaaS The Software as a Service (SaaS) industry has undergone a transformative journey over the last decade. Once a budding sector, it has now blossomed into a vast ecosystem teeming with innovative solutions across diverse categories. As businesses worldwide turned their focus towards digital transformation, the demand for SaaS solutions skyrocketed, with startups […]

The post Loom’s Acquisition: What Lies Ahead for Customer-Facing Functions? appeared first on Hippovideo.io.

]]>
Growth of SaaS

The Software as a Service (SaaS) industry has undergone a transformative journey over the last decade. Once a budding sector, it has now blossomed into a vast ecosystem teeming with innovative solutions across diverse categories. As businesses worldwide turned their focus towards digital transformation, the demand for SaaS solutions skyrocketed, with startups and established players alike releasing a plethora of products to address a myriad of challenges faced by their customers.

Central to this evolution is the project management category. Amidst the clutter of tools and platforms, Atlassian has distinguished itself as a luminary, having carved out a niche with its powerful suite of tools like Jira, Confluence, and Bitbucket. Over the years, Atlassian’s commitment to facilitating seamless collaboration and streamlining workflows has enabled it to gain a sizable market share and an enviable reputation.

Parallelly, in the realm of communication tools, Loom emerged in 2015 with a promise to redefine how professionals connect. Offering a novel approach to communication, Loom combined the immediacy of video messaging with the convenience of asynchronous communication, making interactions more personal and efficient. The platform’s unique value proposition quickly garnered attention, allowing Loom to amass a dedicated user base and establish itself as a formidable player in the SaaS space.

Atlassian + Loom

The convergence of these two giants’ paths, as evidenced by Atlassian’s recent acquisition of Loom, brings forth a fascinating chapter in the SaaS narrative, one that underscores the sector’s dynamic nature and the relentless pursuit of innovation.

Loom, with its focus on enhancing communication for internal teams via video messaging, has undoubtedly found a fitting home within Atlassian’s suite. Especially for software developers using Jira, the integration of Loom’s video tools offers a more interactive way to communicate about bugs, code feedback, and other software development concerns.

Hippo Video: Where Video Communication Scales Seamlessly

While Loom is a powerhouse for internal communications, Hippo Video’s capabilities stretch even further, serving both internal teams and those interacting directly with customers. Hippo Video presents itself as a unique offering in the video market with its AI-powered capabilities and diverse use cases for customer-facing teams of all sizes. For those who have been using Loom, or even those considering Loom specifically for external communications, here’s a deeper dive into why Hippo Video might be worth your attention.

Leading the way with category-first features

Ready-to-Use Templates: Time is of the essence in today’s fast-paced world. With a library of pre-built templates tailored for diverse scenarios, Hippo Video ensures you’re never starting from scratch. This accelerates video creation, ensuring you can communicate effectively without unique delay.

AI-Powered Personalization: At its core, Hippo Video uses AI to help businesses connect more intimately with their audience. Personalized videos can lead to deeper engagement, ensuring that your message resonates with each individual viewer.

AI Avatar by Hippo Video

Pioneering Generative AI Technology: As one of the early adopters of Generative AI technology in the video tool segment, Hippo Video offers groundbreaking features like the AI Script Generator, AI Editor, and AI Avatars.

AI Script Generator: Unsure about scripting your video or trying to figure out how to respond to an irate customer? Simply provide some basic prompts, and Hippo Video will generate a script for you. This not only makes video creation simpler but also ensures the content remains engaging.

AI Editor: Video editing can often be a cumbersome process, but with Hippo Video’s AI Editor, it’s as simple as editing a document. The tool transcribes your video into text, allowing you to edit it seamlessly. Want to remove those unnecessary “ums” and “ahs”? Just a click, and they’re gone!

AI Avatar: For times when an instant video is needed, but you’re not camera-ready, Hippo Video’s AI Avatar comes to the rescue. Choose from a range of digital presenters, input your script, pick a voice, and have a polished video ready in mere minutes.

Empowering all customer-facing teams with video

Hippo Video’s wide array of features and AI tools make it an invaluable asset for businesses, seamlessly catering to diverse teams and their specific needs.

Sales: Hippo Video’s personalized videos boost prospecting and lead nurturing, making the outreach more memorable and engaging.

Customer Support: With Hippo Video, the team can easily create knowledge base videos and product tutorials, simplifying complex topics and improving customer understanding.

Customer Success: From onboarding new clients to sharing product updates or quarterly reviews, Hippo Video ensures that the Success Team communicates effectively, enhancing client relations.

L&D:  Training becomes more dynamic and digestible with Hippo Video, allowing the Learning and Development Team to produce content that resonates with its audience.

Product Marketing: The platform empowers the marketing team to create clear and compelling explainer videos, ensuring products are presented in the best light.

Sales Enablement: With Hippo Video, sales training becomes more interactive and valuable, enabling teams to grasp concepts faster and apply them in real-world scenarios.

Try Hippo Video for Free

Conclusion

In summation, while Loom offers robust solutions for internal team communications for those looking to expand their video capabilities externally, Hippo Video brings an array of innovative tools to the table. Its AI-driven features, coupled with ease of use, make it a compelling choice for businesses aiming to elevate their video communication strategy.

The post Loom’s Acquisition: What Lies Ahead for Customer-Facing Functions? appeared first on Hippovideo.io.

]]>
https://www.hippovideo.io/blog/looms-acquisition-what-lies-ahead-for-customer-facing-functions/feed/ 0
`; Deno.test('getRSSFeed - HV', async () => { const fetchWithTimeoutSpy = stub( utils, 'fetchWithTimeout', returnsNext([ new Promise((resolve) => { resolve(new Response(responseHV, { status: 200 })); }), ]), ); const getFaviconSpy = stub( feedutils, 'getFavicon', returnsNext([ new Promise((resolve) => { resolve(undefined); }), ]), ); const uploadSourceIconSpy = stub( feedutils, 'uploadSourceIcon', returnsNext([ new Promise((resolve) => { resolve(undefined); }), ]), ); try { const { source, items } = await getRSSFeed( supabaseClient, undefined, mockProfile, { ...mockSource, options: { rss: 'https://www.hippovideo.io/blog/feed/', }, }, undefined, ); assertEqualsSource(source, { 'id': 'rss-myuser-mycolumn-f09335225050a5529306575010bf8aa4', 'columnId': 'mycolumn', 'userId': 'myuser', 'type': 'rss', 'title': 'Hippovideo.io', 'options': { 'rss': 'https://www.hippovideo.io/blog/feed/' }, 'link': 'https://www.hippovideo.io/blog', }); assertEqualsItems(items, [{ 'id': 'rss-myuser-mycolumn-f09335225050a5529306575010bf8aa4-840819f0740d37f9c7a615f26ffcfa5f', 'userId': 'myuser', 'columnId': 'mycolumn', 'sourceId': 'rss-myuser-mycolumn-f09335225050a5529306575010bf8aa4', 'title': 'Loom’s Acquisition: What Lies Ahead for Customer-Facing Functions?', 'link': 'https://www.hippovideo.io/blog/looms-acquisition-what-lies-ahead-for-customer-facing-functions/?utm_source=rss&utm_medium=rss&utm_campaign=looms-acquisition-what-lies-ahead-for-customer-facing-functions', 'options': { 'video': 'https://www.hippovideo.io/blog/wp-content/uploads/2023/10/AvatarLPHeroVideo2.mp4', }, 'description': '

Growth of SaaS The Software as a Service (SaaS) industry has undergone a transformative journey over the last decade. Once a budding sector, it has now blossomed into a vast ecosystem teeming with innovative solutions across diverse categories. As businesses worldwide turned their focus towards digital transformation, the demand for SaaS solutions skyrocketed, with startups […]

\n

The post Loom’s Acquisition: What Lies Ahead for Customer-Facing Functions? appeared first on Hippovideo.io.

', 'author': 'Nayana', 'publishedAt': 1697811248, }]); } finally { fetchWithTimeoutSpy.restore(); getFaviconSpy.restore(); uploadSourceIconSpy.restore(); } assertSpyCall(fetchWithTimeoutSpy, 0, { args: [ 'https://www.hippovideo.io/blog/feed/', { method: 'get' }, 5000, ], returned: new Promise((resolve) => { resolve(new Response(responseHV, { status: 200 })); }), }); assertSpyCall(getFaviconSpy, 0, { args: ['https://www.hippovideo.io/blog'], returned: new Promise((resolve) => { resolve(undefined); }), }); assertSpyCall(uploadSourceIconSpy, 0, { args: [ supabaseClient, { 'id': 'rss-myuser-mycolumn-f09335225050a5529306575010bf8aa4', 'columnId': 'mycolumn', 'userId': 'myuser', 'type': 'rss', 'title': 'Hippovideo.io', 'options': { 'rss': 'https://www.hippovideo.io/blog/feed/' }, 'link': 'https://www.hippovideo.io/blog', icon: undefined, }, ], returned: new Promise((resolve) => { resolve(undefined); }), }); assertSpyCalls(fetchWithTimeoutSpy, 1); assertSpyCalls(getFaviconSpy, 1); assertSpyCalls(uploadSourceIconSpy, 1); });