diff --git a/spec/functional_test/fixtures/ruby/rails/config/routes.rb b/spec/functional_test/fixtures/ruby/rails/config/routes.rb index bdac69c2..a12b236b 100644 --- a/spec/functional_test/fixtures/ruby/rails/config/routes.rb +++ b/spec/functional_test/fixtures/ruby/rails/config/routes.rb @@ -1,7 +1,10 @@ Rails.application.routes.draw do resources :posts # Define your application routes per the DSL in https://guides.rubyonrails.org/routing.html - + # Defines the root path route ("/") # root "articles#index" - end \ No newline at end of file + get "up" => "rails/health#show", as: :rails_health_check + get "service-worker" => "rails/pwa#service_worker", as: :pwa_service_worker + get "manifest" => "rails/pwa#manifest", as: :pwa_manifest + end diff --git a/spec/functional_test/testers/ruby/rails_spec.cr b/spec/functional_test/testers/ruby/rails_spec.cr index 59d67c47..47fc1b86 100644 --- a/spec/functional_test/testers/ruby/rails_spec.cr +++ b/spec/functional_test/testers/ruby/rails_spec.cr @@ -22,6 +22,9 @@ extected_endpoints = [ Param.new("X-API-KEY", "", "header"), ]), Endpoint.new("/posts/1", "DELETE"), + Endpoint.new("/up", "GET"), + Endpoint.new("/service-worker", "GET"), + Endpoint.new("/manifest", "GET"), ] FunctionalTester.new("fixtures/ruby/rails/", { diff --git a/src/models/noir.cr b/src/models/noir.cr index 14e4475c..a08e033c 100644 --- a/src/models/noir.cr +++ b/src/models/noir.cr @@ -139,6 +139,8 @@ class NoirRunner @endpoints.each do |endpoint| tiny_tmp = endpoint + + # Remove space in param name if endpoint.params.size > 0 tiny_tmp.params = [] of Param endpoint.params.each do |param| @@ -149,6 +151,15 @@ class NoirRunner end end + # Check start with slash + if tiny_tmp.url[0] != "/" + tiny_tmp.url = "/#{tiny_tmp.url}" + end + + # Check double slash + tiny_tmp.url = tiny_tmp.url.gsub_repeatedly("//", "/") + + # Duplicate check if tiny_tmp.url != "" is_new = true final.each do |dup|