diff --git a/src/__tests__/ScrapingService.test.ts b/src/__tests__/ScrapingService.test.ts index 13bc00c..ac91c67 100644 --- a/src/__tests__/ScrapingService.test.ts +++ b/src/__tests__/ScrapingService.test.ts @@ -55,5 +55,24 @@ describe('ScrapingService', () => { await expect(scrapingService.getFeedCount()).rejects.toThrow(errorMessage); expect(mockFeedRepository.count).toHaveBeenCalled(); }); + + test('should save feed item to repository', async () => { + const feedData = { + title: 'Test News', + description: 'Test description', + url: 'https://example.com/news', + source: 'El PaĆ­s' as any, + publishedAt: new Date(), + isManual: false + }; + + const savedFeed = { _id: '1', ...feedData }; + mockFeedRepository.create.mockResolvedValue(savedFeed); + + const result = await scrapingService.saveFeedItem(feedData); + + expect(mockFeedRepository.create).toHaveBeenCalledWith(feedData); + expect(result).toEqual(savedFeed); + }); }); }); \ No newline at end of file diff --git a/src/services/ScrapingService.ts b/src/services/ScrapingService.ts index de3cc89..a0e7c25 100644 --- a/src/services/ScrapingService.ts +++ b/src/services/ScrapingService.ts @@ -1,4 +1,5 @@ import { IFeedRepository } from '../repositories/FeedRepository'; +import { IFeed } from '../types/Feed'; export class ScrapingService { constructor(private feedRepository: IFeedRepository) {} @@ -14,4 +15,8 @@ export class ScrapingService { async getFeedCount(): Promise { return await this.feedRepository.count(); } + + async saveFeedItem(feedData: Omit): Promise { + return await this.feedRepository.create(feedData); + } } \ No newline at end of file