UNPKG

1.64 kBJavaScriptView Raw
1/*jshint expr:true */
2'use strict';
3
4const Crawler = require('../lib/crawler');
5const request = require('request');
6const expect = require('chai').expect;
7
8// settings for nock to mock http server
9const nock = require('nock');
10
11describe('Jar Options', function() {
12
13 before(function() {
14 nock.cleanAll();
15 nock('http://test.crawler.com/').get('/setCookie').reply(function() {
16 let response = [
17 200,
18 'ok',
19 { 'Set-Cookie': `ping=pong; Domain=.crawler.com; Expires=${new Date(Date.now()+86400000).toUTCString()}; Path=/` }
20 ];
21 return response;
22 }).persist();
23 nock('http://test.crawler.com/').get('/getCookie').reply(200, function() {
24 return this.req.headers.cookie;
25 }).persist();
26 });
27
28 after(function() {
29 delete require.cache[nock];
30 });
31
32 let jar = request.jar();
33 jar.setCookie(request.cookie('foo=bar'), 'http://test.crawler.com');
34
35 let crawler = new Crawler({
36 jquery: false,
37 jar: jar
38 });
39
40 it('should send with cookie when setting jar options', function(finishTest) {
41 crawler.queue({
42 uri: 'http://test.crawler.com/getCookie',
43 callback: (error, response, done) => {
44 expect(error).to.be.null;
45 expect(response.body).to.equal(jar.getCookieString('http://test.crawler.com'));
46 done();
47 finishTest();
48 }
49 });
50 });
51
52 it('should set cookie when response set-cookie headers exist', function(finishTest) {
53 crawler.queue({
54 uri: 'http://test.crawler.com/setCookie',
55 callback: (error, response, done) => {
56 expect(error).to.be.null;
57 expect(jar.getCookieString('http://test.crawler.com').indexOf('ping=pong') > -1).to.be.true;
58 done();
59 finishTest();
60 }
61 });
62 });
63});
\No newline at end of file