test Scraping Service adding item to repo
This commit is contained in:
@ -55,5 +55,24 @@ describe('ScrapingService', () => {
|
|||||||
await expect(scrapingService.getFeedCount()).rejects.toThrow(errorMessage);
|
await expect(scrapingService.getFeedCount()).rejects.toThrow(errorMessage);
|
||||||
expect(mockFeedRepository.count).toHaveBeenCalled();
|
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);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
@ -1,4 +1,5 @@
|
|||||||
import { IFeedRepository } from '../repositories/FeedRepository';
|
import { IFeedRepository } from '../repositories/FeedRepository';
|
||||||
|
import { IFeed } from '../types/Feed';
|
||||||
|
|
||||||
export class ScrapingService {
|
export class ScrapingService {
|
||||||
constructor(private feedRepository: IFeedRepository) {}
|
constructor(private feedRepository: IFeedRepository) {}
|
||||||
@ -14,4 +15,8 @@ export class ScrapingService {
|
|||||||
async getFeedCount(): Promise<number> {
|
async getFeedCount(): Promise<number> {
|
||||||
return await this.feedRepository.count();
|
return await this.feedRepository.count();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async saveFeedItem(feedData: Omit<IFeed, '_id' | 'createdAt' | 'updatedAt'>): Promise<IFeed> {
|
||||||
|
return await this.feedRepository.create(feedData);
|
||||||
|
}
|
||||||
}
|
}
|
Reference in New Issue
Block a user