From c91d02adc048d3b4c6fa5e123b1853c53b74db68 Mon Sep 17 00:00:00 2001 From: Donovan Glover Date: Sat, 10 Jun 2023 09:37:52 -0400 Subject: [PATCH] tests: Modularize import checker --- tests/main.cr | 37 +------------------------------------ tests/spec_helper.cr | 39 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 40 insertions(+), 36 deletions(-) diff --git a/tests/main.cr b/tests/main.cr index e5fb2f8..2d5c1cf 100644 --- a/tests/main.cr +++ b/tests/main.cr @@ -1,38 +1,7 @@ require "spec" -require "colorize" require "./spec_helper" -hint = "" - -describe "./modules/default.nix" do - it "imports all modules in directory" do - all_modules = Dir.children("modules") - all_modules.delete("default.nix") - modules = File.read("./modules/default.nix") - - all_modules.each do |current_module| - hint = "Missing ./#{current_module} import in ./modules/default.nix." - modules.includes?("./#{current_module}").should be_true - end - - hint = "" - end - - it "only imports modules that exist" do - all_modules = Dir.children("modules") - all_modules.delete("default.nix") - - File.each_line("./modules/default.nix") do |line| - if line.includes? "./" - imported_file = line.lstrip(' ').lstrip("./") - hint = "./#{imported_file} was imported but doesn't exist in directory ./modules/." - all_modules.includes?(imported_file).should be_true - end - end - - hint = "" - end -end +check_top_level_imports("modules") describe "./overlays/joshuto/default.nix" do it "uses the latest joshuto commit" do @@ -45,7 +14,3 @@ describe "./overlays/rofi/default.nix" do check_latest_commit("lbonn/rofi", branch: "wayland") end end - -Spec.after_suite do - hint.empty? || puts "✗ #{hint}".colorize(:yellow) -end diff --git a/tests/spec_helper.cr b/tests/spec_helper.cr index aeba636..df13ac2 100644 --- a/tests/spec_helper.cr +++ b/tests/spec_helper.cr @@ -1,6 +1,7 @@ require "spec" require "http/client" require "json" +require "colorize" def check_latest_commit(repository, branch = "master") response = HTTP::Client.get "https://api.github.com/repos/#{repository}/branches/#{branch}" @@ -14,3 +15,41 @@ def check_latest_commit(repository, branch = "master") end end end + +hint = "" + +def check_top_level_imports(directory) + describe "./#{directory}/default.nix" do + it "imports all modules in directory" do + all_modules = Dir.children(directory) + all_modules.delete("default.nix") + modules = File.read("./#{directory}/default.nix") + + all_modules.each do |current_module| + hint = "Missing ./#{current_module} import in ./#{directory}/default.nix." + modules.includes?("./#{current_module}").should be_true + end + + hint = "" + end + + it "only imports modules that exist" do + all_modules = Dir.children(directory) + all_modules.delete("default.nix") + + File.each_line("./#{directory}/default.nix") do |line| + if line.includes? "./" + imported_file = line.lstrip(' ').lstrip("./") + hint = "./#{imported_file} was imported but doesn't exist in directory ./#{directory}/." + all_modules.includes?(imported_file).should be_true + end + end + + hint = "" + end + end +end + +Spec.after_suite do + hint.empty? || puts "✗ #{hint}".colorize(:yellow) +end