1 |
|
2 | express= require 'express'
|
3 | turnout= require '../'
|
4 |
|
5 | Promise= require 'bluebird'
|
6 | request= Promise.promisify(require 'request')
|
7 | cheerio= require 'cheerio'
|
8 |
|
9 |
|
10 | port= 59798
|
11 | url= 'http://localhost:'+port+'/'
|
12 |
|
13 |
|
14 | describe 'expressTurnout',->
|
15 | server= null
|
16 | beforeEach (done)->
|
17 | app= express()
|
18 | app.use turnout()
|
19 | app.use (req,res)-> res.sendFile __dirname+'/fixture.html'
|
20 |
|
21 | server= app.listen port,done
|
22 | afterEach ->
|
23 | server.close()
|
24 |
|
25 | describe '?_escaped_fragment_',->
|
26 | it 'prerender /',(done)->
|
27 | request url+'?_escaped_fragment_'
|
28 | .spread (response)->
|
29 | expect(response.statusCode).toBe 200
|
30 | expect(response.headers['x-powered-by']).toBe 'Express-turnout'
|
31 |
|
32 | $= cheerio response.body
|
33 | expect($.find('h1').text()).toBe 'first'
|
34 | expect($.find('a').text()).toBe 'second'
|
35 |
|
36 | done()
|
37 |
|
38 | it 'prerender /second',(done)->
|
39 | request url+'second?_escaped_fragment_'
|
40 | .spread (response)->
|
41 | expect(response.statusCode).toBe 200
|
42 | expect(response.headers['x-powered-by']).toBe 'Express-turnout'
|
43 |
|
44 | $= cheerio response.body
|
45 | expect($.find('h1').text()).toBe 'second'
|
46 | expect($.find('a').text()).toBe 'first'
|
47 |
|
48 | done()
|
49 |
|
50 | describe 'User-Agent: Googlebot',->
|
51 | it 'prerender /',(done)->
|
52 | request
|
53 | url: url
|
54 | headers:
|
55 | 'User-Agent': 'Googlebot'
|
56 | .spread (response)->
|
57 | expect(response.statusCode).toBe 200
|
58 | expect(response.headers['x-powered-by']).toBe 'Express-turnout'
|
59 |
|
60 | $= cheerio response.body
|
61 | expect($.find('h1').text()).toBe 'first'
|
62 | expect($.find('a').text()).toBe 'second'
|
63 |
|
64 | done()
|
65 |
|
66 | it 'prerender /second',(done)->
|
67 | request
|
68 | url: url+'second'
|
69 | headers:
|
70 | 'User-Agent': 'Googlebot'
|
71 | .spread (response)->
|
72 | expect(response.statusCode).toBe 200
|
73 | expect(response.headers['x-powered-by']).toBe 'Express-turnout'
|
74 |
|
75 | $= cheerio response.body
|
76 | expect($.find('h1').text()).toBe 'second'
|
77 | expect($.find('a').text()).toBe 'first'
|
78 |
|
79 | done()
|
80 |
|
81 | describe 'User-Agent: Twitterbot',->
|
82 | it 'prerender /',(done)->
|
83 | request
|
84 | url: url
|
85 | headers:
|
86 | 'User-Agent': 'Twitterbot'
|
87 | .spread (response)->
|
88 | expect(response.statusCode).toBe 200
|
89 | expect(response.headers['x-powered-by']).toBe 'Express-turnout'
|
90 |
|
91 | $= cheerio response.body
|
92 | expect($.find('h1').text()).toBe 'first'
|
93 | expect($.find('a').text()).toBe 'second'
|
94 |
|
95 | done()
|
96 |
|
97 | it 'prerender /second',(done)->
|
98 | request
|
99 | url: url+'second'
|
100 | headers:
|
101 | 'User-Agent': 'Twitterbot'
|
102 | .spread (response)->
|
103 | expect(response.statusCode).toBe 200
|
104 | expect(response.headers['x-powered-by']).toBe 'Express-turnout'
|
105 |
|
106 | $= cheerio response.body
|
107 | expect($.find('h1').text()).toBe 'second'
|
108 | expect($.find('a').text()).toBe 'first'
|
109 |
|
110 | done()
|