mirror of
https://github.com/HabitRPG/habitica.git
synced 2025-12-13 12:47:28 +01:00
Merge branch 'develop' into refactor-content
This commit is contained in:
@@ -4,7 +4,12 @@ The files in this folder are automatically pulled from Transifex, with
|
||||
exception of the original American-English strings which are managed
|
||||
directly through GitHub in `locales/en`.
|
||||
|
||||
Do not edit files in any locales directory except for `locales/en`!
|
||||
When you need to change any text, edit only the files in `locales/en`.
|
||||
Do not edit files in any other locales directory. You do not need to
|
||||
request that your changes be translated; changes are automatically
|
||||
copied to Transifex on a regular basis.
|
||||
|
||||
Before starting to translate, please read [Guidance for Linguists](http://habitrpg.wikia.com/wiki/Guidance_for_Linguists)
|
||||
and note especially its information about the [Translations Trello card](https://trello.com/c/SvTsLdRF/12-translations).
|
||||
If you want to help with translations, please first read [Guidance for
|
||||
Linguists](http://habitrpg.wikia.com/wiki/Guidance_for_Linguists) and
|
||||
note especially its information about the [Translations Trello
|
||||
card](https://trello.com/c/SvTsLdRF/12-translations).
|
||||
|
||||
6
common/locales/en/_README_FIRST.md
Normal file
6
common/locales/en/_README_FIRST.md
Normal file
@@ -0,0 +1,6 @@
|
||||
You may edit any files in this directory. Do not edit files in any
|
||||
other locales directory.
|
||||
|
||||
For more information read:
|
||||
|
||||
https://github.com/HabitRPG/habitrpg/blob/develop/common/locales/README.md
|
||||
10
package.json
10
package.json
@@ -89,11 +89,11 @@
|
||||
"node": "0.10.x"
|
||||
},
|
||||
"scripts": {
|
||||
"test": "$(npm bin)/gulp test",
|
||||
"start": "$(npm bin)/gulp run:dev",
|
||||
"sprites": "$(npm bin)/gulp sprites:compile",
|
||||
"postinstall": "$(npm bin)/bower --config.interactive=false install -f; $(npm bin)/gulp build;",
|
||||
"coverage": "COVERAGE=true $(npm bin)/mocha --require register-handlers.js --reporter html-cov > coverage.html; open coverage.html"
|
||||
"test": "gulp test",
|
||||
"start": "gulp run:dev",
|
||||
"sprites": "gulp sprites:compile",
|
||||
"postinstall": "bower --config.interactive=false install -f; gulp build;",
|
||||
"coverage": "COVERAGE=true mocha --require register-handlers.js --reporter html-cov > coverage.html; open coverage.html"
|
||||
},
|
||||
"devDependencies": {
|
||||
"chai": "^2.3.0",
|
||||
|
||||
@@ -31,103 +31,109 @@ describe "Users", ->
|
||||
|
||||
], done
|
||||
|
||||
it "Should choose a new group leader when deleting a user", (done) ->
|
||||
userToDelete = undefined
|
||||
userToBecomeLeader = undefined
|
||||
guildToHaveNewLeader = undefined
|
||||
async.waterfall [
|
||||
(cb) ->
|
||||
registerManyUsers 2, cb
|
||||
context "handle group changes when user cancels", ->
|
||||
it "Should choose a new group leader when deleting a user", (done) ->
|
||||
userToDelete = undefined
|
||||
userToBecomeLeader = undefined
|
||||
guildToHaveNewLeader = undefined
|
||||
async.waterfall [
|
||||
(cb) ->
|
||||
registerManyUsers 2, cb
|
||||
|
||||
(_users, cb) ->
|
||||
userToDelete = _users[0]
|
||||
userToBecomeLeader = _users[1]
|
||||
User.findByIdAndUpdate userToDelete._id,
|
||||
$set:
|
||||
"balance": 4
|
||||
, (err, _user) ->
|
||||
(_users, cb) ->
|
||||
userToDelete = _users[0]
|
||||
userToBecomeLeader = _users[1]
|
||||
User.findByIdAndUpdate userToDelete._id,
|
||||
$set:
|
||||
"balance": 4
|
||||
, (err, _user) ->
|
||||
cb()
|
||||
|
||||
(cb) ->
|
||||
request.post(baseURL + "/groups").send(
|
||||
name: "GuildToGainNewLeader"
|
||||
type: "guild"
|
||||
)
|
||||
.set("X-API-User", userToDelete._id)
|
||||
.set("X-API-Key", userToDelete.apiToken)
|
||||
.end (res) ->
|
||||
expectCode res, 200
|
||||
guildToHaveNewLeader = res.body
|
||||
expect(guildToHaveNewLeader.leader).to.eql(userToDelete._id)
|
||||
cb()
|
||||
|
||||
(cb) ->
|
||||
request.post(baseURL + "/groups").send(
|
||||
name: "GuildToGainNewLeader"
|
||||
type: "guild"
|
||||
)
|
||||
.set("X-API-User", userToDelete._id)
|
||||
.set("X-API-Key", userToDelete.apiToken)
|
||||
.end (res) ->
|
||||
expectCode res, 200
|
||||
guildToHaveNewLeader = res.body
|
||||
expect(guildToHaveNewLeader.leader).to.eql(userToDelete._id)
|
||||
cb()
|
||||
(cb) ->
|
||||
inviteURL = baseURL + "/groups/" + guildToHaveNewLeader._id + "/invite"
|
||||
request.post(inviteURL)
|
||||
.send( uuids: [userToBecomeLeader._id])
|
||||
.end (res) ->
|
||||
expectCode res, 200
|
||||
cb()
|
||||
|
||||
(cb) ->
|
||||
inviteURL = baseURL + "/groups/" + guildToHaveNewLeader._id + "/invite"
|
||||
request.post(inviteURL)
|
||||
.send( uuids: [userToBecomeLeader._id])
|
||||
(cb) ->
|
||||
request.post(baseURL + "/groups/" + guildToHaveNewLeader._id + "/join")
|
||||
.set("X-API-User", userToBecomeLeader._id)
|
||||
.set("X-API-Key", userToBecomeLeader.apiToken)
|
||||
.end (res) ->
|
||||
expectCode res, 200
|
||||
cb()
|
||||
|
||||
(cb) ->
|
||||
request.del(baseURL + "/user")
|
||||
.set("X-API-User", userToDelete._id)
|
||||
.set("X-API-Key", userToDelete.apiToken)
|
||||
.end (res) ->
|
||||
expectCode res, 200
|
||||
cb()
|
||||
|
||||
(cb) ->
|
||||
request.post(baseURL + "/groups/" + guildToHaveNewLeader._id + "/join")
|
||||
(cb) ->
|
||||
request.get(baseURL + "/groups/" + guildToHaveNewLeader._id)
|
||||
.set("X-API-User", userToBecomeLeader._id)
|
||||
.set("X-API-Key", userToBecomeLeader.apiToken)
|
||||
.end (res) ->
|
||||
expectCode res, 200
|
||||
g = res.body
|
||||
userInGroup = _.find(g.members, (member) -> return member._id == userToDelete._id; )
|
||||
expect(userInGroup).to.equal(undefined)
|
||||
expect(g.leader._id).to.equal(userToBecomeLeader._id)
|
||||
cb()
|
||||
|
||||
(cb) ->
|
||||
request.del(baseURL + "/user")
|
||||
.set("X-API-User", userToDelete._id)
|
||||
.set("X-API-Key", userToDelete.apiToken)
|
||||
.end (res) ->
|
||||
expectCode res, 200
|
||||
cb()
|
||||
], done
|
||||
|
||||
(cb) ->
|
||||
request.get(baseURL + "/groups/" + guildToHaveNewLeader._id)
|
||||
.set("X-API-User", userToBecomeLeader._id)
|
||||
.set("X-API-Key", userToBecomeLeader.apiToken)
|
||||
.end (res) ->
|
||||
expectCode res, 200
|
||||
g = res.body
|
||||
userInGroup = _.find(g.members, (member) -> return member._id == userToDelete._id; )
|
||||
expect(userInGroup).to.equal(undefined)
|
||||
expect(g.leader._id).to.equal(userToBecomeLeader._id)
|
||||
cb()
|
||||
context "handle group and invite removals", ->
|
||||
guild = undefined
|
||||
party = undefined
|
||||
before (done) ->
|
||||
User.findByIdAndUpdate user._id,
|
||||
$set:
|
||||
"balance": 4
|
||||
, (err, _user) ->
|
||||
async.waterfall [
|
||||
(cb) ->
|
||||
request.post(baseURL + "/groups").send(
|
||||
name: "TestPrivateGroup"
|
||||
type: "party"
|
||||
)
|
||||
.end (res) ->
|
||||
expectCode res, 200
|
||||
party = res.body
|
||||
cb()
|
||||
|
||||
], done
|
||||
(cb) ->
|
||||
request.post(baseURL + "/groups").send(
|
||||
name: "TestPrivateGroup"
|
||||
type: "guild"
|
||||
)
|
||||
.end (res) ->
|
||||
expectCode res, 200
|
||||
guild = res.body
|
||||
cb()
|
||||
|
||||
it 'Should remove a user from a group when deleting a user', (done) ->
|
||||
userToDelete = undefined
|
||||
guild = undefined
|
||||
party = undefined
|
||||
User.findByIdAndUpdate user._id,
|
||||
$set:
|
||||
"balance": 4
|
||||
, (err, _user) ->
|
||||
], done
|
||||
|
||||
it 'Should remove a user from a group when deleting a user', (done) ->
|
||||
userToDelete = undefined
|
||||
async.waterfall [
|
||||
(cb) ->
|
||||
request.post(baseURL + "/groups").send(
|
||||
name: "TestPrivateGroup"
|
||||
type: "party"
|
||||
)
|
||||
.end (res) ->
|
||||
expectCode res, 200
|
||||
party = res.body
|
||||
cb()
|
||||
|
||||
(cb) ->
|
||||
request.post(baseURL + "/groups").send(
|
||||
name: "TestPrivateGroup"
|
||||
type: "guild"
|
||||
)
|
||||
.end (res) ->
|
||||
expectCode res, 200
|
||||
guild = res.body
|
||||
cb()
|
||||
|
||||
(cb) ->
|
||||
registerManyUsers 1, cb
|
||||
|
||||
@@ -192,3 +198,55 @@ describe "Users", ->
|
||||
cb()
|
||||
|
||||
], done
|
||||
|
||||
it 'Should remove invitations when deleting a user', (done) ->
|
||||
userToDeleteInvites = undefined
|
||||
async.waterfall [
|
||||
(cb) ->
|
||||
registerManyUsers 1, cb
|
||||
|
||||
# Send them invitations
|
||||
(_users, cb) ->
|
||||
userToDeleteInvites = _users[0]
|
||||
inviteURL = baseURL + "/groups/" + party._id + "/invite"
|
||||
request.post(inviteURL)
|
||||
.send( uuids: [userToDeleteInvites._id])
|
||||
.end (res) ->
|
||||
expectCode res, 200
|
||||
cb()
|
||||
|
||||
(cb) ->
|
||||
inviteURL = baseURL + "/groups/" + guild._id + "/invite"
|
||||
request.post(inviteURL)
|
||||
.send( uuids: [userToDeleteInvites._id])
|
||||
.end (res) ->
|
||||
expectCode res, 200
|
||||
cb()
|
||||
|
||||
(cb) ->
|
||||
request.del(baseURL + "/user")
|
||||
.set("X-API-User", userToDeleteInvites._id)
|
||||
.set("X-API-Key", userToDeleteInvites.apiToken)
|
||||
.end (res) ->
|
||||
expectCode res, 200
|
||||
cb()
|
||||
|
||||
(cb) ->
|
||||
request.get(baseURL + "/groups/" + party._id)
|
||||
.end (res) ->
|
||||
expectCode res, 200
|
||||
g = res.body
|
||||
userInviteForGroup = _.find(g.invites, (invite) -> return invite._id == userToDeleteInvites._id; )
|
||||
expect(userInviteForGroup).to.equal(undefined)
|
||||
cb()
|
||||
|
||||
(cb) ->
|
||||
request.get(baseURL + "/groups/" + guild._id)
|
||||
.end (res) ->
|
||||
expectCode res, 200
|
||||
g = res.body
|
||||
userInviteForGroup = _.find(g.invites, (invite) -> return invite._id == userToDeleteInvites._id; )
|
||||
expect(userInviteForGroup).to.equal(undefined)
|
||||
cb()
|
||||
|
||||
], done
|
||||
|
||||
Reference in New Issue
Block a user