loopback-component-satellizer
Version:
A loopback module for satellizer
102 lines (80 loc) • 2.77 kB
text/coffeescript
expect = require('chai').expect
loopback = require 'loopback'
nock = require 'nock'
request = require 'supertest'
component = require '../lib/index.js'
describe 'Twitter module', ->
app = null
agent = null
Account = null
first = null
second = null
third = null
beforeEach ->
app = require '../example/server/server.js'
app.datasources.db.automigrate()
agent = request app
Account = app.models.Account
it 'should populate model', ->
expect(Account).to.exist
expect(Account.twitter).to.exist
profile =
id: 'profile_id'
screen_name: 'user_example'
profile_image_url: 'http://picture.com/_normal'
describe 'the first call', ->
beforeEach ->
first = nock 'https://api.twitter.com'
.post '/oauth/request_token'
.reply 200, 'oauth_token=oauth_token&oauth_verifier=oauth_verifier'
describe 'with POST verb', ->
it 'should return the token', (done) ->
agent.post '/api/accounts/twitter'
.end (err, res) ->
expect(err).to.not.exist
expect(res.statusCode).to.eql 200
expect(res.body).to.exist
expect(first.isDone()).to.eql true
done err
describe 'with GET verb', ->
it 'should return the token', (done) ->
agent.get '/api/accounts/twitter'
.end (err, res) ->
expect(err).to.not.exist
expect(res.statusCode).to.eql 200
expect(res.body).to.exist
expect(first.isDone()).to.eql true
done err
describe 'the second call', ->
beforeEach ->
second = nock 'https://api.twitter.com'
.post '/oauth/access_token'
.reply 200, 'oauth_token=oauth_token&screen_name=screen_name'
beforeEach ->
third = nock 'https://api.twitter.com'
.get '/1.1/users/show.json?screen_name=screen_name'
.reply 200, profile
describe 'with POST verb', ->
it 'should create the player', (done) ->
agent.post '/api/accounts/twitter'
.send
oauth_token: 'oauthToken'
oauth_verifier: 'oauthVerifier'
.end (err, res) ->
expect(err).to.not.exist
expect(res.statusCode).to.eql 200
expect(second.isDone()).to.eql true
expect(third.isDone()).to.eql true
done err
describe 'with GET verb', ->
it 'should create the player', (done) ->
agent.get '/api/accounts/twitter'
.query
oauth_token: 'oauthToken'
oauth_verifier: 'oauthVerifier'
.end (err, res) ->
expect(err).to.not.exist
expect(res.statusCode).to.eql 200
expect(second.isDone()).to.eql true
expect(third.isDone()).to.eql true
done err