From 8cee0c5ac6c6c119f0fe6e270717c12e98c7dfaf Mon Sep 17 00:00:00 2001 From: Alex Evanczuk Date: Wed, 14 Dec 2022 11:48:13 -0500 Subject: [PATCH] Rename files to match module nesting --- test/integration/custom_executable_test.rb | 165 ------------------ test/integration/offense_collection_test.rb | 61 ------- .../custom_executable_integration_test.rb | 163 +++++++++++++++++ .../offense_collection_integration_test.rb | 59 +++++++ .../application_fixture_helper.rb | 0 test/support/{ => packwerk}/factory_helper.rb | 0 .../formatters}/offenses_formatter_plain.rb | 0 .../packwerk}/parser_test_helper.rb | 0 .../rails_application_fixture_helper.rb | 2 +- test/{ => support}/rails_test_helper.rb | 0 test/test_helper.rb | 6 +- .../application_load_paths_test.rb | 2 +- .../application_validator_test.rb | 0 .../association_inspector_test.rb | 2 +- test/unit/{ => packwerk}/cache_test.rb | 2 +- test/unit/{ => packwerk}/checker_test.rb | 0 test/unit/{ => packwerk}/cli_test.rb | 2 +- .../unit/{ => packwerk}/configuration_test.rb | 0 .../packwerk}/const_node_inspector_test.rb | 2 +- .../{ => packwerk}/constant_discovery_test.rb | 0 .../{ => packwerk}/dependency_checker_test.rb | 0 .../dependency_validator_test.rb | 0 .../{ => packwerk}/file_processor_test.rb | 0 .../files_for_processing_test.rb | 0 .../formatters/offenses_formatter_test.rb | 0 .../formatters/progress_formatter_test.rb | 0 .../generators/configuration_file_test.rb | 0 .../generators/root_package_test.rb | 0 test/unit/{ => packwerk}/graph_test.rb | 0 test/{ => unit/packwerk}/node_helpers_test.rb | 2 +- test/unit/{ => packwerk}/node_visitor_test.rb | 2 +- .../{ => packwerk}/offense_collection_test.rb | 0 test/unit/{ => packwerk}/offense_test.rb | 0 test/unit/{ => packwerk}/package_set_test.rb | 0 test/unit/{ => packwerk}/package_test.rb | 0 test/unit/{ => packwerk}/package_todo_test.rb | 0 test/unit/{ => packwerk}/parse_run_test.rb | 2 +- .../parsed_constant_definitions_test.rb | 2 +- test/unit/{ => packwerk}/parsers/erb_test.rb | 0 .../{ => packwerk}/parsers/factory_test.rb | 0 test/unit/{ => packwerk}/parsers/ruby_test.rb | 0 .../reference_extractor_test.rb | 2 +- .../{ => packwerk}/reference_offense_test.rb | 0 .../{ => packwerk}/spring_command_test.rb | 0 .../reference_checker_test.rb | 90 +++++----- 45 files changed, 282 insertions(+), 284 deletions(-) delete mode 100644 test/integration/custom_executable_test.rb delete mode 100644 test/integration/offense_collection_test.rb create mode 100644 test/integration/packwerk/custom_executable_integration_test.rb create mode 100644 test/integration/packwerk/offense_collection_integration_test.rb rename test/support/{ => packwerk}/application_fixture_helper.rb (100%) rename test/support/{ => packwerk}/factory_helper.rb (100%) rename test/support/{ => packwerk/formatters}/offenses_formatter_plain.rb (100%) rename test/{ => support/packwerk}/parser_test_helper.rb (100%) rename test/{ => support}/rails_test_helper.rb (100%) rename test/unit/{ => packwerk}/application_load_paths_test.rb (98%) rename test/unit/{ => packwerk}/application_validator_test.rb (100%) rename test/unit/{ => packwerk}/association_inspector_test.rb (97%) rename test/unit/{ => packwerk}/cache_test.rb (97%) rename test/unit/{ => packwerk}/checker_test.rb (100%) rename test/unit/{ => packwerk}/cli_test.rb (99%) rename test/unit/{ => packwerk}/configuration_test.rb (100%) rename test/{ => unit/packwerk}/const_node_inspector_test.rb (98%) rename test/unit/{ => packwerk}/constant_discovery_test.rb (100%) rename test/unit/{ => packwerk}/dependency_checker_test.rb (100%) rename test/unit/{ => packwerk}/dependency_validator_test.rb (100%) rename test/unit/{ => packwerk}/file_processor_test.rb (100%) rename test/unit/{ => packwerk}/files_for_processing_test.rb (100%) rename test/unit/{ => packwerk}/formatters/offenses_formatter_test.rb (100%) rename test/unit/{ => packwerk}/formatters/progress_formatter_test.rb (100%) rename test/unit/{ => packwerk}/generators/configuration_file_test.rb (100%) rename test/unit/{ => packwerk}/generators/root_package_test.rb (100%) rename test/unit/{ => packwerk}/graph_test.rb (100%) rename test/{ => unit/packwerk}/node_helpers_test.rb (99%) rename test/unit/{ => packwerk}/node_visitor_test.rb (92%) rename test/unit/{ => packwerk}/offense_collection_test.rb (100%) rename test/unit/{ => packwerk}/offense_test.rb (100%) rename test/unit/{ => packwerk}/package_set_test.rb (100%) rename test/unit/{ => packwerk}/package_test.rb (100%) rename test/unit/{ => packwerk}/package_todo_test.rb (100%) rename test/unit/{ => packwerk}/parse_run_test.rb (99%) rename test/unit/{ => packwerk}/parsed_constant_definitions_test.rb (99%) rename test/unit/{ => packwerk}/parsers/erb_test.rb (100%) rename test/unit/{ => packwerk}/parsers/factory_test.rb (100%) rename test/unit/{ => packwerk}/parsers/ruby_test.rb (100%) rename test/unit/{ => packwerk}/reference_extractor_test.rb (99%) rename test/unit/{ => packwerk}/reference_offense_test.rb (100%) rename test/unit/{ => packwerk}/spring_command_test.rb (100%) diff --git a/test/integration/custom_executable_test.rb b/test/integration/custom_executable_test.rb deleted file mode 100644 index d2647bafd..000000000 --- a/test/integration/custom_executable_test.rb +++ /dev/null @@ -1,165 +0,0 @@ -# typed: true -# frozen_string_literal: true - -require "test_helper" -require "rails_test_helper" - -module Packwerk - module Integration - class CustomExecutableTest < Minitest::Test - include ApplicationFixtureHelper - - TIMELINE_PATH = Pathname.new("components/timeline") - - setup do - reset_output - setup_application_fixture - use_template(:skeleton) - end - - teardown do - teardown_application_fixture - end - - test "'packwerk check' with no violations succeeds in all variants" do - assert_successful_run("check") - assert_match(/No offenses detected/, captured_output) - - reset_output - assert_successful_run(["check", "components/timeline"]) - assert_match(/No offenses detected/, captured_output) - - reset_output - assert_successful_run(["check", "--packages=components/timeline"]) - assert_match(/No offenses detected/, captured_output) - end - - test "'packwerk check' with violations only in nested packages has different outcomes per variant" do - open_app_file(TIMELINE_PATH.join("nested", "timeline_comment.rb")) do |file| - file.write("class TimelineComment; belongs_to :order, class_name: '::Order'; end") - file.flush - end - - refute_successful_run("check") - assert_match(/Dependency violation: ::Order/, captured_output) - assert_match(/1 offense detected/, captured_output) - - reset_output - refute_successful_run(["check", "components/timeline"]) - assert_match(/Dependency violation: ::Order/, captured_output) - assert_match(/1 offense detected/, captured_output) - - reset_output - assert_successful_run(["check", "--packages=components/timeline"]) - assert_match(/No offenses detected/, captured_output) - end - - test "'packwerk check' with failures in different parts of the app has different outcomes per variant" do - open_app_file(TIMELINE_PATH.join("nested", "timeline_comment.rb")) do |file| - file.write("class TimelineComment; belongs_to :order, class_name: '::Order'; end") - file.flush - end - - refute_successful_run("check") - assert_match(/Dependency violation: ::Order/, captured_output) - assert_match(/1 offense detected/, captured_output) - - reset_output - assert_successful_run(["check", "components/sales"]) - assert_match(/No offenses detected/, captured_output) - - reset_output - assert_successful_run(["check", "--packages=components/sales"]) - assert_match(/No offenses detected/, captured_output) - end - - test "'packwerk update-todo' with no violations succeeds and updates no files" do - package_todo_content = read_package_todo - - assert_successful_run("update-todo") - - package_todo_content_after_update = read_package_todo - expected_output = <<~EOS - 📦 Packwerk is inspecting 12 files - \\.\\.\\.\\.\\.\\.\\.\\.\\.\\.\\.\\. - 📦 Finished in \\d+\\.\\d+ seconds - - No offenses detected - ✅ `package_todo.yml` has been updated. - EOS - - assert_equal(package_todo_content, package_todo_content_after_update, - "expected no updates to any package todo file") - assert_match(/#{expected_output}/, captured_output) - end - - test "'packwerk update-todo' with violations succeeds and updates relevant package_todo" do - package_todo_content = read_package_todo - timeline_package_todo_path = to_app_path(File.join(TIMELINE_PATH, "package_todo.yml")) - - open_app_file(TIMELINE_PATH.join("app", "models", "timeline_comment.rb")) do |file| - file.write("class TimelineComment; belongs_to :order; end") - file.flush - - assert_successful_run("update-todo") - - assert(File.exist?(timeline_package_todo_path), - "expected new package_todo for timeline package to be created") - - timeline_package_todo_content = File.read(timeline_package_todo_path) - assert_match( - "components/sales:\n \"::Order\":\n violations:\n - dependency", - timeline_package_todo_content - ) - - package_todo_content_after_update = - read_package_todo.reject { |k, _v| k.match?(timeline_package_todo_path) } - expected_output = <<~EOS - 📦 Packwerk is inspecting 13 files - \\.\\.\\.\\.\\.\\.\\.\\.\\.\\.\\.\\.\\. - 📦 Finished in \\d+\\.\\d+ seconds - - No offenses detected - ✅ `package_todo.yml` has been updated. - EOS - - assert_equal(package_todo_content, package_todo_content_after_update, - "expected no updates to any package todo files besides timeline/package_todo.yml") - assert_match(/#{expected_output}/, captured_output) - end - end - - private - - def assert_successful_run(command) - Packwerk::Cli.new(out: @out).run(Array(command)) - rescue SystemExit => e - assert_equal(0, e.status) - end - - def refute_successful_run(command) - Packwerk::Cli.new(out: @out).run(Array(command)) - rescue SystemExit => e - refute_equal(0, e.status) - end - - def reset_output - @out = StringIO.new - end - - def captured_output - @out.string - end - - def read_package_todo - package_todo_glob = File.join("**", "package_todo.yml") - package_todo_files = Dir.glob(package_todo_glob) - Hash[ - package_todo_files.collect do |file| - [to_app_path(file), File.read(file)] - end - ] - end - end - end -end diff --git a/test/integration/offense_collection_test.rb b/test/integration/offense_collection_test.rb deleted file mode 100644 index 03827273e..000000000 --- a/test/integration/offense_collection_test.rb +++ /dev/null @@ -1,61 +0,0 @@ -# typed: true -# frozen_string_literal: true - -require "test_helper" -require "rails_test_helper" - -module Packwerk - module Integration - class OffenseCollectionTest < Minitest::Test - include ApplicationFixtureHelper - include FactoryHelper - - setup do - setup_application_fixture - use_template(:blank) - @offense_collection = OffenseCollection.new(app_dir) - end - - teardown do - teardown_application_fixture - end - - test "#add_violation for two instances of the same logical package amalgamates both offenses" do - offense1 = ReferenceOffense.new( - reference: build_reference( - constant_name: "::Foo", - source_package: Package.new(name: ".", config: nil) - ), - message: "some message", - violation_type: ReferenceChecking::Checkers::DependencyChecker::VIOLATION_TYPE - ) - offense2 = ReferenceOffense.new( - reference: build_reference( - constant_name: "::Bar", - source_package: Package.new(name: ".", config: nil) - ), - message: "some message", - violation_type: ReferenceChecking::Checkers::DependencyChecker::VIOLATION_TYPE - ) - - @offense_collection.add_offense(offense1) - @offense_collection.add_offense(offense2) - dump_package_todo_files - - expected = { - "components/destination" => { - "::Bar" => { "violations" => ["dependency"], "files" => ["some/path.rb"] }, - "::Foo" => { "violations" => ["dependency"], "files" => ["some/path.rb"] }, - }, - } - assert_equal expected, YAML.load_file("package_todo.yml") - end - - private - - def dump_package_todo_files - @offense_collection.persist_package_todo_files(PackageSet.new([])) - end - end - end -end diff --git a/test/integration/packwerk/custom_executable_integration_test.rb b/test/integration/packwerk/custom_executable_integration_test.rb new file mode 100644 index 000000000..a87500beb --- /dev/null +++ b/test/integration/packwerk/custom_executable_integration_test.rb @@ -0,0 +1,163 @@ +# typed: true +# frozen_string_literal: true + +require "test_helper" +require "support/rails_test_helper" + +module Packwerk + class CustomExecutableIntegrationTest < Minitest::Test + include ApplicationFixtureHelper + + TIMELINE_PATH = Pathname.new("components/timeline") + + setup do + reset_output + setup_application_fixture + use_template(:skeleton) + end + + teardown do + teardown_application_fixture + end + + test "'packwerk check' with no violations succeeds in all variants" do + assert_successful_run("check") + assert_match(/No offenses detected/, captured_output) + + reset_output + assert_successful_run(["check", "components/timeline"]) + assert_match(/No offenses detected/, captured_output) + + reset_output + assert_successful_run(["check", "--packages=components/timeline"]) + assert_match(/No offenses detected/, captured_output) + end + + test "'packwerk check' with violations only in nested packages has different outcomes per variant" do + open_app_file(TIMELINE_PATH.join("nested", "timeline_comment.rb")) do |file| + file.write("class TimelineComment; belongs_to :order, class_name: '::Order'; end") + file.flush + end + + refute_successful_run("check") + assert_match(/Dependency violation: ::Order/, captured_output) + assert_match(/1 offense detected/, captured_output) + + reset_output + refute_successful_run(["check", "components/timeline"]) + assert_match(/Dependency violation: ::Order/, captured_output) + assert_match(/1 offense detected/, captured_output) + + reset_output + assert_successful_run(["check", "--packages=components/timeline"]) + assert_match(/No offenses detected/, captured_output) + end + + test "'packwerk check' with failures in different parts of the app has different outcomes per variant" do + open_app_file(TIMELINE_PATH.join("nested", "timeline_comment.rb")) do |file| + file.write("class TimelineComment; belongs_to :order, class_name: '::Order'; end") + file.flush + end + + refute_successful_run("check") + assert_match(/Dependency violation: ::Order/, captured_output) + assert_match(/1 offense detected/, captured_output) + + reset_output + assert_successful_run(["check", "components/sales"]) + assert_match(/No offenses detected/, captured_output) + + reset_output + assert_successful_run(["check", "--packages=components/sales"]) + assert_match(/No offenses detected/, captured_output) + end + + test "'packwerk update-todo' with no violations succeeds and updates no files" do + package_todo_content = read_package_todo + + assert_successful_run("update-todo") + + package_todo_content_after_update = read_package_todo + expected_output = <<~EOS + 📦 Packwerk is inspecting 12 files + \\.\\.\\.\\.\\.\\.\\.\\.\\.\\.\\.\\. + 📦 Finished in \\d+\\.\\d+ seconds + + No offenses detected + ✅ `package_todo.yml` has been updated. + EOS + + assert_equal(package_todo_content, package_todo_content_after_update, + "expected no updates to any package todo file") + assert_match(/#{expected_output}/, captured_output) + end + + test "'packwerk update-todo' with violations succeeds and updates relevant package_todo" do + package_todo_content = read_package_todo + timeline_package_todo_path = to_app_path(File.join(TIMELINE_PATH, "package_todo.yml")) + + open_app_file(TIMELINE_PATH.join("app", "models", "timeline_comment.rb")) do |file| + file.write("class TimelineComment; belongs_to :order; end") + file.flush + + assert_successful_run("update-todo") + + assert(File.exist?(timeline_package_todo_path), + "expected new package_todo for timeline package to be created") + + timeline_package_todo_content = File.read(timeline_package_todo_path) + assert_match( + "components/sales:\n \"::Order\":\n violations:\n - dependency", + timeline_package_todo_content + ) + + package_todo_content_after_update = + read_package_todo.reject { |k, _v| k.match?(timeline_package_todo_path) } + expected_output = <<~EOS + 📦 Packwerk is inspecting 13 files + \\.\\.\\.\\.\\.\\.\\.\\.\\.\\.\\.\\.\\. + 📦 Finished in \\d+\\.\\d+ seconds + + No offenses detected + ✅ `package_todo.yml` has been updated. + EOS + + assert_equal(package_todo_content, package_todo_content_after_update, + "expected no updates to any package todo files besides timeline/package_todo.yml") + assert_match(/#{expected_output}/, captured_output) + end + end + + private + + def assert_successful_run(command) + Packwerk::Cli.new(out: @out).run(Array(command)) + rescue SystemExit => e + assert_equal(0, e.status) + end + + def refute_successful_run(command) + Packwerk::Cli.new(out: @out).run(Array(command)) + rescue SystemExit => e + refute_equal(0, e.status) + end + + def reset_output + @out = StringIO.new + end + + def captured_output + @out.string + end + + def read_package_todo + package_todo_glob = File.join("**", "package_todo.yml") + package_todo_files = Dir.glob(package_todo_glob) + Hash[ + package_todo_files.collect do |file| + [to_app_path(file), File.read(file)] + end + ] + end + end +end diff --git a/test/integration/packwerk/offense_collection_integration_test.rb b/test/integration/packwerk/offense_collection_integration_test.rb new file mode 100644 index 000000000..786ba196f --- /dev/null +++ b/test/integration/packwerk/offense_collection_integration_test.rb @@ -0,0 +1,59 @@ +# typed: true +# frozen_string_literal: true + +require "test_helper" +require "support/rails_test_helper" + +module Packwerk + class OffenseCollectionIntegrationTest < Minitest::Test + include ApplicationFixtureHelper + include FactoryHelper + + setup do + setup_application_fixture + use_template(:blank) + @offense_collection = OffenseCollection.new(app_dir) + end + + teardown do + teardown_application_fixture + end + + test "#add_violation for two instances of the same logical package amalgamates both offenses" do + offense1 = ReferenceOffense.new( + reference: build_reference( + constant_name: "::Foo", + source_package: Package.new(name: ".", config: nil) + ), + message: "some message", + violation_type: ReferenceChecking::Checkers::DependencyChecker::VIOLATION_TYPE + ) + offense2 = ReferenceOffense.new( + reference: build_reference( + constant_name: "::Bar", + source_package: Package.new(name: ".", config: nil) + ), + message: "some message", + violation_type: ReferenceChecking::Checkers::DependencyChecker::VIOLATION_TYPE + ) + + @offense_collection.add_offense(offense1) + @offense_collection.add_offense(offense2) + dump_package_todo_files + + expected = { + "components/destination" => { + "::Bar" => { "violations" => ["dependency"], "files" => ["some/path.rb"] }, + "::Foo" => { "violations" => ["dependency"], "files" => ["some/path.rb"] }, + }, + } + assert_equal expected, YAML.load_file("package_todo.yml") + end + + private + + def dump_package_todo_files + @offense_collection.persist_package_todo_files(PackageSet.new([])) + end + end +end diff --git a/test/support/application_fixture_helper.rb b/test/support/packwerk/application_fixture_helper.rb similarity index 100% rename from test/support/application_fixture_helper.rb rename to test/support/packwerk/application_fixture_helper.rb diff --git a/test/support/factory_helper.rb b/test/support/packwerk/factory_helper.rb similarity index 100% rename from test/support/factory_helper.rb rename to test/support/packwerk/factory_helper.rb diff --git a/test/support/offenses_formatter_plain.rb b/test/support/packwerk/formatters/offenses_formatter_plain.rb similarity index 100% rename from test/support/offenses_formatter_plain.rb rename to test/support/packwerk/formatters/offenses_formatter_plain.rb diff --git a/test/parser_test_helper.rb b/test/support/packwerk/parser_test_helper.rb similarity index 100% rename from test/parser_test_helper.rb rename to test/support/packwerk/parser_test_helper.rb diff --git a/test/support/rails_application_fixture_helper.rb b/test/support/rails_application_fixture_helper.rb index 0d36bca52..8e5e13857 100644 --- a/test/support/rails_application_fixture_helper.rb +++ b/test/support/rails_application_fixture_helper.rb @@ -1,7 +1,7 @@ # typed: true # frozen_string_literal: true -require "rails_test_helper" +require "support/rails_test_helper" require "zeitwerk" module RailsApplicationFixtureHelper diff --git a/test/rails_test_helper.rb b/test/support/rails_test_helper.rb similarity index 100% rename from test/rails_test_helper.rb rename to test/support/rails_test_helper.rb diff --git a/test/test_helper.rb b/test/test_helper.rb index ef1053f15..e84f364e8 100644 --- a/test/test_helper.rb +++ b/test/test_helper.rb @@ -11,15 +11,15 @@ require "minitest/autorun" require "minitest/focus" require "mocha/minitest" -require "support/application_fixture_helper" +require "support/packwerk/application_fixture_helper" +require "support/packwerk/factory_helper" require "support/stub_const" -require "support/factory_helper" require "support/rails_application_fixture_helper" require "support/test_macro" require "support/test_assertions" require "support/yaml_file" require "support/typed_mock" -require "support/offenses_formatter_plain" +require "support/packwerk/formatters/offenses_formatter_plain" Minitest::Test.include(StubConst) Minitest::Test.extend(TestMacro) diff --git a/test/unit/application_load_paths_test.rb b/test/unit/packwerk/application_load_paths_test.rb similarity index 98% rename from test/unit/application_load_paths_test.rb rename to test/unit/packwerk/application_load_paths_test.rb index 810bf3f22..44755ceed 100644 --- a/test/unit/application_load_paths_test.rb +++ b/test/unit/packwerk/application_load_paths_test.rb @@ -2,7 +2,7 @@ # frozen_string_literal: true require "test_helper" -require "rails_test_helper" +require "support/rails_test_helper" module Packwerk class ApplicationLoadPathsTest < Minitest::Test diff --git a/test/unit/application_validator_test.rb b/test/unit/packwerk/application_validator_test.rb similarity index 100% rename from test/unit/application_validator_test.rb rename to test/unit/packwerk/application_validator_test.rb diff --git a/test/unit/association_inspector_test.rb b/test/unit/packwerk/association_inspector_test.rb similarity index 97% rename from test/unit/association_inspector_test.rb rename to test/unit/packwerk/association_inspector_test.rb index ffbea088d..3acdebc26 100644 --- a/test/unit/association_inspector_test.rb +++ b/test/unit/packwerk/association_inspector_test.rb @@ -2,7 +2,7 @@ # frozen_string_literal: true require "test_helper" -require "parser_test_helper" +require "support/packwerk/parser_test_helper" module Packwerk class AssociationInspectorTest < Minitest::Test diff --git a/test/unit/cache_test.rb b/test/unit/packwerk/cache_test.rb similarity index 97% rename from test/unit/cache_test.rb rename to test/unit/packwerk/cache_test.rb index 8cc4bbe85..4b0306cfd 100644 --- a/test/unit/cache_test.rb +++ b/test/unit/packwerk/cache_test.rb @@ -2,7 +2,7 @@ # frozen_string_literal: true require "test_helper" -require "rails_test_helper" +require "support/rails_test_helper" module Packwerk class CacheTest < Minitest::Test diff --git a/test/unit/checker_test.rb b/test/unit/packwerk/checker_test.rb similarity index 100% rename from test/unit/checker_test.rb rename to test/unit/packwerk/checker_test.rb diff --git a/test/unit/cli_test.rb b/test/unit/packwerk/cli_test.rb similarity index 99% rename from test/unit/cli_test.rb rename to test/unit/packwerk/cli_test.rb index b1ce6653d..31cdd6e45 100644 --- a/test/unit/cli_test.rb +++ b/test/unit/packwerk/cli_test.rb @@ -2,7 +2,7 @@ # frozen_string_literal: true require "test_helper" -require "rails_test_helper" +require "support/rails_test_helper" module Packwerk class CliTest < Minitest::Test diff --git a/test/unit/configuration_test.rb b/test/unit/packwerk/configuration_test.rb similarity index 100% rename from test/unit/configuration_test.rb rename to test/unit/packwerk/configuration_test.rb diff --git a/test/const_node_inspector_test.rb b/test/unit/packwerk/const_node_inspector_test.rb similarity index 98% rename from test/const_node_inspector_test.rb rename to test/unit/packwerk/const_node_inspector_test.rb index 5a642f970..112d94344 100644 --- a/test/const_node_inspector_test.rb +++ b/test/unit/packwerk/const_node_inspector_test.rb @@ -2,7 +2,7 @@ # frozen_string_literal: true require "test_helper" -require "parser_test_helper" +require "support/packwerk/parser_test_helper" module Packwerk class ConstNodeInspectorTest < ActiveSupport::TestCase diff --git a/test/unit/constant_discovery_test.rb b/test/unit/packwerk/constant_discovery_test.rb similarity index 100% rename from test/unit/constant_discovery_test.rb rename to test/unit/packwerk/constant_discovery_test.rb diff --git a/test/unit/dependency_checker_test.rb b/test/unit/packwerk/dependency_checker_test.rb similarity index 100% rename from test/unit/dependency_checker_test.rb rename to test/unit/packwerk/dependency_checker_test.rb diff --git a/test/unit/dependency_validator_test.rb b/test/unit/packwerk/dependency_validator_test.rb similarity index 100% rename from test/unit/dependency_validator_test.rb rename to test/unit/packwerk/dependency_validator_test.rb diff --git a/test/unit/file_processor_test.rb b/test/unit/packwerk/file_processor_test.rb similarity index 100% rename from test/unit/file_processor_test.rb rename to test/unit/packwerk/file_processor_test.rb diff --git a/test/unit/files_for_processing_test.rb b/test/unit/packwerk/files_for_processing_test.rb similarity index 100% rename from test/unit/files_for_processing_test.rb rename to test/unit/packwerk/files_for_processing_test.rb diff --git a/test/unit/formatters/offenses_formatter_test.rb b/test/unit/packwerk/formatters/offenses_formatter_test.rb similarity index 100% rename from test/unit/formatters/offenses_formatter_test.rb rename to test/unit/packwerk/formatters/offenses_formatter_test.rb diff --git a/test/unit/formatters/progress_formatter_test.rb b/test/unit/packwerk/formatters/progress_formatter_test.rb similarity index 100% rename from test/unit/formatters/progress_formatter_test.rb rename to test/unit/packwerk/formatters/progress_formatter_test.rb diff --git a/test/unit/generators/configuration_file_test.rb b/test/unit/packwerk/generators/configuration_file_test.rb similarity index 100% rename from test/unit/generators/configuration_file_test.rb rename to test/unit/packwerk/generators/configuration_file_test.rb diff --git a/test/unit/generators/root_package_test.rb b/test/unit/packwerk/generators/root_package_test.rb similarity index 100% rename from test/unit/generators/root_package_test.rb rename to test/unit/packwerk/generators/root_package_test.rb diff --git a/test/unit/graph_test.rb b/test/unit/packwerk/graph_test.rb similarity index 100% rename from test/unit/graph_test.rb rename to test/unit/packwerk/graph_test.rb diff --git a/test/node_helpers_test.rb b/test/unit/packwerk/node_helpers_test.rb similarity index 99% rename from test/node_helpers_test.rb rename to test/unit/packwerk/node_helpers_test.rb index 6b76253fa..35919c20a 100644 --- a/test/node_helpers_test.rb +++ b/test/unit/packwerk/node_helpers_test.rb @@ -2,7 +2,7 @@ # frozen_string_literal: true require "test_helper" -require "parser_test_helper" +require "support/packwerk/parser_test_helper" require "parser" diff --git a/test/unit/node_visitor_test.rb b/test/unit/packwerk/node_visitor_test.rb similarity index 92% rename from test/unit/node_visitor_test.rb rename to test/unit/packwerk/node_visitor_test.rb index 637fa8de5..453337468 100644 --- a/test/unit/node_visitor_test.rb +++ b/test/unit/packwerk/node_visitor_test.rb @@ -2,7 +2,7 @@ # frozen_string_literal: true require "test_helper" -require "parser_test_helper" +require "support/packwerk/parser_test_helper" module Packwerk class NodeVisitorTest < Minitest::Test diff --git a/test/unit/offense_collection_test.rb b/test/unit/packwerk/offense_collection_test.rb similarity index 100% rename from test/unit/offense_collection_test.rb rename to test/unit/packwerk/offense_collection_test.rb diff --git a/test/unit/offense_test.rb b/test/unit/packwerk/offense_test.rb similarity index 100% rename from test/unit/offense_test.rb rename to test/unit/packwerk/offense_test.rb diff --git a/test/unit/package_set_test.rb b/test/unit/packwerk/package_set_test.rb similarity index 100% rename from test/unit/package_set_test.rb rename to test/unit/packwerk/package_set_test.rb diff --git a/test/unit/package_test.rb b/test/unit/packwerk/package_test.rb similarity index 100% rename from test/unit/package_test.rb rename to test/unit/packwerk/package_test.rb diff --git a/test/unit/package_todo_test.rb b/test/unit/packwerk/package_todo_test.rb similarity index 100% rename from test/unit/package_todo_test.rb rename to test/unit/packwerk/package_todo_test.rb diff --git a/test/unit/parse_run_test.rb b/test/unit/packwerk/parse_run_test.rb similarity index 99% rename from test/unit/parse_run_test.rb rename to test/unit/packwerk/parse_run_test.rb index 391498fc6..0e5a54e19 100644 --- a/test/unit/parse_run_test.rb +++ b/test/unit/packwerk/parse_run_test.rb @@ -2,7 +2,7 @@ # frozen_string_literal: true require "test_helper" -require "rails_test_helper" +require "support/rails_test_helper" module Packwerk class ParseRunTest < Minitest::Test diff --git a/test/unit/parsed_constant_definitions_test.rb b/test/unit/packwerk/parsed_constant_definitions_test.rb similarity index 99% rename from test/unit/parsed_constant_definitions_test.rb rename to test/unit/packwerk/parsed_constant_definitions_test.rb index 93e5086a6..b46083851 100644 --- a/test/unit/parsed_constant_definitions_test.rb +++ b/test/unit/packwerk/parsed_constant_definitions_test.rb @@ -2,7 +2,7 @@ # frozen_string_literal: true require "test_helper" -require "parser_test_helper" +require "support/packwerk/parser_test_helper" module Packwerk class ParsedConstantDefinitionsTest < Minitest::Test diff --git a/test/unit/parsers/erb_test.rb b/test/unit/packwerk/parsers/erb_test.rb similarity index 100% rename from test/unit/parsers/erb_test.rb rename to test/unit/packwerk/parsers/erb_test.rb diff --git a/test/unit/parsers/factory_test.rb b/test/unit/packwerk/parsers/factory_test.rb similarity index 100% rename from test/unit/parsers/factory_test.rb rename to test/unit/packwerk/parsers/factory_test.rb diff --git a/test/unit/parsers/ruby_test.rb b/test/unit/packwerk/parsers/ruby_test.rb similarity index 100% rename from test/unit/parsers/ruby_test.rb rename to test/unit/packwerk/parsers/ruby_test.rb diff --git a/test/unit/reference_extractor_test.rb b/test/unit/packwerk/reference_extractor_test.rb similarity index 99% rename from test/unit/reference_extractor_test.rb rename to test/unit/packwerk/reference_extractor_test.rb index 20bcbcff2..077171f33 100644 --- a/test/unit/reference_extractor_test.rb +++ b/test/unit/packwerk/reference_extractor_test.rb @@ -2,7 +2,7 @@ # frozen_string_literal: true require "test_helper" -require "parser_test_helper" +require "support/packwerk/parser_test_helper" require "constant_resolver" module Packwerk diff --git a/test/unit/reference_offense_test.rb b/test/unit/packwerk/reference_offense_test.rb similarity index 100% rename from test/unit/reference_offense_test.rb rename to test/unit/packwerk/reference_offense_test.rb diff --git a/test/unit/spring_command_test.rb b/test/unit/packwerk/spring_command_test.rb similarity index 100% rename from test/unit/spring_command_test.rb rename to test/unit/packwerk/spring_command_test.rb diff --git a/test/unit/reference_checking/reference_checker_test.rb b/test/unit/reference_checking/reference_checker_test.rb index c0339f579..da0102880 100644 --- a/test/unit/reference_checking/reference_checker_test.rb +++ b/test/unit/reference_checking/reference_checker_test.rb @@ -4,55 +4,57 @@ require "test_helper" module Packwerk - class FileProcessorTest < Minitest::Test - include FactoryHelper - - class StubChecker - include Checker - - def initialize(**options) - @is_invalid_reference = options[:invalid_reference?] - @violation_type = options[:violation_type] - @message = options[:message] - end - - def violation_type - @violation_type || "custom_violation_type" - end - - def invalid_reference?(_reference) - @is_invalid_reference + module ReferenceChecking + class ReferenceCheckerTest < Minitest::Test + include FactoryHelper + + class StubChecker + include Checker + + def initialize(**options) + @is_invalid_reference = options[:invalid_reference?] + @violation_type = options[:violation_type] + @message = options[:message] + end + + def violation_type + @violation_type || "custom_violation_type" + end + + def invalid_reference?(_reference) + @is_invalid_reference + end + + def message(_reference) + @message + end + + def strict_mode_violation?(_listed_offense) + false + end end - def message(_reference) - @message + test "#call enumerates the list of checkers to create ReferenceOffense objects" do + input_reference = build_reference + message = ReferenceChecking::Checkers::DependencyChecker.new.message(input_reference) + instance = reference_checker([StubChecker.new( + invalid_reference?: true, + message: message, + violation_type: ReferenceChecking::Checkers::DependencyChecker::VIOLATION_TYPE + )]) + offenses = instance.call(input_reference) + + assert_equal 1, offenses.length + + offense = offenses.first + assert_equal input_reference.relative_path, offense.file + assert_equal input_reference.source_location, offense.location + assert offense.message.start_with?("Dependency violation") end - def strict_mode_violation?(_listed_offense) - false + def reference_checker(checkers = [StubChecker.new]) + ReferenceChecking::ReferenceChecker.new(checkers) end end - - test "#call enumerates the list of checkers to create ReferenceOffense objects" do - input_reference = build_reference - message = ReferenceChecking::Checkers::DependencyChecker.new.message(input_reference) - instance = reference_checker([StubChecker.new( - invalid_reference?: true, - message: message, - violation_type: ReferenceChecking::Checkers::DependencyChecker::VIOLATION_TYPE - )]) - offenses = instance.call(input_reference) - - assert_equal 1, offenses.length - - offense = offenses.first - assert_equal input_reference.relative_path, offense.file - assert_equal input_reference.source_location, offense.location - assert offense.message.start_with?("Dependency violation") - end - - def reference_checker(checkers = [StubChecker.new]) - ReferenceChecking::ReferenceChecker.new(checkers) - end end end