@@ -31,11 +31,20 @@ fn for_file(file_path: String) -> Result<Option<Value>, Error> {
3131 }
3232}
3333
34- // Needed for tests
34+ fn validate ( ) -> Result < Value , Error > {
35+ let run_config = build_run_config ( ) ;
36+ let run_result = runner:: validate ( & run_config, vec ! [ ] ) ;
37+ validate_result ( & run_result)
38+
39+ }
40+
3541fn generate_and_validate ( ) -> Result < Value , Error > {
3642 let run_config = build_run_config ( ) ;
3743 let run_result = runner:: generate_and_validate ( & run_config, vec ! [ ] ) ;
38- dbg ! ( & run_result) ;
44+ validate_result ( & run_result)
45+ }
46+
47+ fn validate_result ( run_result : & runner:: RunResult ) -> Result < Value , Error > {
3948 if !run_result. validation_errors . is_empty ( ) {
4049 Err ( Error :: new (
4150 magnus:: exception:: runtime_error ( ) ,
@@ -73,41 +82,7 @@ fn init(ruby: &Ruby) -> Result<(), Error> {
7382 let module = ruby. define_module ( "RustCodeOwners" ) ?;
7483 module. define_singleton_method ( "for_file" , function ! ( for_file, 1 ) ) ?;
7584 module. define_singleton_method ( "generate_and_validate" , function ! ( generate_and_validate, 0 ) ) ?;
85+ module. define_singleton_method ( "validate" , function ! ( validate, 0 ) ) ?;
7686
7787 Ok ( ( ) )
7888}
79-
80- #[ cfg( test) ]
81- mod tests {
82- use std:: env:: set_current_dir;
83-
84- use super :: * ;
85-
86- #[ test]
87- #[ should_panic]
88- fn test_for_file_with_invalid_path ( ) {
89- // panics because not called from a ruby thread
90- let _result = for_file ( "invalid/path" . to_string ( ) ) ;
91- }
92-
93- #[ test]
94- fn test_for_file ( ) {
95- let argv: [ * mut c_char ; 0 ] = [ ] ;
96- let argv = argv. as_ptr ( ) ;
97- let mut argc = 1 ;
98-
99- let manifest_dir = env ! ( "CARGO_MANIFEST_DIR" ) ;
100- let fixture_path = PathBuf :: from ( manifest_dir) . join ( "tests/fixtures/valid_project" ) ;
101- let _ = set_current_dir ( & fixture_path) . unwrap ( ) ;
102-
103- unsafe {
104- rb_sys:: ruby_sysinit ( & mut argc, argv as _ ) ;
105- rb_sys:: ruby_init ( ) ;
106-
107- init ( ) ;
108- let result = generate_and_validate ( ) ;
109- assert ! ( result. is_ok( ) ) ;
110- rb_sys:: ruby_cleanup ( 0 ) ;
111- }
112- }
113- }
0 commit comments