Skip to content

Commit aaa6b8c

Browse files
nlfurnissscalvert
authored andcommitted
Add tests for jquery util methods (#90)
1 parent f8e9588 commit aaa6b8c

File tree

2 files changed

+227
-0
lines changed

2 files changed

+227
-0
lines changed

tests/lib/utils/jquery.js

Lines changed: 107 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,107 @@
1+
const assert = require('assert');
2+
const {
3+
isJQueryCallee,
4+
isVariableAssigmentGlobalJquery,
5+
isVariableAssigmentEmberJquery,
6+
isVariableAssigmentJquery
7+
} = require('../../../lib/utils/jquery');
8+
const {
9+
jqueryNodes,
10+
emberJqueryNodes,
11+
notJqueryNodes
12+
} = require('../../mocks/jquery-mocks');
13+
14+
describe('jquery utils', function() {
15+
describe('isJQueryCallee', function() {
16+
it('should return true when the callee is global jQuery', function() {
17+
let node = jqueryNodes['object.callee.property.name'];
18+
assert.equal(isJQueryCallee(node), true);
19+
20+
node = jqueryNodes['object.name'];
21+
assert.equal(isJQueryCallee(node), true);
22+
23+
node = jqueryNodes['object.callee.name'];
24+
assert.equal(isJQueryCallee(node), true);
25+
});
26+
27+
it('should return true when the callee is local jQuery', function() {
28+
const localJqueryArray = ['local$', 'localJayQuery'];
29+
let node = Object.assign({}, jqueryNodes['object.callee.property.name']);
30+
node.object.callee.property.name = 'local$';
31+
assert.equal(isJQueryCallee(node, localJqueryArray), true);
32+
33+
node = Object.assign({}, jqueryNodes['object.name']);
34+
node.object.name = 'local$';
35+
assert.equal(isJQueryCallee(node, localJqueryArray), true);
36+
37+
node = Object.assign({}, jqueryNodes['object.callee.name']);
38+
node.object.callee.name = 'local$';
39+
assert.equal(isJQueryCallee(node, localJqueryArray), true);
40+
});
41+
42+
it('should return false when the callee is not jQuery', function() {
43+
const localJqueryArray = ['local$', 'localJayQuery'];
44+
let node = notJqueryNodes['object.callee.property.name'];
45+
assert.equal(isJQueryCallee(node, localJqueryArray), false);
46+
47+
node = notJqueryNodes['object.name'];
48+
assert.equal(isJQueryCallee(node, localJqueryArray), false);
49+
50+
node = notJqueryNodes['object.callee.name'];
51+
assert.equal(isJQueryCallee(node, localJqueryArray), false);
52+
});
53+
});
54+
55+
describe('isVariableAssigmentGlobalJquery', function() {
56+
it('should return true when the var assignment is global jQuery', function() {
57+
const node = jqueryNodes['init.name'];
58+
assert.equal(isVariableAssigmentGlobalJquery(node), true);
59+
});
60+
it('should return false when the var assignment is not jQuery', function() {
61+
const node = notJqueryNodes['init.name'];
62+
assert.equal(isVariableAssigmentGlobalJquery(node), false);
63+
});
64+
it('should return false when the var assignment is Ember jQuery', function() {
65+
const node = emberJqueryNodes['init.callee.property.name'];
66+
assert.equal(isVariableAssigmentGlobalJquery(node), false);
67+
});
68+
});
69+
70+
describe('isVariableAssigmentEmberJquery', function() {
71+
it('should return true when the var assignment is Ember jQuery', function() {
72+
const node = emberJqueryNodes['init.callee.property.name'];
73+
assert.equal(isVariableAssigmentEmberJquery(node), true);
74+
});
75+
it('should return false when the var assignment is global jQuery', function() {
76+
const node = jqueryNodes['init.name'];
77+
assert.equal(isVariableAssigmentEmberJquery(node), false);
78+
});
79+
it('should return false when the var assignment is not jQuery', function() {
80+
const node = notJqueryNodes['init.name'];
81+
assert.equal(isVariableAssigmentEmberJquery(node), false);
82+
});
83+
});
84+
85+
describe('isVariableAssigmentJquery', function() {
86+
it('should return true when the var assignment\'s name is jQuery', function() {
87+
let node = jqueryNodes['init.callee.property.name'];
88+
assert.equal(isVariableAssigmentJquery(node), true);
89+
90+
node = jqueryNodes['init.name'];
91+
assert.equal(isVariableAssigmentJquery(node), true);
92+
93+
node = jqueryNodes['init.property.name'];
94+
assert.equal(isVariableAssigmentJquery(node), true);
95+
});
96+
it('should return false when the var assignment\'s name is not jQuery', function() {
97+
let node = notJqueryNodes['init.callee.property.name'];
98+
assert.equal(isVariableAssigmentJquery(node), false);
99+
100+
node = notJqueryNodes['init.name'];
101+
assert.equal(isVariableAssigmentJquery(node), false);
102+
103+
node = notJqueryNodes['init.property.name'];
104+
assert.equal(isVariableAssigmentJquery(node), false);
105+
});
106+
});
107+
});

tests/mocks/jquery-mocks.js

Lines changed: 120 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,120 @@
1+
const jqueryNodes = {
2+
'init.callee.property.name': {
3+
init: {
4+
callee: {
5+
property: {
6+
name: '$'
7+
}
8+
}
9+
}
10+
},
11+
'init.name': {
12+
init: {
13+
name: '$'
14+
}
15+
},
16+
'init.property.name': {
17+
init: {
18+
property: {
19+
name: 'jQuery'
20+
}
21+
}
22+
},
23+
'object.callee.property.name': {
24+
object: {
25+
callee: {
26+
property: {
27+
name: '$'
28+
}
29+
}
30+
}
31+
},
32+
'object.callee.name': {
33+
object: {
34+
callee: {
35+
name: '$'
36+
}
37+
}
38+
},
39+
'object.name': {
40+
object: {
41+
name: '$'
42+
}
43+
}
44+
};
45+
46+
const emberJqueryNodes = {
47+
'init.callee.property.name': {
48+
init: {
49+
callee: {
50+
object: {
51+
name: 'Ember'
52+
},
53+
property: {
54+
name: '$'
55+
}
56+
}
57+
}
58+
},
59+
'init.property.name': {
60+
init: {
61+
object: {
62+
name: 'Ember'
63+
},
64+
property: {
65+
name: 'jQuery'
66+
}
67+
}
68+
}
69+
};
70+
71+
const notJqueryNodes = {
72+
'init.callee.property.name': {
73+
init: {
74+
callee: {
75+
property: {
76+
name: 'not$'
77+
}
78+
}
79+
}
80+
},
81+
'init.name': {
82+
init: {
83+
name: 'not$'
84+
}
85+
},
86+
'init.property.name': {
87+
init: {
88+
property: {
89+
name: 'notJquery'
90+
}
91+
}
92+
},
93+
'object.callee.property.name': {
94+
object: {
95+
callee: {
96+
property: {
97+
name: 'not$'
98+
}
99+
}
100+
}
101+
},
102+
'object.callee.name': {
103+
object: {
104+
callee: {
105+
name: '$nope'
106+
}
107+
}
108+
},
109+
'object.name': {
110+
object: {
111+
name: 'notJquery'
112+
}
113+
}
114+
};
115+
116+
module.exports = {
117+
jqueryNodes,
118+
emberJqueryNodes,
119+
notJqueryNodes
120+
};

0 commit comments

Comments
 (0)