1
0
Fork 0
mirror of https://github.com/rails/rails.git synced 2022-11-09 12:12:34 -05:00

Adds support to register directories and extensions to NotesCommand

* Require the application and environnement in the notes command in order to load the config files
* Adds tests for both register_directories and register_extensions added to a config file
This commit is contained in:
Annie-Claude Côté 2018-06-22 12:43:32 -04:00
parent 1996fbe2a3
commit 21f7dadbff
2 changed files with 46 additions and 0 deletions

View file

@ -8,6 +8,8 @@ module Rails
class_option :annotations, aliases: "-a", desc: "Filter by specific annotations, e.g. Foobar TODO", type: :array, default: %w(OPTIMIZE FIXME TODO)
def perform(*)
require_application_and_environment!
deprecation_warning
display_annotations
end

View file

@ -77,6 +77,50 @@ class Rails::Command::NotesTest < ActiveSupport::TestCase
OUTPUT
end
test "displays results from additional directories added to the default directories from a config file" do
app_file "db/some_seeds.rb", "# FIXME: note in db directory"
app_file "lib/some_file.rb", "# TODO: note in lib directory"
app_file "spec/spec_helper.rb", "# TODO: note in spec"
app_file "spec/models/user_spec.rb", "# TODO: note in model spec"
add_to_config "config.annotations.register_directories \"spec\""
assert_equal <<~OUTPUT, run_notes_command
db/some_seeds.rb:
* [1] [FIXME] note in db directory
lib/some_file.rb:
* [1] [TODO] note in lib directory
spec/models/user_spec.rb:
* [1] [TODO] note in model spec
spec/spec_helper.rb:
* [1] [TODO] note in spec
OUTPUT
end
test "displays results from additional file extensions added to the default extensions from a config file" do
add_to_config "config.assets.precompile = []"
add_to_config %q{ config.annotations.register_extensions("scss", "sass") { |annotation| /\/\/\s*(#{annotation}):?\s*(.*)$/ } }
app_file "db/some_seeds.rb", "# FIXME: note in db directory"
app_file "app/assets/stylesheets/application.css.scss", "// TODO: note in scss"
app_file "app/assets/stylesheets/application.css.sass", "// TODO: note in sass"
assert_equal <<~OUTPUT, run_notes_command
app/assets/stylesheets/application.css.sass:
* [1] [TODO] note in sass
app/assets/stylesheets/application.css.scss:
* [1] [TODO] note in scss
db/some_seeds.rb:
* [1] [FIXME] note in db directory
OUTPUT
end
private
def run_notes_command(args = [])
rails "notes", args