From 59d18309961ca2fc3b59b5fa04caf576ace7b7c2 Mon Sep 17 00:00:00 2001 From: dak2 Date: Sun, 22 Mar 2026 16:15:16 +0900 Subject: [PATCH] Remove redundant Rust tests from checker, diagnostics, and parser Ruby integration tests already cover these behaviors: - checker: tautological test (assert ok || err) - diagnostics: message format verified by assert_check_error - formatter: output format verified by assert_error_at - parser: smoke tests exercised by every Ruby test Co-Authored-By: Claude Opus 4.6 (1M context) --- core/src/checker.rs | 13 ----- core/src/diagnostics/diagnostic.rs | 41 ---------------- core/src/diagnostics/formatter.rs | 38 --------------- core/src/parser.rs | 77 ------------------------------ 4 files changed, 169 deletions(-) diff --git a/core/src/checker.rs b/core/src/checker.rs index cd68743..35876d2 100644 --- a/core/src/checker.rs +++ b/core/src/checker.rs @@ -134,16 +134,3 @@ fn collect_diagnostics(genv: &GlobalEnv, file_path: &Path) -> Vec { diagnostics } - -#[cfg(test)] -mod tests { - use super::*; - - #[test] - fn test_file_checker_creation() { - // This test will fail if RBS cache doesn't exist - // That's expected - cache should be generated from Ruby side first - let result = FileChecker::new(); - assert!(result.is_ok() || result.is_err()); // Just check it doesn't panic - } -} diff --git a/core/src/diagnostics/diagnostic.rs b/core/src/diagnostics/diagnostic.rs index 6f4fc61..9de791e 100644 --- a/core/src/diagnostics/diagnostic.rs +++ b/core/src/diagnostics/diagnostic.rs @@ -79,44 +79,3 @@ impl Diagnostic { Self::warning(location, message) } } - -#[cfg(test)] -mod tests { - use super::*; - - #[test] - fn test_diagnostic_creation() { - let loc = Location { - file: PathBuf::from("test.rb"), - line: 10, - column: 5, - length: None, - }; - - let diag = Diagnostic::undefined_method(loc.clone(), "Integer", "upcase"); - assert_eq!(diag.level, DiagnosticLevel::Error); - assert_eq!(diag.message, "undefined method `upcase` for Integer"); - } - - #[test] - fn test_union_partial_error() { - let loc = Location { - file: PathBuf::from("test.rb"), - line: 15, - column: 3, - length: None, - }; - - let diag = Diagnostic::union_partial_error( - loc, - vec!["String".to_string()], - vec!["Integer".to_string()], - "upcase", - ); - - assert_eq!(diag.level, DiagnosticLevel::Warning); - assert!(diag - .message - .contains("method `upcase` is defined for String but not for Integer")); - } -} diff --git a/core/src/diagnostics/formatter.rs b/core/src/diagnostics/formatter.rs index 03b074b..b628e23 100644 --- a/core/src/diagnostics/formatter.rs +++ b/core/src/diagnostics/formatter.rs @@ -78,41 +78,3 @@ pub fn format_diagnostics_with_file(diagnostics: &[Diagnostic], file_path: &Path Err(_) => format_diagnostics(diagnostics), // Fallback to simple format } } - -#[cfg(test)] -mod tests { - use super::*; - use crate::diagnostics::diagnostic::{Diagnostic, Location}; - use std::path::PathBuf; - - #[test] - fn test_format_diagnostics() { - let diagnostics = vec![ - Diagnostic::undefined_method( - Location { - file: PathBuf::from("test.rb"), - line: 10, - column: 5, - length: None, - }, - "Integer", - "upcase", - ), - Diagnostic::union_partial_error( - Location { - file: PathBuf::from("test.rb"), - line: 15, - column: 3, - length: None, - }, - vec!["String".to_string()], - vec!["Integer".to_string()], - "upcase", - ), - ]; - - let output = format_diagnostics(&diagnostics); - assert!(output.contains("test.rb:10:5: error:")); - assert!(output.contains("test.rb:15:3: warning:")); - } -} diff --git a/core/src/parser.rs b/core/src/parser.rs index 1146a99..893f623 100644 --- a/core/src/parser.rs +++ b/core/src/parser.rs @@ -77,80 +77,3 @@ impl Default for ParseSession { Self::new() } } - -#[cfg(test)] -mod tests { - use super::*; - - #[test] - fn test_parse_simple_ruby() { - let source = r#"x = 1 -puts x"#; - let session = ParseSession::new(); - let result = session.parse_source(source, "test.rb"); - assert!(result.is_ok()); - } - - #[test] - fn test_parse_string_literal() { - let source = r#""hello".upcase"#; - let session = ParseSession::new(); - let result = session.parse_source(source, "test.rb"); - assert!(result.is_ok()); - } - - #[test] - fn test_parse_array_literal() { - let source = r#"[1, 2, 3].map { |x| x * 2 }"#; - let session = ParseSession::new(); - let result = session.parse_source(source, "test.rb"); - assert!(result.is_ok()); - } - - #[test] - fn test_parse_method_definition() { - let source = r#"def test_method - x = "hello" - x.upcase -end"#; - let session = ParseSession::new(); - let result = session.parse_source(source, "test.rb"); - assert!(result.is_ok()); - } - - #[test] - fn test_parse_invalid_ruby() { - let source = "def\nend end"; - let session = ParseSession::new(); - let result = session.parse_source(source, "test.rb"); - assert!(result.is_err()); - } - - #[test] - fn test_parse_method_call() { - let source = r#"user = User.new -user.save"#; - let session = ParseSession::new(); - let result = session.parse_source(source, "test.rb"); - assert!(result.is_ok()); - } - - #[test] - fn test_parse_session_memory_tracking() { - let session = ParseSession::new(); - let source = "x = 1"; - let _ = session.parse_source(source, "test.rb").unwrap(); - assert!(session.allocated_bytes() > 0); - } - - #[test] - fn test_parse_session_reset() { - let mut session = ParseSession::new(); - let source = "x = 1"; - let _ = session.parse_source(source, "test.rb").unwrap(); - let before_reset = session.allocated_bytes(); - session.reset(); - // After reset, allocated_bytes may still report used chunks but internal data is cleared - assert!(before_reset > 0); - } -}