Test updates

This commit is contained in:
Dean 2023-03-07 14:21:55 +00:00
parent c6cddb5c06
commit ec9e570ac2
3 changed files with 29 additions and 16 deletions

View File

@ -18,30 +18,26 @@ describe("/api/global/self", () => {
}) })
describe("update", () => { describe("update", () => {
it("should update self", async () => { it("should reject updates with forbidden keys", async () => {
const user = await config.createUser() const user = await config.createUser()
await config.createSession(user) await config.createSession(user)
delete user.password delete user.password
const res = await config.api.self.updateSelf(user)
const dbUser = await config.getUser(user.email) await config.api.self.updateSelf(user, user).expect(400)
user._rev = dbUser._rev
user.dayPassRecordedAt = mocks.date.MOCK_DATE.toISOString()
expect(res.body._id).toBe(user._id)
expect(events.user.updated).toBeCalledTimes(1)
expect(events.user.updated).toBeCalledWith(dbUser)
expect(events.user.passwordUpdated).not.toBeCalled()
}) })
it("should update password", async () => { it("should update password", async () => {
const user = await config.createUser() const user = await config.createUser()
await config.createSession(user) await config.createSession(user)
user.password = "newPassword" const res = await config.api.self
const res = await config.api.self.updateSelf(user) .updateSelf(user, {
password: "newPassword",
})
.expect(200)
const dbUser = await config.getUser(user.email) const dbUser = await config.getUser(user.email)
user._rev = dbUser._rev user._rev = dbUser._rev
user.dayPassRecordedAt = mocks.date.MOCK_DATE.toISOString() user.dayPassRecordedAt = mocks.date.MOCK_DATE.toISOString()
expect(res.body._id).toBe(user._id) expect(res.body._id).toBe(user._id)
@ -51,4 +47,22 @@ describe("/api/global/self", () => {
expect(events.user.passwordUpdated).toBeCalledWith(dbUser) expect(events.user.passwordUpdated).toBeCalledWith(dbUser)
}) })
}) })
it("should update onboarding", async () => {
const user = await config.createUser()
await config.createSession(user)
const res = await config.api.self
.updateSelf(user, {
onboardedAt: "2023-03-07T14:10:54.869Z",
})
.expect(200)
const dbUser = await config.getUser(user.email)
user._rev = dbUser._rev
user.dayPassRecordedAt = mocks.date.MOCK_DATE.toISOString()
expect(dbUser.onboardedAt).toBe("2023-03-07T14:10:54.869Z")
expect(res.body._id).toBe(user._id)
})
}) })

View File

@ -128,7 +128,7 @@ router
.get("/api/global/users/self", selfController.getSelf) .get("/api/global/users/self", selfController.getSelf)
.post( .post(
"/api/global/users/self", "/api/global/users/self",
users.buildUserSaveValidation(true), users.buildUserSaveValidation(),
selfController.updateSelf selfController.updateSelf
) )

View File

@ -7,13 +7,12 @@ export class SelfAPI extends TestAPI {
super(config) super(config)
} }
updateSelf = (user: User) => { updateSelf = (user: User, update: any) => {
return this.request return this.request
.post(`/api/global/self`) .post(`/api/global/self`)
.send(user) .send(update)
.set(this.config.authHeaders(user)) .set(this.config.authHeaders(user))
.expect("Content-Type", /json/) .expect("Content-Type", /json/)
.expect(200)
} }
getSelf = (user: User) => { getSelf = (user: User) => {