Minor cleaning setting up tests (#1875)

We use minitest for Sinatra's test suite but we weren't using its rake task. I've updated the Rakefile to require and use Minitest default rake task to simplify.

Another change is to rename the `helper.rb` file to `test_helper.rb` because I think that name is used more in the community and require it directly without calling `File.expand_path`
This commit is contained in:
Eloy Pérez 2023-02-12 19:09:35 +01:00 committed by GitHub
parent baa6bf783e
commit f10e571f4d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
38 changed files with 47 additions and 62 deletions

View File

@ -1,14 +1,11 @@
# frozen_string_literal: true # frozen_string_literal: true
require 'rake/clean' require 'rake/clean'
require 'rake/testtask' require 'minitest/test_task'
require 'fileutils' require 'fileutils'
require 'date' require 'date'
task default: :test task default: :test
task spec: :test
CLEAN.include '**/*.rbc'
def source_version def source_version
@source_version ||= File.read(File.expand_path('VERSION', __dir__)).strip @source_version ||= File.read(File.expand_path('VERSION', __dir__)).strip
@ -24,27 +21,20 @@ def prev_version
source_version.gsub(/\d+$/) { |s| s.to_i - 1 } source_version.gsub(/\d+$/) { |s| s.to_i - 1 }
end end
# SPECS =============================================================== # Tests ===============================================================
Rake::TestTask.new(:test) do |t| Minitest::TestTask.create # Default `test` task
t.test_files = FileList['test/*_test.rb'] Minitest::TestTask.create(:'test:core') do |t|
t.ruby_opts = ['-r rubygems'] if defined? Gem
t.warning = true t.warning = true
end t.test_globs = %w[
Rake::TestTask.new(:'test:core') do |t|
core_tests = %w[
base delegator encoding extensions filter base delegator encoding extensions filter
helpers mapped_error middleware rdoc helpers mapped_error middleware rdoc
readme request response result route_added_hook readme request response result route_added_hook
routing server settings sinatra static templates routing server settings sinatra static templates
] ].map { |n| "test/#{n}_test.rb" }
t.test_files = core_tests.map { |n| "test/#{n}_test.rb" }
t.ruby_opts = ['-r rubygems'] if defined? Gem
t.warning = true
end end
# Rcov ================================================================ # Test code coverage ==================================================
namespace :test do namespace :test do
desc 'Measures test coverage' desc 'Measures test coverage'
@ -54,6 +44,7 @@ namespace :test do
Rake::Task['test'].invoke Rake::Task['test'].invoke
end end
end end
CLEAN.include('coverage')
# Website ============================================================= # Website =============================================================

View File

@ -1,4 +1,4 @@
require File.expand_path('helper', __dir__) require_relative 'test_helper'
begin begin
require 'asciidoctor' require 'asciidoctor'

View File

@ -1,4 +1,4 @@
require File.expand_path('helper', __dir__) require_relative 'test_helper'
class BaseTest < Minitest::Test class BaseTest < Minitest::Test
describe 'Sinatra::Base subclasses' do describe 'Sinatra::Base subclasses' do

View File

@ -1,4 +1,4 @@
require File.expand_path('helper', __dir__) require_relative 'test_helper'
begin begin
require 'builder' require 'builder'

View File

@ -1,5 +1,4 @@
# I like coding: UTF-8 require_relative 'test_helper'
require File.expand_path('helper', __dir__)
class CompileTest < Minitest::Test class CompileTest < Minitest::Test
def self.parses pattern, example, expected_params, mtype = :sinatra, mopts = {} def self.parses pattern, example, expected_params, mtype = :sinatra, mopts = {}

View File

@ -1,4 +1,4 @@
require File.expand_path('helper', __dir__) require_relative 'test_helper'
class DelegatorTest < Minitest::Test class DelegatorTest < Minitest::Test
class Mirror class Mirror

View File

@ -1,5 +1,4 @@
# encoding: UTF-8 require_relative 'test_helper'
require File.expand_path('helper', __dir__)
require 'erb' require 'erb'
class BaseTest < Minitest::Test class BaseTest < Minitest::Test

View File

@ -1,4 +1,4 @@
require File.expand_path('helper', __dir__) require_relative 'test_helper'
class ERBTest < Minitest::Test class ERBTest < Minitest::Test
def engine def engine

View File

@ -1,4 +1,4 @@
require File.expand_path('helper', __dir__) require_relative 'test_helper'
class ExtensionsTest < Minitest::Test class ExtensionsTest < Minitest::Test
module FooExtensions module FooExtensions

View File

@ -1,4 +1,4 @@
require File.expand_path('helper', __dir__) require_relative 'test_helper'
class BeforeFilterTest < Minitest::Test class BeforeFilterTest < Minitest::Test
it "executes filters in the order defined" do it "executes filters in the order defined" do

View File

@ -1,4 +1,4 @@
require File.expand_path('helper', __dir__) require_relative 'test_helper'
begin begin
require 'haml' require 'haml'

View File

@ -1,4 +1,4 @@
require File.expand_path('helper', __dir__) require_relative 'test_helper'
require 'date' require 'date'
require 'json' require 'json'
@ -895,8 +895,8 @@ class HelpersTest < Minitest::Test
send_file_app :disposition => 'inline'.freeze send_file_app :disposition => 'inline'.freeze
get '/file.txt' get '/file.txt'
assert_equal 'inline; filename="file.txt"', response['Content-Disposition'] assert_equal 'inline; filename="file.txt"', response['Content-Disposition']
end end
it "sets the Content-Disposition header when :filename provided" do it "sets the Content-Disposition header when :filename provided" do
send_file_app :filename => 'foo.txt' send_file_app :filename => 'foo.txt'
get '/file.txt' get '/file.txt'

View File

@ -1,4 +1,4 @@
require File.expand_path('helper', __dir__) require_relative 'test_helper'
require File.expand_path('integration_async_helper', __dir__) require File.expand_path('integration_async_helper', __dir__)
# These tests are like integration_test, but they test asynchronous streaming. # These tests are like integration_test, but they test asynchronous streaming.

View File

@ -1,4 +1,4 @@
require File.expand_path('helper', __dir__) require_relative 'test_helper'
require File.expand_path('integration_helper', __dir__) require File.expand_path('integration_helper', __dir__)
# These tests start a real server and talk to it over TCP. # These tests start a real server and talk to it over TCP.

View File

@ -1,4 +1,4 @@
require File.expand_path('helper', __dir__) require_relative 'test_helper'
begin begin
require 'liquid' require 'liquid'

View File

@ -1,4 +1,4 @@
require File.expand_path('helper', __dir__) require_relative 'test_helper'
class FooError < RuntimeError class FooError < RuntimeError
end end

View File

@ -1,4 +1,4 @@
require File.expand_path('helper', __dir__) require_relative 'test_helper'
begin begin
require 'markaby' require 'markaby'

View File

@ -1,4 +1,4 @@
require File.expand_path('helper', __dir__) require_relative 'test_helper'
MarkdownTest = proc do MarkdownTest = proc do
def markdown_app(&block) def markdown_app(&block)

View File

@ -1,4 +1,4 @@
require File.expand_path('helper', __dir__) require_relative 'test_helper'
class MiddlewareTest < Minitest::Test class MiddlewareTest < Minitest::Test
setup do setup do

View File

@ -1,4 +1,4 @@
require File.expand_path('helper', __dir__) require_relative 'test_helper'
begin begin
require 'nokogiri' require 'nokogiri'

View File

@ -1,4 +1,4 @@
require File.expand_path('helper', __dir__) require_relative 'test_helper'
begin begin
require 'rabl' require 'rabl'

View File

@ -1,4 +1,4 @@
require File.expand_path('helper', __dir__) require_relative 'test_helper'
require 'rack' require 'rack'
class RackTest < Minitest::Test class RackTest < Minitest::Test

View File

@ -1,4 +1,4 @@
require File.expand_path('helper', __dir__) require_relative 'test_helper'
begin begin
require 'rdoc' require 'rdoc'

View File

@ -1,6 +1,6 @@
# Tests to check if all the README examples work. require_relative 'test_helper'
require File.expand_path('helper', __dir__)
# Tests to check if all the README examples work.
class ReadmeTest < Minitest::Test class ReadmeTest < Minitest::Test
example do example do
mock_app { get('/') { 'Hello world!' } } mock_app { get('/') { 'Hello world!' } }

View File

@ -1,4 +1,4 @@
require File.expand_path('helper', __dir__) require_relative 'test_helper'
require 'stringio' require 'stringio'
class RequestTest < Minitest::Test class RequestTest < Minitest::Test

View File

@ -1,6 +1,4 @@
# encoding: utf-8 require_relative 'test_helper'
require File.expand_path('helper', __dir__)
class ResponseTest < Minitest::Test class ResponseTest < Minitest::Test
setup { @response = Sinatra::Response.new([], 200, { 'Content-Type' => 'text/html' }) } setup { @response = Sinatra::Response.new([], 200, { 'Content-Type' => 'text/html' }) }

View File

@ -1,4 +1,4 @@
require File.expand_path('helper', __dir__) require_relative 'test_helper'
class ThirdPartyError < RuntimeError class ThirdPartyError < RuntimeError
def http_status; 400 end def http_status; 400 end

View File

@ -1,4 +1,4 @@
require File.expand_path('helper', __dir__) require_relative 'test_helper'
module RouteAddedTest module RouteAddedTest
@routes, @procs = [], [] @routes, @procs = [], []

View File

@ -1,5 +1,4 @@
# I like coding: UTF-8 require_relative 'test_helper'
require File.expand_path('helper', __dir__)
# Helper method for easy route pattern matching testing # Helper method for easy route pattern matching testing
def route_def(pattern) def route_def(pattern)

View File

@ -1,4 +1,4 @@
require File.expand_path('helper', __dir__) require_relative 'test_helper'
require 'stringio' require 'stringio'
module Rack::Handler module Rack::Handler

View File

@ -1,4 +1,4 @@
require File.expand_path('helper', __dir__) require_relative 'test_helper'
class SettingsTest < Minitest::Test class SettingsTest < Minitest::Test
setup do setup do

View File

@ -1,4 +1,4 @@
require File.expand_path('helper', __dir__) require_relative 'test_helper'
class SinatraTest < Minitest::Test class SinatraTest < Minitest::Test
it 'creates a new Sinatra::Base subclass on new' do it 'creates a new Sinatra::Base subclass on new' do

View File

@ -1,4 +1,4 @@
require File.expand_path('helper', __dir__) require_relative 'test_helper'
begin begin
require 'slim' require 'slim'

View File

@ -1,4 +1,4 @@
require File.expand_path('helper', __dir__) require_relative 'test_helper'
class StaticTest < Minitest::Test class StaticTest < Minitest::Test
setup do setup do

View File

@ -1,4 +1,4 @@
require File.expand_path('helper', __dir__) require_relative 'test_helper'
class StreamingTest < Minitest::Test class StreamingTest < Minitest::Test
Stream = Sinatra::Helpers::Stream Stream = Sinatra::Helpers::Stream

View File

@ -1,5 +1,4 @@
# encoding: UTF-8 require_relative 'test_helper'
require File.expand_path('helper', __dir__)
File.delete(__dir__ + '/views/layout.test') rescue nil File.delete(__dir__ + '/views/layout.test') rescue nil
class TestTemplate < Tilt::Template class TestTemplate < Tilt::Template

View File

@ -1,4 +1,4 @@
require File.expand_path('helper', __dir__) require_relative 'test_helper'
begin begin
require 'yajl' require 'yajl'