mirror of
https://github.com/comatory/fb2iCal
synced 2025-06-05 22:09:25 +02:00
add specs for crawler service
This commit is contained in:
74
test/services/crawler.spec.js
Normal file
74
test/services/crawler.spec.js
Normal file
@@ -0,0 +1,74 @@
|
||||
const chai = require('chai')
|
||||
const sinon = require('sinon')
|
||||
const { expect } = chai
|
||||
const chaiSinon = require('chai-sinon')
|
||||
const { mockRequest, setRequestSpy, clearRequestSpy } = require('../../mocks/request.mock')
|
||||
|
||||
const crawl = require('../../lib/services/crawler')
|
||||
const MockLogger = require('../../mocks/logger.mock')
|
||||
|
||||
chai.use(chaiSinon)
|
||||
jest.mock('request', () => mockRequest)
|
||||
|
||||
describe(crawl, () => {
|
||||
let logger
|
||||
let request
|
||||
|
||||
beforeEach(() => {
|
||||
logger = new MockLogger()
|
||||
clearRequestSpy()
|
||||
})
|
||||
|
||||
it('should return promise', () => {
|
||||
const promise = crawl('https://abc.xyz', { logger })
|
||||
|
||||
expect(promise).to.be.instanceOf(Promise)
|
||||
})
|
||||
|
||||
it('should level log message', (callback) => {
|
||||
logger.on('test:log', ({ message, level, service }) => {
|
||||
expect(message).to.equal('Crawl started for url: https://abc.xyz')
|
||||
expect(level).to.equal('info')
|
||||
expect(service).to.equal('parser')
|
||||
callback()
|
||||
})
|
||||
|
||||
crawl('https://abc.xyz', { logger })
|
||||
})
|
||||
|
||||
|
||||
it('should call request', () => {
|
||||
const spy = setRequestSpy()
|
||||
|
||||
crawl('https://abc.xyz', { logger })
|
||||
|
||||
expect(spy).to.have.been.calledOnce
|
||||
})
|
||||
|
||||
|
||||
it('should call request with URL', () => {
|
||||
const spy = setRequestSpy()
|
||||
|
||||
crawl('https://zzz.yyy', { logger })
|
||||
|
||||
expect(spy.args[0][0].url).to.equal('https://zzz.yyy')
|
||||
})
|
||||
|
||||
|
||||
it('should call request with `Accept-Language` header value', () => {
|
||||
const spy = setRequestSpy()
|
||||
|
||||
crawl('https://zzz.yyy', { logger })
|
||||
|
||||
expect(spy.args[0][0].headers).to.have.property('Accept-Language', 'en-US, en')
|
||||
})
|
||||
|
||||
|
||||
it('should call request with `User-Agent` header value', () => {
|
||||
const spy = setRequestSpy()
|
||||
|
||||
crawl('https://zzz.yyy', { logger })
|
||||
|
||||
expect(spy.args[0][0].headers).to.have.property('User-Agent', 'request')
|
||||
})
|
||||
})
|
Reference in New Issue
Block a user