mirror of
https://github.com/overleaf/overleaf.git
synced 2025-03-03 01:53:22 +00:00
fix eventlogger tests to use name with dashes
This commit is contained in:
parent
efa83b4cde
commit
936311f1fb
1 changed files with 52 additions and 28 deletions
|
@ -11,9 +11,11 @@ describe 'EventLogger', ->
|
|||
tk.freeze(new Date(@start))
|
||||
@EventLogger = SandboxedModule.require modulePath, requires:
|
||||
"logger-sharelatex": @logger = {error: sinon.stub()}
|
||||
@id_1 = "abc-1"
|
||||
"metrics-sharelatex": @metrics = {inc: sinon.stub()}
|
||||
@channel = "applied-ops"
|
||||
@id_1 = "random-hostname:abc-1"
|
||||
@message_1 = "message-1"
|
||||
@id_2 = "abc-2"
|
||||
@id_2 = "random-hostname:abc-2"
|
||||
@message_2 = "message-2"
|
||||
|
||||
afterEach ->
|
||||
|
@ -21,32 +23,54 @@ describe 'EventLogger', ->
|
|||
|
||||
describe 'checkEventOrder', ->
|
||||
|
||||
it 'should accept events in order', ->
|
||||
@EventLogger.checkEventOrder(@id_1, @message_1)
|
||||
status = @EventLogger.checkEventOrder(@id_2, @message_2)
|
||||
expect(status).to.be.undefined
|
||||
describe 'when the events are in order', ->
|
||||
beforeEach ->
|
||||
@EventLogger.checkEventOrder(@channel, @id_1, @message_1)
|
||||
@status = @EventLogger.checkEventOrder(@channel, @id_2, @message_2)
|
||||
|
||||
it 'should return "duplicate" for the same event', ->
|
||||
@EventLogger.checkEventOrder(@id_1, @message_1)
|
||||
status = @EventLogger.checkEventOrder(@id_1, @message_1)
|
||||
expect(status).to.equal "duplicate"
|
||||
it 'should accept events in order', ->
|
||||
expect(@status).to.be.undefined
|
||||
|
||||
it 'should log an error for out of order events', ->
|
||||
@EventLogger.checkEventOrder(@id_1, @message_1)
|
||||
@EventLogger.checkEventOrder(@id_2, @message_2)
|
||||
status = @EventLogger.checkEventOrder(@id_1, @message_1)
|
||||
expect(status).to.be.undefined
|
||||
it 'should increment the valid event metric', ->
|
||||
@metrics.inc.calledWith("event.#{@channel}.valid", 1)
|
||||
.should.equal.true
|
||||
|
||||
it 'should flush old entries', ->
|
||||
@EventLogger.MAX_EVENTS_BEFORE_CLEAN = 10
|
||||
@EventLogger.checkEventOrder(@id_1, @message_1)
|
||||
for i in [1..8]
|
||||
status = @EventLogger.checkEventOrder(@id_1, @message_1)
|
||||
expect(status).to.equal "duplicate"
|
||||
# the next event should flush the old entries aboce
|
||||
@EventLogger.MAX_STALE_TIME_IN_MS=1000
|
||||
tk.freeze(new Date(@start + 5 * 1000))
|
||||
# because we flushed the entries this should not be a duplicate
|
||||
@EventLogger.checkEventOrder('other-1', @message_2)
|
||||
status = @EventLogger.checkEventOrder(@id_1, @message_1)
|
||||
expect(status).to.be.undefined
|
||||
describe 'when there is a duplicate events', ->
|
||||
beforeEach ->
|
||||
@EventLogger.checkEventOrder(@channel, @id_1, @message_1)
|
||||
@status = @EventLogger.checkEventOrder(@channel, @id_1, @message_1)
|
||||
|
||||
it 'should return "duplicate" for the same event', ->
|
||||
expect(@status).to.equal "duplicate"
|
||||
|
||||
it 'should increment the duplicate event metric', ->
|
||||
@metrics.inc.calledWith("event.#{@channel}.duplicate", 1)
|
||||
.should.equal.true
|
||||
|
||||
describe 'when there are out of order events', ->
|
||||
beforeEach ->
|
||||
@EventLogger.checkEventOrder(@channel, @id_1, @message_1)
|
||||
@EventLogger.checkEventOrder(@channel, @id_2, @message_2)
|
||||
@status = @EventLogger.checkEventOrder(@channel, @id_1, @message_1)
|
||||
|
||||
it 'should return "out-of-order" for the event', ->
|
||||
expect(@status).to.equal "out-of-order"
|
||||
|
||||
it 'should increment the out-of-order event metric', ->
|
||||
@metrics.inc.calledWith("event.#{@channel}.out-of-order", 1)
|
||||
.should.equal.true
|
||||
|
||||
describe 'after MAX_STALE_TIME_IN_MS', ->
|
||||
it 'should flush old entries', ->
|
||||
@EventLogger.MAX_EVENTS_BEFORE_CLEAN = 10
|
||||
@EventLogger.checkEventOrder(@channel, @id_1, @message_1)
|
||||
for i in [1..8]
|
||||
status = @EventLogger.checkEventOrder(@channel, @id_1, @message_1)
|
||||
expect(status).to.equal "duplicate"
|
||||
# the next event should flush the old entries aboce
|
||||
@EventLogger.MAX_STALE_TIME_IN_MS=1000
|
||||
tk.freeze(new Date(@start + 5 * 1000))
|
||||
# because we flushed the entries this should not be a duplicate
|
||||
@EventLogger.checkEventOrder(@channel, 'other-1', @message_2)
|
||||
status = @EventLogger.checkEventOrder(@channel, @id_1, @message_1)
|
||||
expect(status).to.be.undefined
|
Loading…
Reference in a new issue