redeyed-browser.js 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. 'use strict'
  2. /*jshint asi: true, browser: true*/
  3. /*global define window */
  4. var test = require('tap').test
  5. , util = require('util')
  6. , redeyedExport = require('..')
  7. , redeyedkey = require.resolve('..')
  8. , esprima = require('esprima')
  9. function setup() {
  10. // remove redeyed from require cache to force re-require for each test
  11. delete require.cache[redeyedkey];
  12. // remove globals
  13. delete global.window;
  14. delete global.define;
  15. }
  16. // TODO: need to run in vm in order to properly simulate require and module not being present
  17. return;
  18. test('define and window exist', function (t) {
  19. var defineCb
  20. , deps
  21. setup()
  22. // declare browser globals
  23. global.window = { }
  24. global.define = function (deps_, cb) {
  25. deps_ = deps
  26. defineCb = cb
  27. }
  28. define.amd = true
  29. var redeyed = require('..')
  30. , definedredeyed = defineCb(esprima)
  31. t.equal(window.redeyed, undefined, 'redeyed is not attached to window')
  32. t.notEqual(redeyed.toString(), redeyedExport.toString(), 'redeyed is not exported')
  33. t.equal(definedredeyed.toString(), redeyedExport.toString(), 'redeyed is defined')
  34. t.end()
  35. })
  36. test('window exists, but define doesn\'t', function (t) {
  37. setup()
  38. // declare browser globals
  39. global.window = { esprima: esprima }
  40. var redeyed = require('..')
  41. t.equal(window.redeyed.toString(), redeyedExport.toString(), 'redeyed is attached to window')
  42. t.notEqual(redeyed.toString(), redeyedExport.toString(), 'redeyed is not exported')
  43. t.end()
  44. })
  45. test('neither window nor define exist', function (t) {
  46. setup()
  47. var redeyed = require('..')
  48. t.equal(redeyed.toString(), redeyedExport.toString(), 'redeyed is exported')
  49. t.end()
  50. })