remote.require should return the same object for the same module.
This is required to use jasmine to test methods of the remote module.
This commit is contained in:
parent
2f9c30dd50
commit
620c9fa109
2 changed files with 15 additions and 1 deletions
|
@ -87,9 +87,14 @@ window.addEventListener 'unload', (event) ->
|
||||||
ipc.sendChannelSync 'ATOM_BROWSER_RELEASE_RENDER_VIEW'
|
ipc.sendChannelSync 'ATOM_BROWSER_RELEASE_RENDER_VIEW'
|
||||||
|
|
||||||
# Get remote module.
|
# Get remote module.
|
||||||
|
# (Just like node's require, the modules are cached permanently, note that this
|
||||||
|
# is safe leak since the object is not expected to get freed in browser)
|
||||||
|
moduleCache = {}
|
||||||
exports.require = (module) ->
|
exports.require = (module) ->
|
||||||
|
return moduleCache[module] if moduleCache[module]?
|
||||||
|
|
||||||
meta = ipc.sendChannelSync 'ATOM_BROWSER_REQUIRE', module
|
meta = ipc.sendChannelSync 'ATOM_BROWSER_REQUIRE', module
|
||||||
metaToValue meta
|
moduleCache[module] = metaToValue meta
|
||||||
|
|
||||||
# Get object with specified id.
|
# Get object with specified id.
|
||||||
exports.getObject = (id) ->
|
exports.getObject = (id) ->
|
||||||
|
|
9
spec/api/ipc.coffee
Normal file
9
spec/api/ipc.coffee
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
assert = require 'assert'
|
||||||
|
remote = require 'remote'
|
||||||
|
|
||||||
|
describe 'ipc', ->
|
||||||
|
describe 'remote.require', ->
|
||||||
|
it 'should returns same object for the same module', ->
|
||||||
|
dialog1 = remote.require 'dialog'
|
||||||
|
dialog2 = remote.require 'dialog'
|
||||||
|
assert.equal dialog1, dialog2
|
Loading…
Add table
Reference in a new issue