edge badge

Resolves a constant from a minitest spec name.

Given the following spec-style test:

describe WidgetsController, :index do
  describe "authenticated user" do
    describe "returns widgets" do
      it "has a controller that exists" do
        assert_kind_of WidgetsController, @controller
      end
    end
  end
end

The test will have the following name:

"WidgetsController::index::authenticated user::returns widgets"

The constant WidgetsController can be resolved from the name. The following code will resolve the constant:

controller = determine_constant_from_test_name(name) do |constant|
  Class === constant && constant < ::ActionController::Metal
end