mirror of
https://github.com/status-im/codimd.git
synced 2025-02-10 13:16:20 +00:00
68 lines
1.9 KiB
JavaScript
68 lines
1.9 KiB
JavaScript
/* eslint-env node, mocha */
|
|
'use strict'
|
|
|
|
const assert = require('assert')
|
|
const mock = require('mock-require')
|
|
const sinon = require('sinon')
|
|
const { createFakeLogger } = require('../testDoubles/loggerFake')
|
|
const { removeModuleFromRequireCache, makeMockSocket } = require('./utils')
|
|
|
|
describe('cleanDanglingUser', function () {
|
|
let clock
|
|
beforeEach(() => {
|
|
clock = sinon.useFakeTimers()
|
|
mock('../../dist/models', {})
|
|
mock('../../dist/processQueue', require('../testDoubles/ProcessQueueFake'))
|
|
mock('../../dist/logger', createFakeLogger())
|
|
mock('../../dist/history', {})
|
|
mock('../../dist/services/note', {
|
|
saveAllNotesRevision: () => {
|
|
}
|
|
})
|
|
mock('../../dist/config', {
|
|
debug: true,
|
|
db: {}
|
|
})
|
|
mock('../../dist/realtimeUpdateDirtyNoteJob', require('../testDoubles/realtimeJobStub'))
|
|
mock('../../dist/realtimeSaveRevisionJob', require('../testDoubles/realtimeJobStub'))
|
|
})
|
|
|
|
afterEach(() => {
|
|
clock.restore()
|
|
removeModuleFromRequireCache('../../dist/realtime/realtime')
|
|
mock.stopAll()
|
|
sinon.restore()
|
|
})
|
|
|
|
it('should call queueForDisconnectSpy when user is dangling', (done) => {
|
|
const realtime = require('../../dist/realtime/realtime')
|
|
const queueForDisconnectSpy = sinon.spy(realtime, 'queueForDisconnect')
|
|
realtime.io = {
|
|
to: sinon.stub().callsFake(function () {
|
|
return {
|
|
emit: sinon.fake()
|
|
}
|
|
}),
|
|
sockets: {
|
|
connected: {}
|
|
}
|
|
}
|
|
const user1Socket = makeMockSocket()
|
|
const user2Socket = makeMockSocket()
|
|
|
|
user1Socket.rooms.push('room1')
|
|
|
|
realtime.io.sockets.connected[user1Socket.id] = user1Socket
|
|
realtime.io.sockets.connected[user2Socket.id] = user2Socket
|
|
|
|
realtime.users[user1Socket.id] = user1Socket
|
|
realtime.users[user2Socket.id] = user2Socket
|
|
clock.tick(60000)
|
|
clock.restore()
|
|
setTimeout(() => {
|
|
assert(queueForDisconnectSpy.called)
|
|
done()
|
|
}, 50)
|
|
})
|
|
})
|