diff --git a/Gruntfile.js b/Gruntfile.js index 0447b549d5..f669f21901 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -128,7 +128,6 @@ module.exports = function(grunt) { grunt.registerTask('build:test', ['test:prepare:translations', 'build:dev']); grunt.registerTask('test:prepare:translations', function() { - require('coffee-script'); var i18n = require('./website/src/libs/i18n'), fs = require('fs'); fs.writeFileSync('test/spec/mocks/translations.js', diff --git a/package.json b/package.json index e5dc205bfd..56b2faa3a9 100644 --- a/package.json +++ b/package.json @@ -13,7 +13,6 @@ "bower": "~1.3.12", "browserify": "~12.0.1", "coffee-script": "1.6.x", - "coffeeify": "0.6.0", "connect-ratelimit": "0.0.7", "coupon-code": "~0.3.0", "domain-middleware": "~0.1.0", @@ -97,7 +96,6 @@ "devDependencies": { "chai": "^3.4.0", "chai-as-promised": "^5.1.0", - "coffee-coverage": "~0.4.2", "coveralls": "^2.11.2", "csv": "~0.3.6", "deep-diff": "~0.1.4", diff --git a/register-handlers.js b/register-handlers.js deleted file mode 100644 index 7a6c57a91a..0000000000 --- a/register-handlers.js +++ /dev/null @@ -1,7 +0,0 @@ -if(process.env.COVERAGE) { - require('coffee-coverage').register({ - path: 'abbr', - basePath: __dirname + '/common/script', - initAll: true, - }); -} diff --git a/tasks/gulp-console.js b/tasks/gulp-console.js index 95a1962fd4..07512c6357 100644 --- a/tasks/gulp-console.js +++ b/tasks/gulp-console.js @@ -1,5 +1,3 @@ -import 'coffee-script'; - import mongoose from 'mongoose'; import autoinc from 'mongoose-id-autoinc'; import logging from '../website/src/libs/logging'; diff --git a/tasks/gulp-eslint.js b/tasks/gulp-eslint.js index ec8866c4dc..92dd25947c 100644 --- a/tasks/gulp-eslint.js +++ b/tasks/gulp-eslint.js @@ -2,7 +2,7 @@ import gulp from 'gulp'; import eslint from 'gulp-eslint'; import _ from 'lodash'; -// TODO remove once we upgrade to lodash 3 +// TODO remove once we upgrade to lodash 3 const defaultsDeep = _.partialRight(_.merge, _.defaults); const shared = { @@ -19,7 +19,6 @@ const shared = { }; gulp.task('lint:client', () => { - // Ignore .coffee files return gulp.src(['./website/public/js/**/*.js']) .pipe(eslint(defaultsDeep({ env: { @@ -31,7 +30,6 @@ gulp.task('lint:client', () => { }); gulp.task('lint:server', () => { - // Ignore .coffee files return gulp.src(['./website/src/**/*.js']) .pipe(eslint(defaultsDeep({ env: { @@ -42,4 +40,4 @@ gulp.task('lint:server', () => { .pipe(eslint.failAfterError()); }); -gulp.task('lint', ['lint:server', 'lint:client']); \ No newline at end of file +gulp.task('lint', ['lint:server', 'lint:client']); diff --git a/test/archive/README.md b/test/archive/README.md deleted file mode 100644 index 27eaee4c77..0000000000 --- a/test/archive/README.md +++ /dev/null @@ -1,3 +0,0 @@ -These are tests which are no longer used. While we could delete them and depend on git history for later lookup, -I think it's important these are visible to developers since they may have valuable tests which haven't been ported -to our new setup. Once a file is ported or determined useless, feel free to delete. \ No newline at end of file diff --git a/test/archive/api.mocha.coffee b/test/archive/api.mocha.coffee deleted file mode 100644 index 81a5499ae9..0000000000 --- a/test/archive/api.mocha.coffee +++ /dev/null @@ -1,655 +0,0 @@ -_ = require 'lodash' -expect = require 'expect.js' -async = require 'async' -superagentDefaults = require 'superagent-defaults' - -request = superagentDefaults() - -conf = require("nconf") -conf.argv().env().file({file: __dirname + '../config.json'}).defaults -conf.set('port','1337') - -# Override normal ENV values with nconf ENV values (ENV values are used the same way without nconf) -#FIXME can't get nconf file above to load... -process.env.BASE_URL = conf.get("BASE_URL") -process.env.FACEBOOK_KEY = conf.get("FACEBOOK_KEY") -process.env.FACEBOOK_SECRET = conf.get("FACEBOOK_SECRET") -process.env.NODE_DB_URI = 'mongodb://localhost/habitrpg' - -User = require('../../src/models/user').model -Group = require('../../src/models/group').model -Challenge = require('../../src/models/challenge').model - -app = require '../../src/server' - -## monkey-patch expect.js for better diffs on mocha -## see: https://github.com/LearnBoost/expect.js/pull/34 -#origBe = expect.Assertion::be -#expect.Assertion::be = expect.Assertion::equal = (obj) -> -# @_expected = obj -# origBe.call this, obj - -# Custom modules -shared = require 'habitrpg-shared' - -###### Helpers & Variables ###### - -model = null -uuid = null -taskPath = null -baseURL = 'http://localhost:3000/api/v2' - -### - expect().eql expects object keys to be in the correct order, this sorts that out -### - -expectUserEqual = (u1, u2) -> - [u1, u2] = _.map [u1, u2], (obj) -> - 'update__ stats.toNextLevel stats.maxHealth __v'.split(' ').forEach (path) -> - helpers.dotSet path, null, obj - sorted = {} - _.each _.keys(obj).sort(), (k) -> sorted[k] = obj[k] - sorted.tasks = _.sortBy sorted.tasks, 'id' - sorted -# console.log {u1, u2} - expect(u1).to.eql(u2) - -expectSameValues = (obj1, obj2, paths) -> - _.each paths, (k) -> - expect(helpers.dotGet(k,obj1)).to.eql helpers.dotGet(k,obj2) - -expectCode = (res, code) -> - expect(res.body.err).to.be undefined if code is 200 - expect(res.statusCode).to.be code - -###### Specs ###### - -describe 'API', -> - user = null - _id = null - apiToken = null - username = null - password = null - - registerNewUser = (cb, main=true)-> - randomID = shared.uuid() - [username,password] = [randomID,randomID] if main - request.post("#{baseURL}/register") - .set('Accept', 'application/json') - .send({ - username: randomID - password: randomID - confirmPassword: randomID - email: "#{randomID}@gmail.com" - }) - .end (res) -> - return cb(null,res.body) unless main - {_id,apiToken} = res.body - console.log {_id,apiToken} - User.findOne {_id, apiToken}, (err, _user) -> - expect(err).to.not.be.ok - user = _user - request - .set('Accept', 'application/json') - .set('X-API-User', _id) - .set('X-API-Key', apiToken) - cb null, res.body - - before (done)-> - require '../../src/server' #start the server - # then wait for it to do it's thing. TODO make a cb-compatible export of server - setTimeout done, 2000 - - describe 'Without token or user id', -> - it '/api/v2/status', (done) -> - request.get("#{baseURL}/status") - .set('Accept', 'application/json') - .end (res) -> - expect(res.statusCode).to.be 200 - expect(res.body.status).to.be 'up' - done() - - it '/api/v2/user', (done) -> - request.get("#{baseURL}/user") - .set('Accept', 'application/json') - .end (res) -> - expect(res.statusCode).to.be 401 - expect(res.body.err).to.be 'You must include a token and uid (user id) in your request' - done() - - describe 'With token and user id', -> - currentUser = null - - before (done) -> - registerNewUser(done,true) - - beforeEach (done) -> - User.findById _id, (err,_user) -> - currentUser = _user - done() - - ############ - # Groups - ############ - - describe 'Groups', -> - group = undefined - - before (done) -> - request.post("#{baseURL}/groups") - .send({name:"TestGroup", type:"party"}) - .end (res) -> - expectCode res, 200 - group = res.body - expect(group.members.length).to.be 1 - expect(group.leader).to.be user._id - done() - - describe 'Challenges', -> - challenge = undefined - updateTodo = undefined - - it 'Creates a challenge', (done) -> - request.post("#{baseURL}/challenges") - .send({ - group:group._id - dailys: [{type:'daily',text:'Challenge Daily'}] - todos: [{type:'todo', text:'Challenge Todo', notes:'Challenge Notes'}] - rewards: [] - habits: [] - official: true - }) - .end (res) -> - expectCode res, 200 - async.parallel [ - (cb) -> User.findById _id, cb - (cb) -> Challenge.findById res.body._id, cb - ], (err, results) -> - [_user,challenge] = [results[0],results[1]] - expect(_user.dailys[_user.dailys.length-1].text).to.be('Challenge Daily') - updateTodo = _user.todos[_user.todos.length-1] - expect(updateTodo.text).to.be('Challenge Todo') - expect(challenge.official).to.be false - done() - - it 'User updates challenge notes', (done) -> - updateTodo.notes = "User overriden notes" - request.put("#{baseURL}/user/tasks/#{updateTodo.id}") - .send(updateTodo) - .end (res) -> - done() #we'll do the check down below - - it 'Change challenge daily', (done) -> - challenge.dailys[0].text = 'Updated Daily' - challenge.todos[0].notes = 'Challenge Updated Todo Notes' - request.post("#{baseURL}/challenges/#{challenge._id}") - .send(challenge) - .end (res) -> - setTimeout -> - User.findById _id, (err,_user) -> - expectCode res, 200 - expect(_user.dailys[_user.dailys.length-1].text).to.be('Updated Daily') - expect(res.body.todos[0].notes).to.be('Challenge Updated Todo Notes') - expect(_user.todos[_user.todos.length-1].notes).to.be('User overriden notes') - currentUser = _user - done() - , 500 # we have to wait a while for users' tasks to be updated, called async on server - - it 'Shows user notes on challenge page', (done) -> - request.get("#{baseURL}/challenges/#{challenge._id}/member/#{_id}") - .end (res) -> - expect(res.body.todos[res.body.todos.length-1].notes).to.be('User overriden notes') - done() - - it 'Complete To-Dos', (done) -> - u = currentUser - request.post("#{baseURL}/user/tasks/#{u.todos[0].id}/up").end (res) -> - request.post("#{baseURL}/user/tasks/#{u.todos[1].id}/up").end (res) -> - request.post("#{baseURL}/user/tasks/").send({type:'todo'}).end (res) -> - request.post("#{baseURL}/user/tasks/clear-completed").end (res) -> - expect(_.size res.body).to.be 2 - done() - - it 'Admin creates a challenge', (done) -> - User.findByIdAndUpdate _id, {$set:{'contributor.admin':true}}, (err,_user) -> - expect(err).to.not.be.ok - - async.parallel [ - (cb)-> - request.post("#{baseURL}/challenges") - .send({group:group._id, dailys: [], todos: [], rewards: [], habits: [], official: false}).end (res) -> - expect(res.body.official).to.be false - cb() - (cb)-> - request.post("#{baseURL}/challenges") - .send({group:group._id, dailys: [], todos: [], rewards: [], habits: [], official: true}).end (res) -> - expect(res.body.official).to.be true - cb() - ], done - - - describe 'Quests', -> - party = undefined - participating = [] - notParticipating = [] - - it 'Invites some members', (done) -> - async.waterfall [ - - # Register new users - (cb) -> - async.parallel [ - (cb2) -> registerNewUser(cb2,false) - (cb2) -> registerNewUser(cb2,false) - (cb2) -> registerNewUser(cb2,false) - ], cb - - # Send them invitations - (_party, cb) -> - party = _party - async.parallel [ - (cb2) -> request.post("#{baseURL}/groups/#{group._id}/invite?uuid=#{party[0]._id}").end (-> cb2()) - (cb2) -> request.post("#{baseURL}/groups/#{group._id}/invite?uuid=#{party[1]._id}").end (-> cb2()) - (cb2) -> request.post("#{baseURL}/groups/#{group._id}/invite?uuid=#{party[2]._id}").end (-> cb2()) - ], cb - - # Accept / Reject - (results, cb) -> - #series since they'll be modifying the same group record - async.series (_.reduce party, (m,v,i) -> - m.push (cb2) -> - request.post("#{baseURL}/groups/#{group._id}/join") - .set('X-API-User', party[i]._id) - .set('X-API-Key', party[i].apiToken) - .end (res) -> cb2() - m - , []), cb - - # Make sure the invites stuck - (whatever, cb) -> - Group.findById group._id, (err, g) -> - expect(g.members.length).to.be 4 - cb() - - ], (err, results) -> - expect(err).to.be.ok - done() - - it 'Starts a quest', (done) -> - async.waterfall [ - (cb)-> - request.post("#{baseURL}/groups/#{group._id}/questAccept?key=evilsanta") - .end (res) -> - expectCode(res, 401) - User.findByIdAndUpdate _id, {$set:'items.quests.evilsanta':1}, cb - (_user,cb)-> - request.post("#{baseURL}/groups/#{group._id}/questAccept?key=evilsanta") - .end (res) -> - expectCode(res, 200) - Group.findById group._id,cb - (_group,cb)-> - group = _group #refresh local group - expect(group.quest.key).to.be 'evilsanta' - - async.series (_.reduce party, (m,v,i) -> - m.push (cb2) -> - request.post("#{baseURL}/groups/#{group._id}/questAccept") - .set('X-API-User', party[i]._id) - .set('X-API-Key', party[i].apiToken) - .end (res) -> cb2() - m - , []), cb - - ], done - - it "Doesn't include people who aren't participating" - - -# ############ -# # Batch Update -# ############ -# -# describe 'Batch Update', -> -# -# it 'POST /api/v1/batch-update', (done) -> -# userBefore = _.cloneDeep(currentUser) -# -# ops = [ -# # Good scores -# op: 'score', params: {id:user.habits[0].id, direction: 'up'} -# op: 'score', params: {id:user.habits[1].id, direction: 'down'} -# op: 'score', params: {id:user.dailys[0].id, direction: 'up'} -# op: 'score', params: {id:user.todos[0].id, direction: 'up'} -# ] -# -# request.post("#{baseURL}/user/batch-update") -# .send(ops) -# .end (res) -> -# expect(res.body.err).to.be undefined -# expect(res.statusCode).to.be 200 -# #expectUserEqual(userBefore, res.body) -# done() -# -# -# ############ -# # To Be Updated (these are old v1 tests which haven't been touched in over 6 months, need to be portd to new API tests or deleted) -# ############ -# -# it.skip 'POST /api/v2/batch-update (handles corrupt values)', (done) -> -# registerNewUser (_res) -> -# # corrupt the tasks, and let's see how the server handles this -# ids = _res.dailyIds -# _res.tasks[ids[0]].value = NaN -# _res.tasks[ids[1]].value = undefined -# _res.tasks[ids[2]] = {} -# _res.tasks["undefined"] = {} -# -# _res.stats.hp = _res.stats.gp = NaN -# -# _res.lastCron = +new Date('08/13/2013') -# -# ops = [ -# op: 'score', task: _res.tasks[ids[0]], dir: 'up' -# ] -# -# model.set "users.#{_res.id}", _res, -> -# request.post("#{baseURL}/user/batch-update") -# .set('Accept', 'application/json') -# .set('X-API-User', _res.id) -# .set('X-API-Key', _res.apiToken) -# .send(ops) -# .end (res) -> -# expect(res.statusCode).to.be 200 -# console.log {stats:res.body.stats, tasks:res.body.tasks} -# done() -# -# -# #FIXME figure out how to compare the objects -# it.skip 'GET /api/v1/user', (done) -> -# request.get("#{baseURL}/user") -# .end (res) -> -# expect(res.body.err).to.be undefined -# expect(res.statusCode).to.be 200 -# expect(res.body.id).not.to.be.empty() -# self = _.clone(currentUser) -# delete self.apiToken -# self.stats.toNextLevel = 150 -# self.stats.maxHealth = 50 -# -# expectUserEqual(res.body, self) -# done() -# -# it.skip 'GET /api/v1/user/task/:id', (done) -> -# tid = _.pluck(currentUser.tasks, 'id')[0] -# request.get("#{baseURL}/user/task/#{tid}") -# .end (res) -> -# expect(res.body.err).to.be undefined -# expect(res.statusCode).to.be 200 -# expect(res.body).to.eql currentUser.tasks[tid] -# done() -# -# it.skip 'POST /api/v1/user/task', (done) -> -# request.post("#{baseURL}/user/task") -# .send({title: 'Title', text: 'Text', type: 'habit'}) -# .end (res) -> -# query = model.query('users').withIdAndToken(currentUser.id, currentUser.apiToken) -# query.fetch (err, user) -> -# expect(res.body.err).to.be undefined -# expect(res.statusCode).to.be 201 -# expect(res.body.id).not.to.be.empty() -# # Ensure that user owns the newly created object -# saved = user.get("tasks.#{res.body.id}") -# expect(saved).to.be.an('object') -# done() -# -# it.skip 'POST /api/v1/user/task (without type)', (done) -> -# request.post("#{baseURL}/user/task") -# .send({}) -# .end (res) -> -# expect(res.body.err).to.be 'type must be habit, todo, daily, or reward' -# expect(res.statusCode).to.be 400 -# done() -# -# it.skip 'POST /api/v1/user/task (only type)', (done) -> -# request.post("#{baseURL}/user/task") -# .send(type: 'habit') -# .end (res) -> -# query = model.query('users').withIdAndToken(currentUser.id, currentUser.apiToken) -# query.fetch (err, user) -> -# expect(res.body.err).to.be undefined -# expect(res.statusCode).to.be 201 -# expect(res.body.id).not.to.be.empty() -# # Ensure that user owns the newly created object -# expect(user.get().tasks[res.body.id]).to.be.an('object') -# # Ensure that value gets set to 0 since not otherwise specified -# expect(user.get().tasks[res.body.id].value).to.be.equal(0) -# done() -# -# it.skip 'PUT /api/v1/user/task/:id', (done) -> -# tid = _.pluck(currentUser.tasks, 'id')[0] -# request.put("#{baseURL}/user/task/#{tid}") -# .send(text: 'bye') -# .end (res) -> -# expect(res.body.err).to.be undefined -# expect(res.statusCode).to.be 200 -# currentUser.tasks[tid].text = 'bye' -# expectSameValues res.body, currentUser.tasks[tid], ['id','type','text'] -# #expect(res.body).to.eql currentUser.tasks[tid] -# done() -# -# it.skip 'PUT /api/v1/user/task/:id (shouldnt update type)', (done) -> -# tid = _.pluck(currentUser.tasks, 'id')[1] -# type = if currentUser.tasks[tid].type is 'habit' then 'daily' else 'habit' -# request.put("#{baseURL}/user/task/#{tid}") -# .send(type: type, text: 'fishman') -# .end (res) -> -# expect(res.body.err).to.be undefined -# expect(res.statusCode).to.be 200 -# currentUser.tasks[tid].text = 'fishman' -# expect(res.body).to.eql currentUser.tasks[tid] -# done() -# -# it.skip 'PUT /api/v1/user/task/:id (update notes)', (done) -> -# tid = _.pluck(currentUser.tasks, 'id')[2] -# request.put("#{baseURL}/user/task/#{tid}") -# .send(text: 'hi',notes:'foobar matey') -# .end (res) -> -# expect(res.body.err).to.be undefined -# expect(res.statusCode).to.be 200 -# currentUser.tasks[tid].text = 'hi' -# currentUser.tasks[tid].notes = 'foobar matey' -# expect(res.body).to.eql currentUser.tasks[tid] -# done() -# -# it.skip 'GET /api/v1/user/tasks', (done) -> -# request.get("#{baseURL}/user/tasks") -# .end (res) -> -# query = model.query('users').withIdAndToken(currentUser.id, currentUser.apiToken) -# query.fetch (err, user) -> -# expect(res.body.err).to.be undefined -# expect(user.get()).to.be.ok() -# expect(res.statusCode).to.be 200 -# model.ref '_user', user -# tasks = [] -# for type in ['habit','todo','daily','reward'] -# model.refList "_#{type}List", "_user.tasks", "_user.#{type}Ids" -# tasks = tasks.concat model.get("_#{type}List") -# # Ensure that user owns the tasks -# expect(res.body.length).to.equal tasks.length -# # Ensure that the two sets are equal -# expect(_.difference(_.pluck(res.body,'id'), _.pluck(tasks,'id')).length).to.equal 0 -# done() -# -# it.skip 'GET /api/v1/user/tasks (todos)', (done) -> -# request.get("#{baseURL}/user/tasks") -# .query(type:'todo') -# .end (res) -> -# query = model.query('users').withIdAndToken(currentUser.id, currentUser.apiToken) -# query.fetch (err, user) -> -# expect(res.body.err).to.be undefined -# expect(res.statusCode).to.be 200 -# model.ref '_user', user -# model.refList "_todoList", "_user.tasks", "_user.todoIds" -# tasks = model.get("_todoList") -# # Ensure that user owns the tasks -# expect(res.body.length).to.equal tasks.length -# # Ensure that the two sets are equal -# expect(_.difference(_.pluck(res.body,'id'), _.pluck(tasks,'id')).length).to.equal 0 -# done() -# -# it.skip 'DELETE /api/v1/user/task/:id', (done) -> -# tid = currentUser.habitIds[2] -# request.del("#{baseURL}/user/task/#{tid}") -# .end (res) -> -# expect(res.body.err).to.be undefined -# expect(res.statusCode).to.be 204 -# query = model.query('users').withIdAndToken(currentUser.id, currentUser.apiToken) -# query.fetch (err, user) -> -# expect(user.get('habitIds').indexOf(tid)).to.be -1 -# expect(user.get("tasks.#{tid}")).to.be undefined -# done() -# -# it.skip 'DELETE /api/v1/user/task/:id (no task found)', (done) -> -# tid = "adsfasdfjunkshouldntbeatask" -# request.del("#{baseURL}/user/task/#{tid}") -# .end (res) -> -# expect(res.statusCode).to.be 400 -# expect(res.body.err).to.be 'No task found.' -# done() -# -# it.skip 'POST /api/v1/user/task/:id/up (habit)', (done) -> -# tid = currentUser.habitIds[0] -# request.post("#{baseURL}/user/task/#{tid}/up") -# .send({}) -# .end (res) -> -# expect(res.body.err).to.be undefined -# expect(res.statusCode).to.be 200 -# expect(res.body).to.eql { gp: 1, exp: 7.5, lvl: 1, hp: 50, delta: 1 } -# done() -# -# it.skip 'POST /api/v1/user/task/:id/up (daily)', (done) -> -# tid = currentUser.dailyIds[0] -# request.post("#{baseURL}/user/task/#{tid}/up") -# .send({}) -# .end (res) -> -# expect(res.body.err).to.be undefined -# expect(res.statusCode).to.be 200 -# expect(res.body).to.eql { gp: 2, exp: 15, lvl: 1, hp: 50, delta: 1 } -# query = model.query('users').withIdAndToken(currentUser.id, currentUser.apiToken) -# query.fetch (err, user) -> -# expect(user.get("tasks.#{tid}.completed")).to.be true -# done() -# -# it.skip 'POST /api/v1/user/task (array)', (done) -> -# habitId = currentUser.habitIds[0] -# dailyId = currentUser.dailyIds[0] -# arr = [{ -# id: habitId -# text: 'hello' -# notes: 'note' -# },{ -# text: 'new task' -# notes: 'notes!' -# },{ -# id: dailyId -# del: true -# }] -# -# request.post("#{baseURL}/user/tasks") -# .send(arr) -# .end (res) -> -# expect(res.body.err).to.be undefined -# expect(res.statusCode).to.be 201 -# -# expectSameValues res.body[0], {id: habitId,text: 'hello',notes: 'note'}, ['id','text','notes'] -# expect(res.body[1].id).to.be.a 'string' -# expect(res.body[1].text).to.be 'new task' -# expect(res.body[1].notes).to.be 'notes!' -# expect(res.body[2]).to.eql deleted: true -# -# query = model.query('users').withIdAndToken(currentUser.id, currentUser.apiToken) -# query.fetch (err, user) -> -# expectSameValues user.get("tasks.#{habitId}"), {id: habitId,text: 'hello',notes: 'note'}, ['id','text','notes'] -# expect(user.get("tasks.#{dailyId}")).to.be undefined -# expectSameValues user.get("tasks.#{res.body[1].id}"), {id: res.body[1].id, text: 'new task', notes: 'notes!'}, ['id','text','notes'] -# done() -# -# it.skip 'PUT /api/v1/user (bad path)', (done) -> -# # These updates should not save, as per the API changes -# userUpdates = -# stats: hp: 30 -# flags: itemsEnabled: true -# tasks: [{ -# text: 'hello2' -# notes: 'note2' -# }] -# -# request.put("#{baseURL}/user") -# .send(userUpdates) -# .end (res) -> -# expect(res.body.err).to.be.ok() -# expect(res.statusCode).to.be 500 -# done() -# -# it.skip 'PUT /api/v1/user', (done) -> -# userBefore = {} -# query = model.query('users').withIdAndToken(currentUser.id, currentUser.apiToken) -# query.fetch (err, user) -> -# userBefore = user.get() -# -# habitId = currentUser.habitIds[0] -# dailyId = currentUser.dailyIds[0] -# updates = {} -# updates['stats.hp'] = 30 -# updates['flags.itemsEnabled'] = true -# updates["tasks.#{habitId}.text"] = 'hello2' -# updates["tasks.#{habitId}.notes"] = 'note2' -# -# request.put("#{baseURL}/user") -# .send(updates) -# .end (res) -> -# expect(res.body.err).to.be undefined -# expect(res.statusCode).to.be 200 -# changesWereMade = (obj) -> -# expect(obj.stats.hp).to.be 30 -# expect(obj.flags.itemsEnabled).to.be true -# expectSameValues _.find(obj.tasks,{id:habitId}), {id: habitId,text: 'hello2',notes: 'note2'}, ['id','text','notes'] -# changesWereMade res.body -# query.fetch (err, user) -> -# changesWereMade user.get() -# done() -# -# it.skip 'POST /api/v1/user/auth/local', (done) -> -# userAuth = {username, password} -# request.post("#{baseURL}/user/auth/local") -# .set('Accept', 'application/json') -# .send(userAuth) -# .end (res) -> -# expect(res.body.err).to.be undefined -# expect(res.statusCode).to.be 200 -# expect(res.body.id).to.be currentUser.id -# expect(res.body.token).to.be currentUser.apiToken -# done() -# -# it.skip 'POST /api/v1/user/auth/facebook', (done) -> -# id = shared.uuid() -# userAuth = facebook_id: 12345, name: 'Tyler Renelle', email: 'x@y.com' -# newUser = helpers.newUser(true) -# newUser.id = id -# newUser.auth = facebook: -# id: userAuth.facebook_id -# name: userAuth.name -# email: userAuth.email -# model.set "users.#{id}", newUser, -> -# -# request.post("#{baseURL}/user/auth/facebook") -# .set('Accept', 'application/json') -# .send(userAuth) -# .end (res) -> -# expect(res.body.err).to.be undefined -# expect(res.statusCode).to.be 200 -# expect(res.body.id).to.be newUser.id -# #expect(res.body.token).to.be newUser.apiToken -# done() -# -# diff --git a/test/archive/casper/dailies.casper.coffee b/test/archive/casper/dailies.casper.coffee deleted file mode 100644 index 3730b91ad9..0000000000 --- a/test/archive/casper/dailies.casper.coffee +++ /dev/null @@ -1,45 +0,0 @@ -helpers = new require('./test/casper/helpers')() -casper = helpers.casper -utils = helpers.utils -url = helpers.playUrl - -casper.start url - -# ---------- Daily ------------ -casper.then -> - helpers.reset() - helpers.addTasks(['daily']) - -# Gained exp on +daily -casper.then -> - helpers.modelBeforeAfter (-> casper.click '.dailys input[type="checkbox"]'), (model) -> - casper.test.assertEquals model.before._user.stats.hp, model.after._user.stats.hp, '+daily =hp' - casper.test.assert model.before._user.stats.exp < model.after._user.stats.exp, '+daily +exp' - casper.test.assert model.before._user.stats.gp < model.after._user.stats.gp, '+daily +gp' - -# -daily acts as undo -casper.then -> - helpers.modelBeforeAfter (-> casper.click '.dailys input[type="checkbox"]'), (model) -> - casper.test.assertEquals model.before._user.stats.hp, model.after._user.stats.hp, '-daily =hp' - casper.test.assert model.before._user.stats.exp > model.after._user.stats.exp, '-daily -exp' - casper.test.assert model.before._user.stats.gp > model.after._user.stats.gp, '-daily -gp' - -# ---------- Cron ------------ -casper.then -> - helpers.reset() - helpers.addTasks(['daily']) - -casper.then -> - helpers.cronBeforeAfter (model) -> - casper.then -> - casper.test.assert model.before._user.stats.hp > model.after._user.stats.hp, 'daily:cron:hp lost value' - - # Go through all the dailys, all of them are uncompleted, so should all get a negative value - casper.echo "Testing all uncompleted dailys after cron" - for id in model.before._user.dailyIds - casper.test.assertEquals model.before._user.tasks[id].value, 0, "daily:cron:daily value before was 0" - casper.test.assert model.after._user.tasks[id].value < 0, "daily:cron:daily value after is negative" - -# ---------- Run ------------ -casper.run -> - casper.test.renderResults true \ No newline at end of file diff --git a/test/archive/casper/general.casper.coffee b/test/archive/casper/general.casper.coffee deleted file mode 100644 index 8ce7280ab8..0000000000 --- a/test/archive/casper/general.casper.coffee +++ /dev/null @@ -1,38 +0,0 @@ -helpers = new require('./test/casper/helpers')() -casper = helpers.casper -utils = helpers.utils -url = helpers.playUrl - -# ---------- Basic Reset Test ------------ - -casper.start url, -> - casper.test.assertTitle 'HabitRPG | Gamify Your Life', 'Page Title' - -# Gain some GP and lose some HP -casper.then -> - casper.repeat 5, -> casper.click '.habits a[data-direction="down"]' - casper.repeat 5, -> casper.click '.habits a[data-direction="up"]' - -# Reset -casper.then -> - 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' - - -# ---------- Misc Pages ------------ - -casper.thenOpen "#{helpers.baseUrl}/terms", -> - casper.test.assertTitle "Terms Of Use", "terms page works" - -casper.thenOpen "#{helpers.baseUrl}/privacy", -> - casper.test.assertTitle "Privacy Policy", "privacy page works" - -# ---------- Run ------------ -casper.run -> - casper.test.renderResults true \ No newline at end of file diff --git a/test/archive/casper/habits.casper.coffee b/test/archive/casper/habits.casper.coffee deleted file mode 100644 index 075b2ba434..0000000000 --- a/test/archive/casper/habits.casper.coffee +++ /dev/null @@ -1,40 +0,0 @@ -helpers = new require('./test/casper/helpers')() -casper = helpers.casper -utils = helpers.utils -url = helpers.playUrl - -casper.start url - -# # ---------- Register ------------ -# casper.then -> helpers.register() -# casper.then -> user = helpers.getUser() - -# ---------- Habits ------------ -casper.then -> - helpers.reset() - helpers.addTasks(['habit']) - -casper.then -> - helpers.modelBeforeAfter (-> casper.click '.habits a[data-direction="down"]'), (model) -> - casper.test.assert model.before._user.stats.hp > model.after._user.stats.hp, '-habit -hp' - 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 -> - helpers.modelBeforeAfter (-> casper.click '.habits a[data-direction="up"]'), (model) -> - casper.test.assert model.before._user.stats.exp < model.after._user.stats.exp, '+habit +exp' - 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 -casper.then -> - casper.repeat 50, (-> casper.click '.habits a[data-direction="down"]') - casper.then -> - helpers.getModelDelayed (model) -> - casper.test.assertEquals model._user.stats.hp, 0, 'hp==0 (death by habits)' - casper.test.assertEquals model._user.stats.lvl, 0, 'lvl==0 (death by habits)' - casper.test.assertVisible '#dead-modal', 'Revive Modal Visible' - -# ---------- Run ------------ -casper.run -> - casper.test.renderResults true \ No newline at end of file diff --git a/test/archive/casper/helpers.coffee b/test/archive/casper/helpers.coffee deleted file mode 100644 index 138da7d03f..0000000000 --- a/test/archive/casper/helpers.coffee +++ /dev/null @@ -1,106 +0,0 @@ -utils = require('utils') - -module.exports = -> - - SYNC_WAIT_TIME = 40 - - baseUrl = 'http://localhost:3000' - - random = Math.random().toString(36).substring(7) - - casper = require("casper").create - clientScripts: 'test/includes/lodash.min.js' - - getModel = -> - casper.evaluate -> - model = window.DERBY.app.model - { - _userId: model.get('_userId') - _user: model.get('_user') - _todoList: model.get('_todoList') - _dailyList: model.get('_dailyList') - _rewardList: model.get('_rewardList') - _habitList: model.get('_habitList') - } - - { - casper: casper - - baseUrl: baseUrl - playUrl: baseUrl + '/?play=1' - - utils: utils - - addTasks: (types = 'all', num = 5)-> - if types == 'all' - types = ['habit', 'daily', 'todo', 'reward'] - types.forEach (type) -> - i = 0 - casper.repeat num, -> - casper.fill "form#new-#{type}", {'new-task': "#{type}-#{i}"} # why can't I use true here? - casper.click "form#new-#{type} input[type=submit]" - - reset: -> - casper.evaluate -> window.DERBY.app.reset() - - 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, -> - cb(getModel()) - - modelBeforeAfter: (between_cb, done_cb) -> - that = @ - model = {} - @getModelDelayed (before) -> - model.before = before - casper.then -> - between_cb() - that.getModelDelayed (after) -> - model.after = after - casper.then -> done_cb(model) - - runCron: -> - casper.evaluate -> - yesterday = new Date() - yesterday.setDate(yesterday.getDate() - 1); - window.DERBY.app.model.set('_user.lastCron', yesterday) - casper.then -> casper.reload() - - cronBeforeAfter: (cb) -> - that = @ - model = {} - @getModelDelayed (before) -> - model.before = before - casper.then -> that.runCron() - casper.then -> - casper.wait 1100, -> # user's hp is updated after 1s for animation - model.after = getModel() - casper.then -> - casper.test.assertEqual model.before._user.id, model.after._user.id, 'user id equal after cron' - casper.test.assertEqual model.before._user.tasks.length, model.after._user.tasks.length, "Didn't lose anything on cron" - cb(model) - - register: -> - casper.fill 'form#derby-auth-register', - username: random - email: random + '@example.com' - password: random - 'password-confirmation': random - , true - - login: -> - casper.fill 'form#derby-auth-login', - username: random - password: random - , true - - deleteOne: (list, typeSelector) -> - selector = "#{typeSelector} a[data-original-title=\"Delete\"]" - @modelBeforeAfter (-> casper.click selector), (model) -> - casper.test.assertEquals Object.keys(model.before._user.tasks).length - 1, Object.keys(model.after._user.tasks).length, "1 #{typeSelector} deleted from user.tasks" - casper.test.assertEquals model.before._user["#{list}Ids"].length - 1, model.after._user["#{list}Ids"].length, "1 #{typeSelector} deleted from user._typeIds" - casper.test.assertEquals model.before["_#{list}List"].length - 1, model.after["_#{list}List"].length, "1 #{typeSelector} deleted from _typeList" - } diff --git a/test/archive/casper/items.casper.coffee b/test/archive/casper/items.casper.coffee deleted file mode 100644 index 853aa3f127..0000000000 --- a/test/archive/casper/items.casper.coffee +++ /dev/null @@ -1,22 +0,0 @@ -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 \ No newline at end of file diff --git a/test/archive/casper/memoryleak.casper.coffee b/test/archive/casper/memoryleak.casper.coffee deleted file mode 100644 index ff5357a90f..0000000000 --- a/test/archive/casper/memoryleak.casper.coffee +++ /dev/null @@ -1,12 +0,0 @@ -helpers = new require('./test/casper/helpers')() -casper = helpers.casper -utils = helpers.utils -url = helpers.playUrl - -casper.start url - -casper.repeat 100, -> - casper.reload() - -casper.run -> - casper.test.renderResults true \ No newline at end of file diff --git a/test/archive/casper/registration.casper.coffee b/test/archive/casper/registration.casper.coffee deleted file mode 100644 index e3e1a53574..0000000000 --- a/test/archive/casper/registration.casper.coffee +++ /dev/null @@ -1,35 +0,0 @@ -helpers = new require('./test/casper/helpers')() -casper = helpers.casper -utils = helpers.utils -url = helpers.playUrl - -casper.start url - -# ---------- Register ------------ -registeredUser = undefined -casper.then -> helpers.register() -casper.then -> - helpers.getModelDelayed (model) -> - registeredUser = model - -casper.then -> casper.reload() -casper.then -> - helpers.getModelDelayed (nowModel) -> - casper.test.assertEqual registeredUser._userId, nowModel._userId, 'user registered and maintained session' - -# ---------- Log Out ------------ -casper.thenOpen helpers.baseUrl + '/logout' -casper.thenOpen helpers.playUrl -casper.then -> - helpers.getModelDelayed (nowModel) -> - casper.test.assertNotEquals registeredUser._userId, nowModel._userId, 'user logged out' - -# ---------- Login ------------ -casper.then -> helpers.login() -casper.then -> - helpers.getModelDelayed (nowModel) -> - casper.test.assertEqual registeredUser._userId, nowModel._userId, 'user logged out' - -# ---------- Run ------------ -casper.run -> - casper.test.renderResults true \ No newline at end of file diff --git a/test/archive/casper/rest.casper.coffee b/test/archive/casper/rest.casper.coffee deleted file mode 100644 index 767d93489e..0000000000 --- a/test/archive/casper/rest.casper.coffee +++ /dev/null @@ -1,74 +0,0 @@ -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 \ No newline at end of file diff --git a/test/archive/casper/todos.casper.coffee b/test/archive/casper/todos.casper.coffee deleted file mode 100644 index f898f68b12..0000000000 --- a/test/archive/casper/todos.casper.coffee +++ /dev/null @@ -1,59 +0,0 @@ -helpers = new require('./test/casper/helpers')() -casper = helpers.casper -utils = helpers.utils -url = helpers.playUrl - -casper.start url - -# ---------- Todos ------------ -casper.then -> - helpers.reset() - helpers.addTasks(['todo']) - -# Completing todo gives exp and gp -casper.then -> - helpers.modelBeforeAfter (-> casper.click '.todos .uncompleted input[type="checkbox"]'), (model) -> - casper.test.assertEquals model.before._user.stats.hp, 50, 'todo:hp starts at 50' - casper.test.assertEquals model.before._user.stats.hp, model.after._user.stats.hp, '+todo =hp' - casper.test.assertEquals model.after._user.stats.exp, 1, '+todo exp=1' - casper.test.assertEquals model.after._user.stats.gp, 1, '+todo gp=1' - - casper.test.assert model.before._user.stats.exp < model.after._user.stats.exp, '+todo +exp' - casper.test.assert model.before._user.stats.gp < model.after._user.stats.gp, '+todo +gp' - -# Can delete completed -casper.then -> helpers.deleteOne('todo', '.todos .completed') - -# Can delete uncompleted -casper.then -> helpers.deleteOne('todo', '.todos .uncompleted') - -# Uncompleting subtracts exp and gp -casper.then -> - casper.click '.todos .uncompleted input[type="checkbox"]' - helpers.modelBeforeAfter (-> casper.click '.todos .completed input[type="checkbox"]'), (model) -> - casper.test.assertEquals model.before._user.stats.hp, model.after._user.stats.hp, '-todo =hp' - casper.test.assert model.before._user.stats.exp > model.after._user.stats.exp, '-todo -exp' - casper.test.assert model.before._user.stats.gp > model.after._user.stats.gp, '-todo -gp' - - - -# ---------- Cron ------------ -casper.then -> - helpers.reset() - helpers.addTasks(['todo']) - -casper.then -> - helpers.cronBeforeAfter (model) -> - casper.then -> - casper.test.assertEqual model.before._user.stats.hp, model.after._user.stats.hp, 'todo:cron:hp no change' - - # Go through all the todos, all of them are uncompleted, so should all get a negative value - casper.echo "Testing all uncompleted todos after cron" - for id in model.before._user.todoIds - casper.test.assertEquals model.before._user.tasks[id].value, 0, "todo:cron:todo value before was 0" - casper.test.assert model.after._user.tasks[id].value < 0, "todo:cron:todo value after is negative" - - -# ---------- Run ------------ -casper.run -> - casper.test.renderResults true \ No newline at end of file diff --git a/test/archive/test2/casper/add.items.coffee b/test/archive/test2/casper/add.items.coffee deleted file mode 100644 index 9094b67c77..0000000000 --- a/test/archive/test2/casper/add.items.coffee +++ /dev/null @@ -1,40 +0,0 @@ -helpers = casper.helpers -uid = helpers.uid -# test creation of Todos, Rewards, Habits, etc - -casper.start helpers.playUrl, -> - casper.test.assert(true,'true==true') -# helpers.getModel (err, model) -> -# tasksCount=0 -# for own key,value of model.user.tasks -# tasksCount++ -# utils.dump model.user.tasks -# casper.fill "form[data-task-type='habit']", { -# 'new-task': 'Habit' + uid -# }, true -# helpers.getModel (err, model) -> -# newTasksCount=0 -# for own key,value of model.user.tasks -# newTasksCount++ -# casper.echo "Tasks new: " + tasksCount -# casper.test.assert(newTasksCount>tasksCount,"Task list increases in length after new habit form submitted") -# -# -##casper.then -> -## helpers.getModel (err, model) -> -## casper.test.assertEquals(typeof model.user.stats.exp, "number", 'XP is number') -## casper.test.assertEquals(model.user.stats.exp, 0, 'XP == 0') -## casper.click '.habits a[data-direction="up"]' -## helpers.getModel (err, newModel) -> -## casper.test.assert(newModel.user.stats.exp > model.user.stats.exp, 'XP has increased after clicking habits "+"') -## casper.test.assert(newModel.user.stats.gp > model.user.stats.gp, 'GP has increased after clicking habits "+"') - - -# ---------- finish tests ------------ -casper.then -> - casper.test.done() - - -# ---------- Run ------------ -casper.run -> - casper.test.renderResults true diff --git a/test/archive/test2/casper/stats.coffee b/test/archive/test2/casper/stats.coffee deleted file mode 100644 index d134f518ee..0000000000 --- a/test/archive/test2/casper/stats.coffee +++ /dev/null @@ -1,103 +0,0 @@ -#helpers = new require('./lib/helpers')() -#casper = helpers.casper -helpers = casper.helpers -eTest = helpers.evalTest -getModel = helpers.getModel -# ---------- Checks if clicking on the buttons changes stats and in right direction ------------ - - -casper.start helpers.playUrl, -> - test = 'EXP and GP increasing after clicking habits "+"' - getModel (err, model) -> - casper.test.assertEquals(typeof model.user.stats.exp, "number", 'XP is number') - casper.test.assertEquals(model.user.stats.exp, 0, 'XP == 0') - casper.click '.habits a[data-direction="up"]' - eTest( - (oldStats)-> - stats = window.DERBY.app.model.get '_user.stats' - console.log "Was:" + oldStats.exp + "Is: " + stats.exp - console.log "Was:" + oldStats.gp + "Is: " + stats.gp - (stats.exp > oldStats.exp && stats.gp > oldStats.gp) - test - model.user.stats - ) - - -casper.then -> - test = 'HP decreasing after clicking habits "-"' - getModel (err, model) -> - casper.click '.habits a[data-direction="down"]' - eTest( - (oldStats)-> - stats = window.DERBY.app.model.get '_user.stats' - console.log "Was:" + oldStats.hp + "Is: " + stats.hp - (stats.hp < oldStats.hp) - test - model.user.stats - ) - -casper.then -> - test = 'EXP and GP increasing after clicking .todo.uncompleted' - getModel (err, model) -> - casper.click '.task.todo.uncompleted input[type=checkbox]' - eTest( - (oldStats)-> - stats = window.DERBY.app.model.get '_user.stats' - console.log "Was:" + oldStats.exp + "Is: " + stats.exp - console.log "Was:" + oldStats.gp + "Is: " + stats.gp - (stats.exp > oldStats.exp && stats.gp > oldStats.gp) - test - model.user.stats - ) - -casper.then -> - test = 'EXP and GP decreasing after clicking .todo.completed' - getModel (err, model) -> - casper.click '.task.todo.completed input[type=checkbox]' - eTest( - (oldStats)-> - stats = window.DERBY.app.model.get '_user.stats' - console.log "Was:" + oldStats.exp + "Is: " + stats.exp - console.log "Was:" + oldStats.gp + "Is: " + stats.gp - (stats.exp < oldStats.exp && stats.gp < oldStats.gp) - test - model.user.stats - ) - -casper.then -> - test = 'EXP and GP increasing after clicking .daily.uncompleted' - getModel (err, model) -> - casper.click '.task.daily.uncompleted input[type=checkbox]' - eTest( - (oldStats)-> - stats = window.DERBY.app.model.get '_user.stats' - console.log "Was:" + oldStats.exp + "Is: " + stats.exp - console.log "Was:" + oldStats.gp + "Is: " + stats.gp - (stats.exp > oldStats.exp && stats.gp > oldStats.gp) - test - model.user.stats - ) - -casper.then -> - test = 'EXP and GP decreasing after clicking .daily.completed' - getModel (err, model) -> - casper.click '.task.daily.completed input[type=checkbox]' - eTest( - (oldStats)-> - stats = window.DERBY.app.model.get '_user.stats' - console.log "Was:" + oldStats.exp + "Is: " + stats.exp - console.log "Was:" + oldStats.gp + "Is: " + stats.gp - (stats.exp < oldStats.exp && stats.gp < oldStats.gp) - test - model.user.stats - ) - - -# ---------- finish tests ------------ -casper.then -> - casper.test.done() - - -# ---------- Run ------------ -casper.run -> - casper.test.renderResults true \ No newline at end of file diff --git a/test/archive/test2/readme.md b/test/archive/test2/readme.md deleted file mode 100644 index a0567235cb..0000000000 --- a/test/archive/test2/readme.md +++ /dev/null @@ -1,9 +0,0 @@ -1) It is a bit verbose -2) It needs to be refactored using "async" library. Somehow casper.then() is introducing bugs so I'm not going to use it until I figure out why exactly. Leave it as it is, I'll refactor as it grows. -3) It does not use any timeouts along the way, which is a good thing. -4) It runs consistently on my side (i.e. always passes). -5) So far phantomJS is given new userID every time so app.reset,app.revive is not necessary. I'll add it later. - -To run the tests run from terminal: -cd test/test2 -casperjs test ./casper/ --includes=./lib/helpers.coffee \ No newline at end of file