UNPKG

3.03 kBtext/coffeescriptView Raw
1# Dependencies
2express= require 'express'
3turnout= require '../'
4
5Promise= require 'bluebird'
6request= Promise.promisify(require 'request')
7cheerio= require 'cheerio'
8
9# Environment
10port= 59798
11url= 'http://localhost:'+port+'/'
12
13# Spec
14describe '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()