mirror of
https://github.com/sudoxnym/habitica.git
synced 2026-08-05 03:52:14 +00:00
Merge branch 'develop' of github.com:lefnire/habitrpg into develop
This commit is contained in:
commit
89e5ec2d10
8 changed files with 101 additions and 94 deletions
|
|
@ -42,4 +42,4 @@ casper.then ->
|
||||||
|
|
||||||
# ---------- Run ------------
|
# ---------- Run ------------
|
||||||
casper.run ->
|
casper.run ->
|
||||||
@test.renderResults true
|
casper.test.renderResults true
|
||||||
|
|
@ -1,38 +1,38 @@
|
||||||
helpers = require('./helpers')
|
helpers = new require('./test/casper/helpers')()
|
||||||
casper = helpers.casper
|
casper = helpers.casper
|
||||||
utils = helpers.utils
|
utils = helpers.utils
|
||||||
url = helpers.url
|
url = helpers.playUrl
|
||||||
|
|
||||||
# ---------- Init ------------
|
# ---------- Basic Reset Test ------------
|
||||||
|
|
||||||
casper.start url, ->
|
casper.start url, ->
|
||||||
@test.assertTitle "HabitRPG | Gamify Your Life", "[√] Page Title"
|
casper.test.assertTitle 'HabitRPG | Gamify Your Life', 'Page Title'
|
||||||
|
|
||||||
# ---------- Reset ------------
|
# Gain some GP and lose some HP
|
||||||
# @then ->
|
|
||||||
# utils.dump @evaluate -> window.DERBY.app.model.get('_user.auth')
|
|
||||||
# @click '#reset-modal button:contains(Reset)'
|
|
||||||
|
|
||||||
# Clear tasks
|
|
||||||
casper.then ->
|
casper.then ->
|
||||||
#TODO test after stats have been modified
|
casper.repeat 5, -> casper.click '.habits a[data-direction="down"]'
|
||||||
casper.repeat 5, -> @click '.habits a[data-direction="down"]'
|
casper.repeat 5, -> casper.click '.habits a[data-direction="up"]'
|
||||||
casper.repeat 5, -> @click '.habits a[data-direction="up"]'
|
|
||||||
userObj = @evaluate ->
|
# Reset
|
||||||
window.DERBY.app.reset()
|
casper.then ->
|
||||||
return window.DERBY.app.model.get('_user')
|
helpers.reset()
|
||||||
|
|
||||||
|
# Test that reset worked
|
||||||
|
casper.then ->
|
||||||
|
model = helpers.getModelDelayed (model) ->
|
||||||
|
casper.echo 'testing user after reset'
|
||||||
|
casper.test.assertEqual model._user.tasks, {}, 'no tasks'
|
||||||
|
casper.test.assertEqual model._user.stats, {hp:50, gp:0, exp:0, lvl:1}, 'stats'
|
||||||
|
|
||||||
@test.assertEqual userObj.tasks.length, 0
|
|
||||||
@test.assertEqual userObj.stats.hp, 50
|
|
||||||
|
|
||||||
# ---------- Misc Pages ------------
|
# ---------- Misc Pages ------------
|
||||||
|
|
||||||
casper.thenOpen "#{url}/terms", ->
|
casper.thenOpen "#{helpers.baseUrl}/terms", ->
|
||||||
@test.assertTitle "Terms Of Use", "terms page works"
|
casper.test.assertTitle "Terms Of Use", "terms page works"
|
||||||
|
|
||||||
casper.thenOpen "#{url}/privacy", ->
|
casper.thenOpen "#{helpers.baseUrl}/privacy", ->
|
||||||
@test.assertTitle "Privacy Policy", "privacy page works"
|
casper.test.assertTitle "Privacy Policy", "privacy page works"
|
||||||
|
|
||||||
# ---------- Run ------------
|
# ---------- Run ------------
|
||||||
casper.run ->
|
casper.run ->
|
||||||
@test.renderResults true
|
casper.test.renderResults true
|
||||||
|
|
@ -1,38 +1,39 @@
|
||||||
helper = new require('./test/casper/helpers')()
|
helpers = new require('./test/casper/helpers')()
|
||||||
casper = helper.casper
|
casper = helpers.casper
|
||||||
utils = helper.utils
|
utils = helpers.utils
|
||||||
url = helper.url
|
url = helpers.playUrl
|
||||||
|
|
||||||
casper.start url + '/?play=1'
|
casper.start url
|
||||||
|
|
||||||
# ---------- Register ------------
|
# # ---------- Register ------------
|
||||||
user = undefined
|
# casper.then -> helpers.register()
|
||||||
casper.then -> helper.register()
|
# casper.then -> user = helpers.getUser()
|
||||||
casper.then -> user = helper.getUser()
|
|
||||||
|
|
||||||
# ---------- Habits ------------
|
# ---------- Habits ------------
|
||||||
casper.then ->
|
casper.then ->
|
||||||
helper.reset()
|
helpers.reset()
|
||||||
helper.addTasks()
|
helpers.addTasks(['habit'])
|
||||||
|
|
||||||
casper.then ->
|
casper.then ->
|
||||||
u = helper.userBeforeAfter (-> casper.click '.habits a[data-direction="down"]')
|
helpers.modelBeforeAfter (-> casper.click '.habits a[data-direction="down"]'), (model) ->
|
||||||
casper.test.assert u.before.stats.hp > u.after.stats.hp, '-habit -hp'
|
casper.test.assert model.before._user.stats.hp > model.after._user.stats.hp, '-habit -hp'
|
||||||
casper.test.assert u.before.stats.exp == u.after.stats.exp, '-habit =exp'
|
casper.test.assertEquals model.before._user.stats.exp, model.after._user.stats.exp, '-habit =exp'
|
||||||
|
casper.test.assertEquals model.before._user.stats.gp, model.after._user.stats.gp, '-habit =gp'
|
||||||
|
|
||||||
casper.then ->
|
casper.then ->
|
||||||
u = helper.userBeforeAfter (-> casper.click '.habits a[data-direction="up"]')
|
helpers.modelBeforeAfter (-> casper.click '.habits a[data-direction="up"]'), (model) ->
|
||||||
casper.test.assert u.before.stats.exp < u.after.stats.exp, '+habit +exp'
|
casper.test.assert model.before._user.stats.exp < model.after._user.stats.exp, '+habit +exp'
|
||||||
casper.test.assertEquals u.before.stats.hp, u.after.stats.hp, '+habit =hp'
|
casper.test.assert model.before._user.stats.gp < model.after._user.stats.gp, '+habit +gp'
|
||||||
|
casper.test.assertEquals model.before._user.stats.hp, model.after._user.stats.hp, '+habit =hp'
|
||||||
|
|
||||||
# Test Death
|
# Test Death
|
||||||
casper.then ->
|
casper.then ->
|
||||||
@repeat 50, (-> casper.click '.habits a[data-direction="down"]')
|
casper.repeat 50, (-> casper.click '.habits a[data-direction="down"]')
|
||||||
casper.then ->
|
casper.then ->
|
||||||
u = helper.getUser()
|
helpers.getModelDelayed (model) ->
|
||||||
@test.assertEquals u.stats.hp, 0, 'hp==0 (death by habits)'
|
casper.test.assertEquals model._user.stats.hp, 0, 'hp==0 (death by habits)'
|
||||||
@test.assertEquals u.stats.lvl, 0, 'lvl==0 (death by habits)'
|
casper.test.assertEquals model._user.stats.lvl, 0, 'lvl==0 (death by habits)'
|
||||||
@test.assert(@visible('#dead-modal'), 'Revive Modal Visible')
|
casper.test.assertVisible '#dead-modal', 'Revive Modal Visible'
|
||||||
|
|
||||||
# ---------- Run ------------
|
# ---------- Run ------------
|
||||||
casper.run ->
|
casper.run ->
|
||||||
|
|
|
||||||
|
|
@ -44,6 +44,10 @@ module.exports = ->
|
||||||
casper.evaluate -> window.DERBY.app.reset()
|
casper.evaluate -> window.DERBY.app.reset()
|
||||||
|
|
||||||
getModelDelayed: (cb) ->
|
getModelDelayed: (cb) ->
|
||||||
|
# This time is needed for derby to have enough time to update all it's data.
|
||||||
|
# It still happens sometimes that the retrieved model does not contain any
|
||||||
|
# data. It might be worth to do some basic checks on the model here, and if
|
||||||
|
# it doesn't look OK, wait a bit longer and get it again.
|
||||||
casper.wait SYNC_WAIT_TIME, ->
|
casper.wait SYNC_WAIT_TIME, ->
|
||||||
cb(getModel())
|
cb(getModel())
|
||||||
|
|
||||||
|
|
@ -82,9 +86,9 @@ module.exports = ->
|
||||||
register: ->
|
register: ->
|
||||||
casper.fill 'form#derby-auth-register',
|
casper.fill 'form#derby-auth-register',
|
||||||
username: random
|
username: random
|
||||||
email: random + '@gmail.com'
|
email: random + '@example.com'
|
||||||
'email-confirmation': random + '@gmail.com'
|
|
||||||
password: random
|
password: random
|
||||||
|
'password-confirmation': random
|
||||||
, true
|
, true
|
||||||
|
|
||||||
login: ->
|
login: ->
|
||||||
|
|
|
||||||
22
test/casper/items.casper.coffee
Normal file
22
test/casper/items.casper.coffee
Normal file
|
|
@ -0,0 +1,22 @@
|
||||||
|
helpers = new require('./test/casper/helpers')()
|
||||||
|
casper = helpers.casper
|
||||||
|
utils = helpers.utils
|
||||||
|
url = helpers.playUrl
|
||||||
|
|
||||||
|
casper.start url
|
||||||
|
|
||||||
|
# ---------- Items (in-game rewards) ------------
|
||||||
|
casper.then ->
|
||||||
|
helpers.reset()
|
||||||
|
helpers.addTasks(['habit'], 1)
|
||||||
|
|
||||||
|
casper.then -> casper.test.assertDoesntExist 'ul.items', 'no items after reset'
|
||||||
|
casper.then -> casper.repeat 70, ->
|
||||||
|
casper.click '.habits a[data-direction="up"]'
|
||||||
|
casper.then ->
|
||||||
|
casper.test.assertVisible '.item-store-popover', 'store popover visible'
|
||||||
|
casper.test.assertExists 'ul.items', 'items appear after lvl up'
|
||||||
|
|
||||||
|
# ---------- Run ------------
|
||||||
|
casper.run ->
|
||||||
|
casper.test.renderResults true
|
||||||
|
|
@ -1,12 +1,12 @@
|
||||||
helper = new require('./test/casper/helpers')()
|
helpers = new require('./test/casper/helpers')()
|
||||||
casper = helper.casper
|
casper = helpers.casper
|
||||||
utils = helper.utils
|
utils = helpers.utils
|
||||||
url = helper.url
|
url = helpers.playUrl
|
||||||
|
|
||||||
casper.start url + '/?play=1'
|
casper.start url
|
||||||
|
|
||||||
casper.repeat 50, ->
|
casper.repeat 50, ->
|
||||||
casper.reload()
|
casper.reload()
|
||||||
|
|
||||||
casper.run ->
|
casper.run ->
|
||||||
@test.renderResults true
|
casper.test.renderResults true
|
||||||
|
|
@ -1,35 +1,34 @@
|
||||||
helper = new require('./test/casper/helpers')()
|
helpers = new require('./test/casper/helpers')()
|
||||||
casper = helper.casper
|
casper = helpers.casper
|
||||||
utils = helper.utils
|
utils = helpers.utils
|
||||||
url = helper.url
|
url = helpers.playUrl
|
||||||
|
|
||||||
casper.start url + '/?play=1'
|
casper.start url
|
||||||
|
|
||||||
# ---------- Register ------------
|
# ---------- Register ------------
|
||||||
user = undefined
|
registeredUser = undefined
|
||||||
casper.then -> helper.register()
|
casper.then -> helpers.register()
|
||||||
casper.then -> user = helper.getUser()
|
casper.then ->
|
||||||
|
helpers.getModelDelayed (model) ->
|
||||||
|
registeredUser = model
|
||||||
|
|
||||||
casper.then -> casper.reload()
|
casper.then -> casper.reload()
|
||||||
casper.then ->
|
casper.then ->
|
||||||
nowUser = helper.getUser()
|
helpers.getModelDelayed (nowModel) ->
|
||||||
casper.then ->
|
casper.test.assertEqual registeredUser._userId, nowModel._userId, 'user registered and maintained session'
|
||||||
casper.test.assertEqual user.id, nowUser.id, 'user registered and maintained session'
|
|
||||||
|
|
||||||
# ---------- Log Out ------------
|
# ---------- Log Out ------------
|
||||||
casper.thenOpen helper.url + '/logout'
|
casper.thenOpen helpers.baseUrl + '/logout'
|
||||||
casper.thenOpen helper.url + '/?play=1'
|
casper.thenOpen helpers.playUrl
|
||||||
casper.then ->
|
casper.then ->
|
||||||
nowUser = helper.getUser()
|
helpers.getModelDelayed (nowModel) ->
|
||||||
casper.then ->
|
casper.test.assertNotEquals registeredUser._userId, nowModel._userId, 'user logged out'
|
||||||
casper.test.assertNotEquals user.id, nowUser.id, 'user logged out'
|
|
||||||
|
|
||||||
# ---------- Login ------------
|
# ---------- Login ------------
|
||||||
casper.then -> helper.login()
|
casper.then -> helpers.login()
|
||||||
casper.then -> utils.dump casper.debugHTML '#derby-auth-login'
|
|
||||||
casper.then ->
|
casper.then ->
|
||||||
nowUser = helper.getUser()
|
helpers.getModelDelayed (nowModel) ->
|
||||||
casper.then ->
|
casper.test.assertEqual registeredUser._userId, nowModel._userId, 'user logged out'
|
||||||
casper.test.assertEqual user.id, nowUser.id, 'user logged in'
|
|
||||||
|
|
||||||
# ---------- Run ------------
|
# ---------- Run ------------
|
||||||
casper.run ->
|
casper.run ->
|
||||||
|
|
|
||||||
|
|
@ -1,19 +0,0 @@
|
||||||
helper = new require('./test/casper/helpers')()
|
|
||||||
casper = helper.casper
|
|
||||||
utils = helper.utils
|
|
||||||
url = helper.url
|
|
||||||
|
|
||||||
casper.start url + '/?play=1'
|
|
||||||
|
|
||||||
# ---------- Rewardsj1 ------------
|
|
||||||
casper.then ->
|
|
||||||
helper.reset()
|
|
||||||
helper.addTasks()
|
|
||||||
|
|
||||||
casper.then -> @test.assertDoesntExist('ul.items')
|
|
||||||
casper.then -> @repeat 50, -> casper.click('.habits a[data-direction="up"]')
|
|
||||||
casper.then -> @test.assertExists('ul.items')
|
|
||||||
|
|
||||||
# ---------- Run ------------
|
|
||||||
casper.run ->
|
|
||||||
casper.test.renderResults true
|
|
||||||
Loading…
Reference in a new issue