const chai = require('chai') const { expect } = chai const chaiSinon = require('chai-sinon') chai.use(chaiSinon) const MockLogger = require('../../mocks/logger.mock') const { mockCrawl, setMockCrawlResult, setMockCrawlErrorResult, clearMockCrawlResult, } = require('../../mocks/crawler.mock') const retrieveICS = require('../../lib/services/ics-retriever') jest.mock('../../lib/services/crawler', () => mockCrawl) describe(retrieveICS, () => { let logger beforeEach(() => { logger = new MockLogger() clearMockCrawlResult() }) it('should use create ICS contents', async () => { const html = `
` setMockCrawlResult(html) const icsContent = await retrieveICS('https://facebook.com/events/123', { logger }) expect(icsContent).to.be.ok }) it('should use create ICS contents based on LDJSON', async () => { const html = ` ` setMockCrawlResult(html) const icsContent = await retrieveICS('https://facebook.com/events/123', { logger }) expect(icsContent).to.include('SUMMARY:Test Event') expect(icsContent).to.include('LOCATION:Location X') }) it('should use create ICS contents based on DOM', async () => { const html = `123 Main St.\nAcmeTownMain area |