mirror of
https://github.com/discourse/discourse.git
synced 2024-11-27 08:15:48 +08:00
82 lines
2.6 KiB
CoffeeScript
82 lines
2.6 KiB
CoffeeScript
describe "PreloadStore", ->
|
|
|
|
beforeEach ->
|
|
PreloadStore.store('bane', 'evil')
|
|
|
|
describe "contains", ->
|
|
|
|
it "returns false for a key that doesn't exist", ->
|
|
expect(PreloadStore.contains('joker')).toBe(false)
|
|
|
|
it "returns true for a stored key", ->
|
|
expect(PreloadStore.contains('bane')).toBe(true)
|
|
|
|
describe 'getStatic', ->
|
|
|
|
it "returns undefined if the key doesn't exist", ->
|
|
expect(PreloadStore.getStatic('joker')).toBe(undefined)
|
|
|
|
it "returns the the key if it exists", ->
|
|
expect(PreloadStore.getStatic('bane')).toBe('evil')
|
|
|
|
it "removes the key after being called", ->
|
|
PreloadStore.getStatic('bane')
|
|
expect(PreloadStore.getStatic('bane')).toBe(undefined)
|
|
|
|
|
|
describe 'get', ->
|
|
|
|
|
|
it "returns a promise that resolves to undefined", ->
|
|
done = storeResult = null
|
|
PreloadStore.get('joker').then (result) ->
|
|
done = true
|
|
storeResult = result
|
|
waitsFor (-> return done), "Promise never resolved", 1000
|
|
runs -> expect(storeResult).toBe(undefined)
|
|
|
|
it "returns a promise that resolves to the result of the finder", ->
|
|
done = storeResult = null
|
|
finder = -> 'evil'
|
|
PreloadStore.get('joker', finder).then (result) ->
|
|
done = true
|
|
storeResult = result
|
|
waitsFor (-> return done), "Promise never resolved", 1000
|
|
runs -> expect(storeResult).toBe('evil')
|
|
|
|
it "returns a promise that resolves to the result of the finder's promise", ->
|
|
done = storeResult = null
|
|
finder = ->
|
|
promise = new RSVP.Promise
|
|
promise.resolve('evil')
|
|
promise
|
|
|
|
PreloadStore.get('joker', finder).then (result) ->
|
|
done = true
|
|
storeResult = result
|
|
waitsFor (-> return done), "Promise never resolved", 1000
|
|
runs -> expect(storeResult).toBe('evil')
|
|
|
|
it "returns a promise that resolves to the result of the finder's rejected promise", ->
|
|
done = storeResult = null
|
|
finder = ->
|
|
promise = new RSVP.Promise
|
|
promise.reject('evil')
|
|
promise
|
|
|
|
PreloadStore.get('joker', finder).then null, (rejectedResult) ->
|
|
done = true
|
|
storeResult = rejectedResult
|
|
|
|
waitsFor (-> return done), "Promise never rejected", 1000
|
|
runs -> expect(storeResult).toBe('evil')
|
|
|
|
|
|
it "returns a promise that resolves to 'evil'", ->
|
|
done = storeResult = null
|
|
PreloadStore.get('bane').then (result) ->
|
|
done = true
|
|
storeResult = result
|
|
waitsFor (-> return done), "Promise never resolved", 1000
|
|
runs -> expect(storeResult).toBe('evil')
|