mirror of
https://github.com/sudoxnym/habitica.git
synced 2026-08-04 09:39:23 +00:00
74 lines
No EOL
2.3 KiB
CoffeeScript
74 lines
No EOL
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"
|
|
'email-confirmation': "{user1.id}@gmail.com"
|
|
password: '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 |