mirror of
https://github.com/Permissionless-Software-Foundation/bch-dex.git
synced 2026-09-21 16:52:00 -07:00
feat(chats): Added timer to delete old deleted chat and post database models
This commit is contained in:
@@ -187,4 +187,20 @@ describe('#Timer-Controllers', () => {
|
||||
assert.equal(result, false)
|
||||
})
|
||||
})
|
||||
describe('#removeOlderDeletedChatsAndPosts', () => {
|
||||
it('should kick off the Use Cases and return true', async () => {
|
||||
sandbox.stub(uut.useCases.nostr, 'removeOlderDeletedChats').resolves()
|
||||
sandbox.stub(uut.useCases.nostr, 'removeOlderDeletedPosts').resolves()
|
||||
const result = await uut.removeOlderDeletedChatsAndPosts()
|
||||
|
||||
assert.equal(result, true)
|
||||
})
|
||||
})
|
||||
it('should kick off the Use Cases and return false on error', async () => {
|
||||
sandbox.stub(uut.useCases.nostr, 'removeOlderDeletedChats').throws(new Error('test error'))
|
||||
sandbox.stub(uut.useCases.nostr, 'removeOlderDeletedPosts').throws(new Error('test error'))
|
||||
const result = await uut.removeOlderDeletedChatsAndPosts()
|
||||
|
||||
assert.equal(result, false)
|
||||
})
|
||||
})
|
||||
|
||||
@@ -148,7 +148,12 @@ class NostrUseCasesMock {
|
||||
async getDeletedPosts() {
|
||||
return []
|
||||
}
|
||||
|
||||
async removeOlderDeletedChats() {
|
||||
return true
|
||||
}
|
||||
async removeOlderDeletedPosts() {
|
||||
return true
|
||||
}
|
||||
}
|
||||
|
||||
class UseCasesMock {
|
||||
|
||||
@@ -210,4 +210,78 @@ describe('#nostr-use-cases', () => {
|
||||
assert.include(err.message, 'test error')
|
||||
}
|
||||
})
|
||||
describe('#removeOlderDeletedChats', () => {
|
||||
it('should remove older deleted chats from the database', async () => {
|
||||
const threeMonthsAgo = new Date()
|
||||
threeMonthsAgo.setMonth(threeMonthsAgo.getMonth() - 3) // 3 months ago
|
||||
threeMonthsAgo.setDate(threeMonthsAgo.getDate() - 1) // 1 day ago
|
||||
const spy = sinon.spy()
|
||||
const deletedChatsMock = [
|
||||
// Newer deleted chat
|
||||
{
|
||||
eventId: 'note19e93faw4ffqepsqsrwrnstd3ee00nmzakwwuyfjm43dankgummfqms4p6q',
|
||||
createdAt: new Date(),
|
||||
remove: spy
|
||||
},
|
||||
// Older deleted chat
|
||||
{
|
||||
eventId: 'note19e93faw4ffqepsqsrwrnstd3ee00nmzakwwuyfjm43dankgummfqms4p6q',
|
||||
createdAt: threeMonthsAgo,
|
||||
remove: spy
|
||||
}
|
||||
]
|
||||
sandbox.stub(uut.DeletedChatModel, 'find').resolves(deletedChatsMock)
|
||||
await uut.removeOlderDeletedChats()
|
||||
assert.equal(spy.callCount, 1, 'Expected to be called once.')
|
||||
})
|
||||
it('should handle error', async () => {
|
||||
try {
|
||||
// Force an error.
|
||||
sandbox.stub(uut.DeletedChatModel, 'find').throws(new Error('test error'))
|
||||
|
||||
await uut.removeOlderDeletedChats()
|
||||
|
||||
assert.fail('Unexpected code path')
|
||||
} catch (err) {
|
||||
assert.include(err.message, 'test error')
|
||||
}
|
||||
})
|
||||
})
|
||||
describe('#removeOlderDeletedPosts', () => {
|
||||
it('should remove older deleted posts from the database', async () => {
|
||||
const threeMonthsAgo = new Date()
|
||||
threeMonthsAgo.setMonth(threeMonthsAgo.getMonth() - 3) // 3 months ago
|
||||
threeMonthsAgo.setDate(threeMonthsAgo.getDate() - 1) // 1 day ago
|
||||
const spy = sinon.spy()
|
||||
const deletedPostsMock = [
|
||||
// Newer deleted post
|
||||
{
|
||||
eventId: 'note19e93faw4ffqepsqsrwrnstd3ee00nmzakwwuyfjm43dankgummfqms4p6q',
|
||||
createdAt: new Date(),
|
||||
remove: spy
|
||||
},
|
||||
// Older deleted post
|
||||
{
|
||||
eventId: 'note19e93faw4ffqepsqsrwrnstd3ee00nmzakwwuyfjm43dankgummfqms4p6q',
|
||||
createdAt: threeMonthsAgo,
|
||||
remove: spy
|
||||
}
|
||||
]
|
||||
sandbox.stub(uut.DeletedPostModel, 'find').resolves(deletedPostsMock)
|
||||
await uut.removeOlderDeletedPosts()
|
||||
assert.equal(spy.callCount, 1, 'Expected to be called once.')
|
||||
})
|
||||
it('should handle error', async () => {
|
||||
try {
|
||||
// Force an error.
|
||||
sandbox.stub(uut.DeletedPostModel, 'find').throws(new Error('test error'))
|
||||
|
||||
await uut.removeOlderDeletedPosts()
|
||||
|
||||
assert.fail('Unexpected code path')
|
||||
} catch (err) {
|
||||
assert.include(err.message, 'test error')
|
||||
}
|
||||
})
|
||||
})
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user