mirror of
https://github.com/standardnotes/server
synced 2026-10-16 18:13:09 -04:00
feat(auth): add session traces cleanup procedure
This commit is contained in:
@@ -0,0 +1,19 @@
|
||||
import { SessionTraceRepositoryInterface } from '../../Session/SessionTraceRepositoryInterface'
|
||||
import { CleanupSessionTraces } from './CleanupSessionTraces'
|
||||
|
||||
describe('CleanupSessionTraces', () => {
|
||||
let sessionTracesRepository: SessionTraceRepositoryInterface
|
||||
|
||||
const createUseCase = () => new CleanupSessionTraces(sessionTracesRepository)
|
||||
|
||||
beforeEach(() => {
|
||||
sessionTracesRepository = {} as jest.Mocked<SessionTraceRepositoryInterface>
|
||||
sessionTracesRepository.removeExpiredBefore = jest.fn()
|
||||
})
|
||||
|
||||
it('should remove stale session traces', async () => {
|
||||
await createUseCase().execute({ date: new Date() })
|
||||
|
||||
expect(sessionTracesRepository.removeExpiredBefore).toHaveBeenCalled()
|
||||
})
|
||||
})
|
||||
@@ -0,0 +1,14 @@
|
||||
import { Result, UseCaseInterface } from '@standardnotes/domain-core'
|
||||
|
||||
import { SessionTraceRepositoryInterface } from '../../Session/SessionTraceRepositoryInterface'
|
||||
import { CleanupSessionTracesDTO } from './CleanupSessionTracesDTO'
|
||||
|
||||
export class CleanupSessionTraces implements UseCaseInterface<string> {
|
||||
constructor(private sessionTracesRepository: SessionTraceRepositoryInterface) {}
|
||||
|
||||
async execute(dto: CleanupSessionTracesDTO): Promise<Result<string>> {
|
||||
await this.sessionTracesRepository.removeExpiredBefore(dto.date)
|
||||
|
||||
return Result.ok('Session traces removed')
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
export interface CleanupSessionTracesDTO {
|
||||
date: Date
|
||||
}
|
||||
Reference in New Issue
Block a user