UNPKG

2.69 kBtext/coffeescriptView Raw
1_ = require 'underscore'
2Browser = require 'zombie'
3app = require '../example'
4artsyXapp = require 'artsy-xapp'
5{ ARTSY_EMAIL, ARTSY_PASSWORD, TWITTER_EMAIL, TWITTER_PASSWORD,
6 FACEBOOK_EMAIL, FACEBOOK_PASSWORD, ARTSY_URL, ARTSY_ID,
7 ARTSY_SECRET } = require '../config'
8
9describe 'Artsy Passport', ->
10
11 before (done) ->
12 artsyXapp.on('error', done).init
13 url: ARTSY_URL
14 id: ARTSY_ID
15 secret: ARTSY_SECRET
16 , -> app.listen 5000, done
17
18 it 'can sign up with email and password', (done) ->
19 Browser.visit 'http://localhost:5000', (e, browser) ->
20 browser
21 .fill('#signup [name="name"]', 'Foobar')
22 .fill('#signup [name="email"]', "ap+#{_.random(0, 1000)}@artsypassport.com")
23 .fill('#signup [name="password"]', 'moofooboo')
24 .pressButton "Signup", ->
25 browser.html().should.containEql 'Personalize!'
26 done()
27
28 it 'can log in and log out with email and password', (done) ->
29 Browser.visit 'http://localhost:5000', (e, browser) ->
30 browser
31 .fill('#login [name=email]', ARTSY_EMAIL)
32 .fill('#login [name=password]', ARTSY_PASSWORD)
33 .pressButton "#login [type=submit]", ->
34 browser.html().should.containEql '<h1>Hello'
35 browser.html().should.containEql ARTSY_EMAIL
36 browser
37 .clickLink "Logout", ->
38 browser.reload ->
39 browser.html().should.containEql '<h1>Login'
40 done()
41
42 it 'cant log in without a csrf', (done) ->
43 Browser.visit 'http://localhost:5000/nocsrf', (e, browser) ->
44 browser
45 .fill('#login [name=email]', ARTSY_EMAIL)
46 .fill('#login [name=password]', ARTSY_PASSWORD)
47 .pressButton "#login [type=submit]", ->
48 browser.html().should.containEql 'ForbiddenError: invalid csrf token'
49 done()
50
51 it 'can log in with facebook', (done) ->
52 Browser.visit 'http://localhost:5000', (e, browser) ->
53 browser.clickLink "Login via Facebook", ->
54 browser.location.href.should.containEql 'facebook.com'
55 browser
56 .fill('email', FACEBOOK_EMAIL)
57 .fill('pass', FACEBOOK_PASSWORD)
58 .pressButton 'Log In', ->
59 console.log browser.html()
60 done()
61
62 it 'can log in with twitter', (done) ->
63 Browser.visit 'http://localhost:5000', (e, browser) ->
64 browser.clickLink "Login via Twitter", ->
65 browser.location.href.should.containEql 'twitter.com'
66 browser
67 .fill('session[username_or_email]', TWITTER_EMAIL)
68 .fill('session[password]', TWITTER_PASSWORD)
69 .pressButton 'Authorize app', ->
70 console.log browser.html()
71 done()