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