mirror of
https://github.com/overleaf/overleaf.git
synced 2024-12-29 13:32:37 +00:00
59 lines
1.8 KiB
CoffeeScript
59 lines
1.8 KiB
CoffeeScript
SandboxedModule = require('sandboxed-module')
|
|
assert = require('assert')
|
|
require('chai').should()
|
|
sinon = require('sinon')
|
|
modulePath = require('path').join __dirname, '../../../../app/js/Features/SystemMessages/SystemMessageManager.js'
|
|
|
|
|
|
describe 'SystemMessageManager', ->
|
|
beforeEach ->
|
|
@SystemMessage = {}
|
|
@SystemMessageManager = SandboxedModule.require modulePath, requires:
|
|
"../../models/SystemMessage": SystemMessage: @SystemMessage
|
|
@callback = sinon.stub()
|
|
|
|
describe "getMessage", ->
|
|
beforeEach ->
|
|
@messages = ["messages-stub"]
|
|
@SystemMessage.find = sinon.stub().callsArgWith(1, null, @messages)
|
|
|
|
describe "when the messages are not cached", ->
|
|
beforeEach ->
|
|
@SystemMessageManager.getMessages @callback
|
|
|
|
it "should look the messages up in the database", ->
|
|
@SystemMessage.find
|
|
.calledWith({})
|
|
.should.equal true
|
|
|
|
it "should return the messages", ->
|
|
@callback.calledWith(null, @messages).should.equal true
|
|
|
|
it "should cache the messages", ->
|
|
@SystemMessageManager._cachedMessages.should.equal @messages
|
|
|
|
describe "when the messages are cached", ->
|
|
beforeEach ->
|
|
@SystemMessageManager._cachedMessages = @messages
|
|
@SystemMessageManager.getMessages @callback
|
|
|
|
it "should not look the messages up in the database", ->
|
|
@SystemMessage.find.called.should.equal false
|
|
|
|
it "should return the messages", ->
|
|
@callback.calledWith(null, @messages).should.equal true
|
|
|
|
describe "clearMessages", ->
|
|
beforeEach ->
|
|
@SystemMessage.remove = sinon.stub().callsArg(1)
|
|
@SystemMessageManager.clearMessages @callback
|
|
|
|
it "should remove the messages from the database", ->
|
|
@SystemMessage.remove
|
|
.calledWith({})
|
|
.should.equal true
|
|
|
|
it "should return the callback", ->
|
|
@callback.called.should.equal true
|
|
|
|
|