2023-06-09 15:06:04 +02:00
|
|
|
require "spec"
|
2023-06-10 15:37:52 +02:00
|
|
|
require "colorize"
|
2023-06-09 15:06:04 +02:00
|
|
|
|
2023-06-10 15:37:52 +02:00
|
|
|
def check_top_level_imports(directory)
|
|
|
|
describe "./#{directory}/default.nix" do
|
2023-06-11 02:07:37 +02:00
|
|
|
it "imports all modules in ./#{directory}/", tags: "local" do
|
2023-06-10 15:37:52 +02:00
|
|
|
all_modules = Dir.children(directory)
|
|
|
|
all_modules.delete("default.nix")
|
|
|
|
modules = File.read("./#{directory}/default.nix")
|
|
|
|
|
|
|
|
all_modules.each do |current_module|
|
|
|
|
modules.includes?("./#{current_module}").should be_true
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
2023-06-11 02:07:37 +02:00
|
|
|
it "only imports modules that exist in ./#{directory}/", tags: "local" do
|
2023-06-10 15:37:52 +02:00
|
|
|
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("./")
|
|
|
|
all_modules.includes?(imported_file).should be_true
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|