1
+ /**
2
+ * @fileoverview Tests for no-sync.
3
+ * @author Matt DuVall <http://www.mattduvall.com>
4
+ */
5
+
6
+ //------------------------------------------------------------------------------
7
+ // Requirements
8
+ //------------------------------------------------------------------------------
9
+
10
+ var vows = require ( "vows" ) ,
11
+ assert = require ( "assert" ) ,
12
+ eslint = require ( "../../../lib/eslint" ) ;
13
+
14
+ //------------------------------------------------------------------------------
15
+ // Constants
16
+ //------------------------------------------------------------------------------
17
+
18
+ var RULE_ID = "no-sync" ;
19
+
20
+ //------------------------------------------------------------------------------
21
+ // Tests
22
+ //------------------------------------------------------------------------------
23
+
24
+ vows . describe ( RULE_ID ) . addBatch ( {
25
+
26
+ "when evaluating code that uses a *Sync method" : {
27
+
28
+ topic : "var foo = fs.fooSync();" ,
29
+
30
+ "should report a violation" : function ( topic ) {
31
+
32
+ var config = { rules : { } } ;
33
+ config . rules [ RULE_ID ] = 1 ;
34
+
35
+ var messages = eslint . verify ( topic , config ) ;
36
+ assert . equal ( messages . length , 1 ) ;
37
+ assert . equal ( messages [ 0 ] . ruleId , RULE_ID ) ;
38
+ assert . equal ( messages [ 0 ] . message , "Unexpected sync method: 'fooSync'." ) ;
39
+ assert . include ( messages [ 0 ] . node . type , "MemberExpression" ) ;
40
+ }
41
+ } ,
42
+
43
+ "when evaluating code that uses a *Sync property" : {
44
+
45
+ topic : "var foo = fs.fooSync;" ,
46
+
47
+ "should report a violation" : function ( topic ) {
48
+
49
+ var config = { rules : { } } ;
50
+ config . rules [ RULE_ID ] = 1 ;
51
+
52
+ var messages = eslint . verify ( topic , config ) ;
53
+ assert . equal ( messages . length , 1 ) ;
54
+ assert . equal ( messages [ 0 ] . ruleId , RULE_ID ) ;
55
+ assert . equal ( messages [ 0 ] . message , "Unexpected sync method: 'fooSync'." ) ;
56
+ assert . include ( messages [ 0 ] . node . type , "MemberExpression" ) ;
57
+ }
58
+ } ,
59
+
60
+ "when evaluating code that uses a non *Sync method" : {
61
+
62
+ topic : "var foo = fs.foo.foo();" ,
63
+
64
+ "should not report a violation" : function ( topic ) {
65
+
66
+ var config = { rules : { } } ;
67
+ config . rules [ RULE_ID ] = 1 ;
68
+
69
+ var messages = eslint . verify ( topic , config ) ;
70
+ assert . equal ( messages . length , 0 ) ;
71
+ }
72
+ }
73
+
74
+ } ) . export ( module ) ;
0 commit comments