From 4550ffca92b14ea7c246f843f3b35396b7288788 Mon Sep 17 00:00:00 2001 From: Jeremiah Russell Date: Thu, 23 Oct 2025 10:48:30 +0100 Subject: [PATCH] =?UTF-8?q?=F0=9F=A7=B9=20Refactor:=20eliminate=20test=20d?= =?UTF-8?q?uplication=20with=20helper=20functions?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tests/init_integration_tests.rs | 34 ++++++++++++++++++++++----------- 1 file changed, 23 insertions(+), 11 deletions(-) diff --git a/tests/init_integration_tests.rs b/tests/init_integration_tests.rs index 12068eb..d6a264d 100644 --- a/tests/init_integration_tests.rs +++ b/tests/init_integration_tests.rs @@ -79,6 +79,24 @@ fn run_init_with_credential( cmd.assert() } +/// Helper to verify standard init file creation. +/// +/// Checks that config directory, cull-gmail.toml, and gmail1 directory were created. +fn verify_standard_init_files(config_dir: &std::path::Path) { + assert!(config_dir.exists()); + assert!(config_dir.join("cull-gmail.toml").exists()); + assert!(config_dir.join("gmail1").exists()); +} + +/// Helper to verify standard config file content. +/// +/// Checks for common configuration entries. +fn verify_standard_config_content(config_dir: &std::path::Path) { + let config_content = std::fs::read_to_string(config_dir.join("cull-gmail.toml")).unwrap(); + assert!(config_content.contains("credential_file = \"credential.json\"")); + assert!(config_content.contains("execute = false")); +} + #[test] fn test_init_help() { let mut cmd = Command::cargo_bin("cull-gmail").unwrap(); @@ -227,16 +245,12 @@ fn test_init_actual_execution() { .stdout(predicate::str::contains("rules.toml")) .stdout(predicate::str::contains("Next steps:")); - // Verify files were actually created - assert!(config_dir.exists()); - assert!(config_dir.join("cull-gmail.toml").exists()); + // Verify standard files were created + verify_standard_init_files(&config_dir); assert!(config_dir.join("rules.toml").exists()); - assert!(config_dir.join("gmail1").exists()); // Verify file contents - let config_content = std::fs::read_to_string(config_dir.join("cull-gmail.toml")).unwrap(); - assert!(config_content.contains("credential_file = \"credential.json\"")); - assert!(config_content.contains("execute = false")); + verify_standard_config_content(&config_dir); let rules_content = std::fs::read_to_string(config_dir.join("rules.toml")).unwrap(); assert!(rules_content.contains("# Example rules for cull-gmail")); @@ -478,10 +492,8 @@ fn test_init_with_skip_rules_creates_config_but_not_rules() { "rules.toml (SKIPPED - expected to be provided externally)", )); - // Verify config directory was created - assert!(config_dir.exists()); - assert!(config_dir.join("cull-gmail.toml").exists()); - assert!(config_dir.join("gmail1").exists()); + // Verify standard files were created + verify_standard_init_files(&config_dir); // Verify rules.toml was NOT created assert!(!config_dir.join("rules.toml").exists());