Upping user test cases to cover all of controller.
This commit is contained in:
parent
d9151cca0a
commit
929db83e99
|
@ -52,7 +52,7 @@ exports.create = async function(ctx) {
|
||||||
const response = await db.post(user)
|
const response = await db.post(user)
|
||||||
ctx.status = 200
|
ctx.status = 200
|
||||||
ctx.message = "User created successfully."
|
ctx.message = "User created successfully."
|
||||||
ctx.userId = response._id
|
ctx.userId = response.id
|
||||||
ctx.body = {
|
ctx.body = {
|
||||||
_rev: response.rev,
|
_rev: response.rev,
|
||||||
email,
|
email,
|
||||||
|
@ -70,6 +70,9 @@ exports.update = async function(ctx) {
|
||||||
const db = new CouchDB(ctx.user.appId)
|
const db = new CouchDB(ctx.user.appId)
|
||||||
const user = ctx.request.body
|
const user = ctx.request.body
|
||||||
let dbUser
|
let dbUser
|
||||||
|
if (user.email && !user._id) {
|
||||||
|
user._id = generateUserID(user.email)
|
||||||
|
}
|
||||||
// get user incase password removed
|
// get user incase password removed
|
||||||
if (user._id) {
|
if (user._id) {
|
||||||
dbUser = await db.get(user._id)
|
dbUser = await db.get(user._id)
|
||||||
|
@ -87,14 +90,15 @@ exports.update = async function(ctx) {
|
||||||
user._rev = response.rev
|
user._rev = response.rev
|
||||||
|
|
||||||
ctx.status = 200
|
ctx.status = 200
|
||||||
ctx.message = `User ${ctx.request.body.email} updated successfully.`
|
|
||||||
ctx.body = response
|
ctx.body = response
|
||||||
}
|
}
|
||||||
|
|
||||||
exports.destroy = async function(ctx) {
|
exports.destroy = async function(ctx) {
|
||||||
const database = new CouchDB(ctx.user.appId)
|
const database = new CouchDB(ctx.user.appId)
|
||||||
await database.destroy(generateUserID(ctx.params.email))
|
await database.destroy(generateUserID(ctx.params.email))
|
||||||
ctx.message = `User ${ctx.params.email} deleted.`
|
ctx.body = {
|
||||||
|
message: `User ${ctx.params.email} deleted.`,
|
||||||
|
}
|
||||||
ctx.status = 200
|
ctx.status = 200
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -42,15 +42,19 @@ describe("/users", () => {
|
||||||
})
|
})
|
||||||
|
|
||||||
describe("create", () => {
|
describe("create", () => {
|
||||||
|
async function create(user, status = 200) {
|
||||||
|
return request
|
||||||
|
.post(`/api/users`)
|
||||||
|
.set(config.defaultHeaders())
|
||||||
|
.send(user)
|
||||||
|
.expect(status)
|
||||||
|
.expect("Content-Type", /json/)
|
||||||
|
}
|
||||||
|
|
||||||
it("returns a success message when a user is successfully created", async () => {
|
it("returns a success message when a user is successfully created", async () => {
|
||||||
const body = basicUser(BUILTIN_ROLE_IDS.POWER)
|
const body = basicUser(BUILTIN_ROLE_IDS.POWER)
|
||||||
body.email = "bill@budibase.com"
|
body.email = "bill@budibase.com"
|
||||||
const res = await request
|
const res = await create(body)
|
||||||
.post(`/api/users`)
|
|
||||||
.set(config.defaultHeaders())
|
|
||||||
.send(body)
|
|
||||||
.expect(200)
|
|
||||||
.expect("Content-Type", /json/)
|
|
||||||
|
|
||||||
expect(res.res.statusMessage).toEqual("User created successfully.")
|
expect(res.res.statusMessage).toEqual("User created successfully.")
|
||||||
expect(res.body._id).toBeUndefined()
|
expect(res.body._id).toBeUndefined()
|
||||||
|
@ -68,5 +72,65 @@ describe("/users", () => {
|
||||||
failRole: BUILTIN_ROLE_IDS.PUBLIC,
|
failRole: BUILTIN_ROLE_IDS.PUBLIC,
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
|
it("should error if no email provided", async () => {
|
||||||
|
const user = basicUser(BUILTIN_ROLE_IDS.POWER)
|
||||||
|
delete user.email
|
||||||
|
await create(user, 400)
|
||||||
|
})
|
||||||
|
|
||||||
|
it("should error if no role provided", async () => {
|
||||||
|
const user = basicUser(null)
|
||||||
|
await create(user, 400)
|
||||||
|
})
|
||||||
|
|
||||||
|
it("should throw error if user exists already", async () => {
|
||||||
|
await config.createUser("test@test.com")
|
||||||
|
const user = basicUser(BUILTIN_ROLE_IDS.POWER)
|
||||||
|
user.email = "test@test.com"
|
||||||
|
await create(user, 400)
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
describe("update", () => {
|
||||||
|
it("should be able to update the user", async () => {
|
||||||
|
const user = await config.createUser()
|
||||||
|
user.roleId = BUILTIN_ROLE_IDS.BASIC
|
||||||
|
const res = await request
|
||||||
|
.put(`/api/users`)
|
||||||
|
.set(config.defaultHeaders())
|
||||||
|
.send(user)
|
||||||
|
.expect(200)
|
||||||
|
.expect("Content-Type", /json/)
|
||||||
|
expect(res.body.ok).toEqual(true)
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
describe("destroy", () => {
|
||||||
|
it("should be able to delete the user", async () => {
|
||||||
|
const email = "test@test.com"
|
||||||
|
await config.createUser(email)
|
||||||
|
const res = await request
|
||||||
|
.delete(`/api/users/${email}`)
|
||||||
|
.set(config.defaultHeaders())
|
||||||
|
.expect(200)
|
||||||
|
.expect("Content-Type", /json/)
|
||||||
|
expect(res.body.message).toBeDefined()
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
describe("find", () => {
|
||||||
|
it("should be able to find the user", async () => {
|
||||||
|
const email = "test@test.com"
|
||||||
|
await config.createUser(email)
|
||||||
|
const res = await request
|
||||||
|
.get(`/api/users/${email}`)
|
||||||
|
.set(config.defaultHeaders())
|
||||||
|
.expect(200)
|
||||||
|
.expect("Content-Type", /json/)
|
||||||
|
expect(res.body.email).toEqual(email)
|
||||||
|
expect(res.body.roleId).toEqual(BUILTIN_ROLE_IDS.POWER)
|
||||||
|
expect(res.body.tableId).toBeDefined()
|
||||||
|
})
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
|
@ -21,7 +21,7 @@ router
|
||||||
controller.find
|
controller.find
|
||||||
)
|
)
|
||||||
.put(
|
.put(
|
||||||
"/api/users/",
|
"/api/users",
|
||||||
authorized(PermissionTypes.USER, PermissionLevels.WRITE),
|
authorized(PermissionTypes.USER, PermissionLevels.WRITE),
|
||||||
controller.update
|
controller.update
|
||||||
)
|
)
|
||||||
|
|
Loading…
Reference in New Issue