@@ -19,8 +19,11 @@ fn extracts_named_fn() {
1919 let scopes = extract_scope_names ( src) ;
2020 let scopes = scope_strs ( scopes) ;
2121
22- assert_eq ! ( scopes[ 0 ] , ( 9 ..81 , Some ( "fn_decl" . into( ) ) ) ) ;
23- assert_eq ! ( scopes[ 1 ] , ( 49 ..70 , Some ( "fn_expr" . into( ) ) ) ) ;
22+ let expected = [
23+ ( 9 ..81 , Some ( "fn_decl" . into ( ) ) ) ,
24+ ( 49 ..70 , Some ( "fn_expr" . into ( ) ) ) ,
25+ ] ;
26+ assert_eq ! ( scopes, expected) ;
2427}
2528
2629#[ test]
@@ -35,8 +38,11 @@ fn extracts_named_class() {
3538 let scopes = extract_scope_names ( src) ;
3639 let scopes = scope_strs ( scopes) ;
3740
38- assert_eq ! ( scopes[ 0 ] , ( 9 ..123 , Some ( "new class_decl" . into( ) ) ) ) ;
39- assert_eq ! ( scopes[ 1 ] , ( 79 ..98 , Some ( "new class_expr" . into( ) ) ) ) ;
41+ let expected = [
42+ ( 9 ..123 , Some ( "new class_decl" . into ( ) ) ) ,
43+ ( 79 ..98 , Some ( "new class_expr" . into ( ) ) ) ,
44+ ] ;
45+ assert_eq ! ( scopes, expected) ;
4046}
4147
4248#[ test]
@@ -49,9 +55,12 @@ fn infer_from_decl() {
4955 let scopes = extract_scope_names ( src) ;
5056 let scopes = scope_strs ( scopes) ;
5157
52- assert_eq ! ( scopes[ 0 ] , ( 23 ..37 , Some ( "anon_fn" . into( ) ) ) ) ;
53- assert_eq ! ( scopes[ 1 ] , ( 64 ..72 , Some ( "new anon_class" . into( ) ) ) ) ;
54- assert_eq ! ( scopes[ 2 ] , ( 96 ..104 , Some ( "arrow" . into( ) ) ) ) ;
58+ let expected = [
59+ ( 23 ..37 , Some ( "anon_fn" . into ( ) ) ) ,
60+ ( 64 ..72 , Some ( "new anon_class" . into ( ) ) ) ,
61+ ( 96 ..104 , Some ( "arrow" . into ( ) ) ) ,
62+ ] ;
63+ assert_eq ! ( scopes, expected) ;
5564}
5665
5766#[ test]
@@ -63,6 +72,52 @@ fn infer_from_assign() {
6372 let scopes = extract_scope_names ( src) ;
6473 let scopes = scope_strs ( scopes) ;
6574
66- assert_eq ! ( scopes[ 0 ] , ( 23 ..37 , Some ( "assigned_fn" . into( ) ) ) ) ;
67- assert_eq ! ( scopes[ 1 ] , ( 69 ..77 , Some ( "new deep.assigned.klass" . into( ) ) ) ) ;
75+ let expected = [
76+ ( 23 ..37 , Some ( "assigned_fn" . into ( ) ) ) ,
77+ ( 69 ..77 , Some ( "new deep.assigned.klass" . into ( ) ) ) ,
78+ ] ;
79+ assert_eq ! ( scopes, expected) ;
80+ }
81+
82+ #[ test]
83+ fn extract_obj_literal ( ) {
84+ let src = r#"
85+ const obj_literal = {
86+ named_prop: function named_prop() {},
87+ anon_prop: function () {},
88+ arrow_prop: () => {},
89+ method_prop() {},
90+ };
91+ "# ;
92+ let scopes = extract_scope_names ( src) ;
93+ let scopes = scope_strs ( scopes) ;
94+
95+ let expected = [
96+ ( 55 ..79 , Some ( "named_prop" . into ( ) ) ) ,
97+ ( 104 ..118 , Some ( "obj_literal.anon_prop" . into ( ) ) ) ,
98+ ( 144 ..152 , Some ( "obj_literal.arrow_prop" . into ( ) ) ) ,
99+ ( 166 ..182 , Some ( "obj_literal.method_prop" . into ( ) ) ) ,
100+ ] ;
101+ assert_eq ! ( scopes, expected) ;
102+ }
103+
104+ #[ test]
105+ fn extract_method_names ( ) {
106+ let src = r#"
107+ class class_decl {
108+ static static_method() {}
109+ class_method() {}
110+ #private_method() {}
111+ }
112+ "# ;
113+ let scopes = extract_scope_names ( src) ;
114+ let scopes = scope_strs ( scopes) ;
115+
116+ let expected = [
117+ ( 9 ..138 , Some ( "new class_decl" . into ( ) ) ) ,
118+ ( 40 ..65 , Some ( "class_decl.static_method" . into ( ) ) ) ,
119+ ( 78 ..95 , Some ( "class_decl.class_method" . into ( ) ) ) ,
120+ ( 108 ..128 , Some ( "class_decl.#private_method" . into ( ) ) ) ,
121+ ] ;
122+ assert_eq ! ( scopes, expected) ;
68123}
0 commit comments