From 981852674a8cffcece60fe30da92b2901d6d84c9 Mon Sep 17 00:00:00 2001 From: Glenn Date: Tue, 2 Jan 2024 14:35:22 +0100 Subject: [PATCH] test: add config spec & data --- spec/config_data/complex_config.yml | 0 spec/config_data/simple_config.yml | 0 spec/config_spec.cr | 72 +++++++++++++++++++++++++++++ 3 files changed, 72 insertions(+) create mode 100644 spec/config_data/complex_config.yml create mode 100644 spec/config_data/simple_config.yml diff --git a/spec/config_data/complex_config.yml b/spec/config_data/complex_config.yml new file mode 100644 index 0000000..e69de29 diff --git a/spec/config_data/simple_config.yml b/spec/config_data/simple_config.yml new file mode 100644 index 0000000..e69de29 diff --git a/spec/config_spec.cr b/spec/config_spec.cr index e69de29..bac4f70 100644 --- a/spec/config_spec.cr +++ b/spec/config_spec.cr @@ -0,0 +1,72 @@ +require "./spec_helper" +require "../src/config" + +CONFIG_FILE_SIMPLE = "spec/config_data/simple_config.yml" +CONFIG_FILE_COMPLEX = "spec/config_data/complex_config.yml" + +describe CodePreloader::Config do + + context "Initialization" do + it "initializes with default values" do + config = CodePreloader::Config.new + config.repository_path_list.should eq [] of String + config.ignore_list.should eq [] of String + config.output_file_path.should be_nil + config.header_prompt_file_path.should be_nil + config.footer_prompt_file_path.should be_nil + end + end + + context "Parse Arguments" do + it "parses repository paths correctly" do + args = ["path/to/repo1", "path/to/repo2"] + config = CodePreloader::Config.new + config.parse_arguments(args) + config.repository_path_list.should eq ["path/to/repo1", "path/to/repo2"] + end + + it "parses ignore paths correctly" do + args = ["-i", "path/to/ignore", "path/to/repo"] + config = CodePreloader::Config.new + config.parse_arguments(args) + config.ignore_list.should eq ["path/to/ignore"] + end + + it "parses output file path correctly" do + args = ["-o", "output.txt", "path/to/repo"] + config = CodePreloader::Config.new + config.parse_arguments(args) + config.output_file_path.should eq "output.txt" + end + + end + + + context "Config File Loading" do + it "loads settings from a simple config file" do + config = CodePreloader::Config.new + args = ["-c", CONFIG_FILE_SIMPLE, "path/to/repo"] + config.parse_arguments(args) + + # Assuming the simple_config.yml has specific settings + config.repository_path_list.should eq ["simple/repo/path"] + config.ignore_list.should eq ["simple/ignore"] + config.output_file_path.should eq "simple_output.txt" + # ... assertions for other properties if needed ... + end + + it "loads settings from a complex config file" do + repo_path ="path/to/repo" + config = CodePreloader::Config.new + args = ["-c", CONFIG_FILE_COMPLEX, repo_path] + config.parse_arguments(args) + + # Assuming the complex_config.yml has specific settings + config.repository_path_list.should eq [repo_path] + config.ignore_list.should eq ["complex/ignore1", "complex/ignore2"] + config.output_file_path.should eq "complex_output.txt" + end + + end + +end