Files
habitica/test/archive/casper/rest.casper.coffee
Tyler Renelle 29b1320f4a chore(archived tests) Moving unused tests, casper stuff, and
api.mocha.coffee into archive directory. we could depend on git history,
but I want to keep them publicly visible to developers for now since
they may contain valuable test worth porting to our new
setup.
2014-01-16 16:32:53 -07:00

74 lines
2.3 KiB
CoffeeScript

url = 'http://localhost:3000'
utils = require('utils')
casper = require("casper").create()
user1 = {}
user2 = {}
# ---------- Main Stuff ------------
casper.start "#{url}/?play=1", ->
user1 = casper.evaluate -> window.DERBY.app.model.get("_user")
@fill 'form#derby-auth-register',
username: user1.id
email: "{user1.id}@gmail.com"
password: 'habitrpg123'
'password-confirmation': "habitrpg123"
, true
casper.thenOpen "#{url}/logout"
casper.thenOpen "#{url}/?play=1", ->
user2 = @evaluate -> window.DERBY.app.model.get("_user")
casper.then -> @test.assertNotEquals user1.id, user2.id, '2 new users created'
# ---------- REST API ------------
# casper.thenOpen "#{url}/users/#{user.id}"
# casper.thenOpen "#{url}/users/#{user.id}/tasks"
# casper.thenOpen "#{url}/users/#{user.id}/tasks/{taskId}"
taskId = 'productivity'
pomodoro = {
'title': 'Stay Focused',
'service': 'pomodoro',
'icon': 'http://www.veryicon.com/icon/16/Food%20%26%20Drinks/Paradise%20Fruits/Tomato.png'
}
# ---------- v1 ------------
@thenOpen "#{url}/users/#{user2.id}/tasks/#{taskId}/up", {
method: 'post',
data: pomodoro
}, ->
result = JSON.parse @getPageContent()
@test.assertEqual user2.stats.hp, result.hp, 'REST +habit =hp'
@test.assert user2.stats.exp < result.exp, 'REST +habit +exp'
@test.assert user2.stats.money < result.money, 'REST +habit +money'
utils.dump result
@thenOpen "#{url}/users/#{user1.id}/tasks/#{taskId}/down", {
method: 'post',
data: pomodoro
}, ->
result = JSON.parse @getPageContent()
@test.assert user1.stats.hp > result.hp, 'REST -habit -hp'
@test.assertEqual user1.stats.exp, result.exp, 'REST -habit =exp'
@test.assertEqual user1.stats.money, result.money, 'REST -habit =money'
utils.dump result
casper.thenOpen "#{url}/?play=1", ->
# User2 is logged in by now. Make sure we don't get logged in as user1 since that was the last REST call
current = casper.evaluate -> window.DERBY.app.model.get('_user')
casper.then -> casper.test.assertEqual current.id, user2.id, "session remains user2's"
# ---------- v2 ------------
# @thenOpen "#{url}/v2/users/#{uid}/tasks/#{taskId}/down", {
# method: 'post',
# data: pomodoro
# }
# ---------- Run ------------
casper.run ->
@test.renderResults true