mirror of
https://github.com/standardnotes/server
synced 2026-10-16 09:13:26 -04:00
* wip: initial sqlite bootstrap * wip: switch to sqlite3 as default db type * wip: boilerplate data * fix(auth): case sensitive register and login * fix(auth): refactor username validations * fix(auth): allow changing username to both username and email: * fix(auth): lock middleware for recovery log in * fix(domain-core): specs for invalid types * fix(auth): lock middleware specs * fix(auth): typeorm code arrangements * fix: running e2e on both mysql and sqlite in ci
66 lines
2.2 KiB
TypeScript
66 lines
2.2 KiB
TypeScript
import 'reflect-metadata'
|
|
|
|
import { TimerInterface } from '@standardnotes/time'
|
|
|
|
import { User } from '../User/User'
|
|
import { UserRepositoryInterface } from '../User/UserRepositoryInterface'
|
|
import { AuthResponseFactoryInterface } from '../Auth/AuthResponseFactoryInterface'
|
|
import { AuthResponseFactoryResolverInterface } from '../Auth/AuthResponseFactoryResolverInterface'
|
|
|
|
import { UpdateUser } from './UpdateUser'
|
|
|
|
describe('UpdateUser', () => {
|
|
let userRepository: UserRepositoryInterface
|
|
let authResponseFactoryResolver: AuthResponseFactoryResolverInterface
|
|
let authResponseFactory: AuthResponseFactoryInterface
|
|
let user: User
|
|
let timer: TimerInterface
|
|
|
|
const createUseCase = () => new UpdateUser(userRepository, authResponseFactoryResolver, timer)
|
|
|
|
beforeEach(() => {
|
|
userRepository = {} as jest.Mocked<UserRepositoryInterface>
|
|
userRepository.save = jest.fn()
|
|
userRepository.findOneByUsernameOrEmail = jest.fn().mockReturnValue(undefined)
|
|
|
|
authResponseFactory = {} as jest.Mocked<AuthResponseFactoryInterface>
|
|
authResponseFactory.createResponse = jest.fn().mockReturnValue({ foo: 'bar' })
|
|
|
|
authResponseFactoryResolver = {} as jest.Mocked<AuthResponseFactoryResolverInterface>
|
|
authResponseFactoryResolver.resolveAuthResponseFactoryVersion = jest.fn().mockReturnValue(authResponseFactory)
|
|
|
|
user = {} as jest.Mocked<User>
|
|
user.uuid = '123'
|
|
user.email = '[email protected]'
|
|
user.createdAt = new Date(1)
|
|
|
|
timer = {} as jest.Mocked<TimerInterface>
|
|
timer.getUTCDate = jest.fn().mockReturnValue(new Date(1))
|
|
})
|
|
|
|
it('should update user fields and save it', async () => {
|
|
expect(
|
|
await createUseCase().execute({
|
|
user,
|
|
updatedWithUserAgent: 'Mozilla',
|
|
apiVersion: '20190520',
|
|
version: '004',
|
|
pwCost: 11,
|
|
pwSalt: 'qweqwe',
|
|
pwNonce: undefined,
|
|
}),
|
|
).toEqual({ success: true, authResponse: { foo: 'bar' } })
|
|
|
|
expect(userRepository.save).toHaveBeenCalledWith({
|
|
createdAt: new Date(1),
|
|
pwCost: 11,
|
|
email: '[email protected]',
|
|
pwSalt: 'qweqwe',
|
|
updatedWithUserAgent: 'Mozilla',
|
|
uuid: '123',
|
|
version: '004',
|
|
updatedAt: new Date(1),
|
|
})
|
|
})
|
|
})
|