mirror of
https://github.com/HabitRPG/habitica.git
synced 2025-12-19 07:37:25 +01:00
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.
74 lines
2.3 KiB
CoffeeScript
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 |