finish
This commit is contained in:
parent
7ee9afebe0
commit
22b1e769b2
2
Gemfile
2
Gemfile
@ -54,10 +54,12 @@ end
|
|||||||
group :development do
|
group :development do
|
||||||
# Use console on exceptions pages [https://github.com/rails/web-console]
|
# Use console on exceptions pages [https://github.com/rails/web-console]
|
||||||
gem "web-console"
|
gem "web-console"
|
||||||
|
gem 'guard', '~> 2.19'
|
||||||
end
|
end
|
||||||
|
|
||||||
group :test do
|
group :test do
|
||||||
# Use system testing [https://guides.rubyonrails.org/testing.html#system-testing]
|
# Use system testing [https://guides.rubyonrails.org/testing.html#system-testing]
|
||||||
gem "capybara"
|
gem "capybara"
|
||||||
gem "selenium-webdriver"
|
gem "selenium-webdriver"
|
||||||
|
gem "minitest-reporters"
|
||||||
end
|
end
|
||||||
|
43
Gemfile.lock
43
Gemfile.lock
@ -74,6 +74,7 @@ GEM
|
|||||||
uri (>= 0.13.1)
|
uri (>= 0.13.1)
|
||||||
addressable (2.8.7)
|
addressable (2.8.7)
|
||||||
public_suffix (>= 2.0.2, < 7.0)
|
public_suffix (>= 2.0.2, < 7.0)
|
||||||
|
ansi (1.5.0)
|
||||||
ast (2.4.2)
|
ast (2.4.2)
|
||||||
base64 (0.2.0)
|
base64 (0.2.0)
|
||||||
bcrypt_pbkdf (1.1.1)
|
bcrypt_pbkdf (1.1.1)
|
||||||
@ -96,6 +97,7 @@ GEM
|
|||||||
rack-test (>= 0.6.3)
|
rack-test (>= 0.6.3)
|
||||||
regexp_parser (>= 1.5, < 3.0)
|
regexp_parser (>= 1.5, < 3.0)
|
||||||
xpath (~> 3.2)
|
xpath (~> 3.2)
|
||||||
|
coderay (1.1.3)
|
||||||
concurrent-ruby (1.3.4)
|
concurrent-ruby (1.3.4)
|
||||||
connection_pool (2.4.1)
|
connection_pool (2.4.1)
|
||||||
crass (1.0.6)
|
crass (1.0.6)
|
||||||
@ -109,11 +111,29 @@ GEM
|
|||||||
erubi (1.13.1)
|
erubi (1.13.1)
|
||||||
et-orbi (1.2.11)
|
et-orbi (1.2.11)
|
||||||
tzinfo
|
tzinfo
|
||||||
|
ffi (1.17.0-aarch64-linux-gnu)
|
||||||
|
ffi (1.17.0-aarch64-linux-musl)
|
||||||
|
ffi (1.17.0-arm-linux-gnu)
|
||||||
|
ffi (1.17.0-arm-linux-musl)
|
||||||
|
ffi (1.17.0-arm64-darwin)
|
||||||
|
ffi (1.17.0-x86_64-darwin)
|
||||||
|
ffi (1.17.0-x86_64-linux-gnu)
|
||||||
|
ffi (1.17.0-x86_64-linux-musl)
|
||||||
|
formatador (1.1.0)
|
||||||
fugit (1.11.1)
|
fugit (1.11.1)
|
||||||
et-orbi (~> 1, >= 1.2.11)
|
et-orbi (~> 1, >= 1.2.11)
|
||||||
raabro (~> 1.4)
|
raabro (~> 1.4)
|
||||||
globalid (1.2.1)
|
globalid (1.2.1)
|
||||||
activesupport (>= 6.1)
|
activesupport (>= 6.1)
|
||||||
|
guard (2.19.0)
|
||||||
|
formatador (>= 0.2.4)
|
||||||
|
listen (>= 2.7, < 4.0)
|
||||||
|
lumberjack (>= 1.0.12, < 2.0)
|
||||||
|
nenv (~> 0.1)
|
||||||
|
notiffany (~> 0.0)
|
||||||
|
pry (>= 0.13.0)
|
||||||
|
shellany (~> 0.0)
|
||||||
|
thor (>= 0.18.1)
|
||||||
i18n (1.14.6)
|
i18n (1.14.6)
|
||||||
concurrent-ruby (~> 1.0)
|
concurrent-ruby (~> 1.0)
|
||||||
importmap-rails (2.1.0)
|
importmap-rails (2.1.0)
|
||||||
@ -140,10 +160,14 @@ GEM
|
|||||||
thor (~> 1.3)
|
thor (~> 1.3)
|
||||||
zeitwerk (>= 2.6.18, < 3.0)
|
zeitwerk (>= 2.6.18, < 3.0)
|
||||||
language_server-protocol (3.17.0.3)
|
language_server-protocol (3.17.0.3)
|
||||||
|
listen (3.9.0)
|
||||||
|
rb-fsevent (~> 0.10, >= 0.10.3)
|
||||||
|
rb-inotify (~> 0.9, >= 0.9.10)
|
||||||
logger (1.6.4)
|
logger (1.6.4)
|
||||||
loofah (2.23.1)
|
loofah (2.23.1)
|
||||||
crass (~> 1.0.2)
|
crass (~> 1.0.2)
|
||||||
nokogiri (>= 1.12.0)
|
nokogiri (>= 1.12.0)
|
||||||
|
lumberjack (1.2.10)
|
||||||
mail (2.8.1)
|
mail (2.8.1)
|
||||||
mini_mime (>= 0.1.1)
|
mini_mime (>= 0.1.1)
|
||||||
net-imap
|
net-imap
|
||||||
@ -151,9 +175,16 @@ GEM
|
|||||||
net-smtp
|
net-smtp
|
||||||
marcel (1.0.4)
|
marcel (1.0.4)
|
||||||
matrix (0.4.2)
|
matrix (0.4.2)
|
||||||
|
method_source (1.1.0)
|
||||||
mini_mime (1.1.5)
|
mini_mime (1.1.5)
|
||||||
minitest (5.25.4)
|
minitest (5.25.4)
|
||||||
|
minitest-reporters (1.7.1)
|
||||||
|
ansi
|
||||||
|
builder
|
||||||
|
minitest (>= 5.0)
|
||||||
|
ruby-progressbar
|
||||||
msgpack (1.7.5)
|
msgpack (1.7.5)
|
||||||
|
nenv (0.3.0)
|
||||||
net-imap (0.5.4)
|
net-imap (0.5.4)
|
||||||
date
|
date
|
||||||
net-protocol
|
net-protocol
|
||||||
@ -185,6 +216,9 @@ GEM
|
|||||||
racc (~> 1.4)
|
racc (~> 1.4)
|
||||||
nokogiri (1.18.0-x86_64-linux-musl)
|
nokogiri (1.18.0-x86_64-linux-musl)
|
||||||
racc (~> 1.4)
|
racc (~> 1.4)
|
||||||
|
notiffany (0.1.3)
|
||||||
|
nenv (~> 0.1)
|
||||||
|
shellany (~> 0.0)
|
||||||
ostruct (0.6.1)
|
ostruct (0.6.1)
|
||||||
parallel (1.26.3)
|
parallel (1.26.3)
|
||||||
parser (3.3.6.0)
|
parser (3.3.6.0)
|
||||||
@ -195,6 +229,9 @@ GEM
|
|||||||
activesupport (>= 7.0.0)
|
activesupport (>= 7.0.0)
|
||||||
rack
|
rack
|
||||||
railties (>= 7.0.0)
|
railties (>= 7.0.0)
|
||||||
|
pry (0.15.2)
|
||||||
|
coderay (~> 1.1)
|
||||||
|
method_source (~> 1.0)
|
||||||
psych (5.2.2)
|
psych (5.2.2)
|
||||||
date
|
date
|
||||||
stringio
|
stringio
|
||||||
@ -241,6 +278,9 @@ GEM
|
|||||||
zeitwerk (~> 2.6)
|
zeitwerk (~> 2.6)
|
||||||
rainbow (3.1.1)
|
rainbow (3.1.1)
|
||||||
rake (13.2.1)
|
rake (13.2.1)
|
||||||
|
rb-fsevent (0.11.2)
|
||||||
|
rb-inotify (0.11.1)
|
||||||
|
ffi (~> 1.0)
|
||||||
rdoc (6.10.0)
|
rdoc (6.10.0)
|
||||||
psych (>= 4.0.0)
|
psych (>= 4.0.0)
|
||||||
regexp_parser (2.10.0)
|
regexp_parser (2.10.0)
|
||||||
@ -284,6 +324,7 @@ GEM
|
|||||||
rexml (~> 3.2, >= 3.2.5)
|
rexml (~> 3.2, >= 3.2.5)
|
||||||
rubyzip (>= 1.2.2, < 3.0)
|
rubyzip (>= 1.2.2, < 3.0)
|
||||||
websocket (~> 1.0)
|
websocket (~> 1.0)
|
||||||
|
shellany (0.0.1)
|
||||||
solid_cable (3.0.5)
|
solid_cable (3.0.5)
|
||||||
actioncable (>= 7.2)
|
actioncable (>= 7.2)
|
||||||
activejob (>= 7.2)
|
activejob (>= 7.2)
|
||||||
@ -364,9 +405,11 @@ DEPENDENCIES
|
|||||||
brakeman
|
brakeman
|
||||||
capybara
|
capybara
|
||||||
debug
|
debug
|
||||||
|
guard (~> 2.19)
|
||||||
importmap-rails
|
importmap-rails
|
||||||
jbuilder
|
jbuilder
|
||||||
kamal
|
kamal
|
||||||
|
minitest-reporters
|
||||||
propshaft
|
propshaft
|
||||||
puma (>= 5.0)
|
puma (>= 5.0)
|
||||||
rails (~> 8.0.1)
|
rails (~> 8.0.1)
|
||||||
|
73
Guardfile
Normal file
73
Guardfile
Normal file
@ -0,0 +1,73 @@
|
|||||||
|
# A sample Guardfile
|
||||||
|
# More info at https://github.com/guard/guard#readme
|
||||||
|
|
||||||
|
## Uncomment and set this to only include directories you want to watch
|
||||||
|
# directories %w(app lib config test spec features) \
|
||||||
|
# .select{|d| Dir.exist?(d) ? d : UI.warning("Directory #{d} does not exist")}
|
||||||
|
|
||||||
|
## Note: if you are using the `directories` clause above and you are not
|
||||||
|
## watching the project directory ('.'), then you will want to move
|
||||||
|
## the Guardfile to a watched dir and symlink it back, e.g.
|
||||||
|
#
|
||||||
|
# $ mkdir config
|
||||||
|
# $ mv Guardfile config/
|
||||||
|
# $ ln -s config/Guardfile .
|
||||||
|
#
|
||||||
|
# and, you'll have to watch "config/Guardfile" instead of "Guardfile"
|
||||||
|
|
||||||
|
require 'active_support/core_ext/string' # Defines the matching rules for Guard.
|
||||||
|
guard :minitest, spring: "bin/rails test", all_on_start: false do
|
||||||
|
watch(%r{^test/(.*)/?(.*)_test\.rb$})
|
||||||
|
watch('test/test_helper.rb') { 'test' }
|
||||||
|
watch('config/routes.rb') { interface_tests }
|
||||||
|
watch(%r{app/views/layouts/*}) { interface_tests }
|
||||||
|
watch(%r{âpp/models/(.*?)\.rb$}) do |matches|
|
||||||
|
["test/models/#{matches[1]}_test.rb", "test/integration/microposts_interface_test.rb"]
|
||||||
|
end
|
||||||
|
watch(%r{^test/fixtures/(.*?)\.yml$}) do |matches|
|
||||||
|
"test/models/#{matches[1].singularize}_test.rb"
|
||||||
|
end
|
||||||
|
watch(%r{âpp/mailers/(.*?)\.rb$}) do |matches|
|
||||||
|
"test/mailers/#{matches[1]}_test.rb"
|
||||||
|
end
|
||||||
|
watch(%r{âpp/views/(.*)_mailer/.*$}) do |matches|
|
||||||
|
"test/mailers/#{matches[1]}_mailer_test.rb"
|
||||||
|
end
|
||||||
|
watch(%r{âpp/controllers/(.*?)_controller\.rb$}) do |matches|
|
||||||
|
resource_tests(matches[1])
|
||||||
|
end
|
||||||
|
watch(%r{âpp/views/([^/]*?)/.*\.html\.erb$}) do |matches|
|
||||||
|
["test/controllers/#{matches[1]}_controller_test.rb"] + integration_tests(matches[1])
|
||||||
|
end
|
||||||
|
watch(%r{âpp/helpers/(.*?)_helper\.rb$}) do |matches| integration_tests(matches[1])
|
||||||
|
end
|
||||||
|
watch('app/views/layouts/application.html.erb') do 'test/integration/site_layout_test.rb'
|
||||||
|
end
|
||||||
|
watch('app/helpers/sessions_helper.rb') do integration_tests << 'test/helpers/sessions_helper_test.rb'
|
||||||
|
end
|
||||||
|
watch('app/controllers/sessions_controller.rb') do ['test/controllers/sessions_controller_test.rb', 'test/integration/users_login_test.rb']
|
||||||
|
end
|
||||||
|
watch('app/controllers/account_activations_controller.rb') do 'test/integration/users_signup_test.rb'
|
||||||
|
end
|
||||||
|
watch(%r{app/views/users/*}) do resource_tests('users') + ['test/integration/microposts_interface_test.rb']
|
||||||
|
end
|
||||||
|
end # Returns the integration tests corresponding to the given resource.
|
||||||
|
|
||||||
|
|
||||||
|
def integration_tests(resource = :all)
|
||||||
|
if resource == :all
|
||||||
|
Dir["test/integration/*"]
|
||||||
|
else
|
||||||
|
Dir["test/integration/#{resource}_*.rb"]
|
||||||
|
end
|
||||||
|
end # Returns all tests that hit the interface.
|
||||||
|
def
|
||||||
|
interface_tests
|
||||||
|
integration_tests << "test/controllers"
|
||||||
|
end # Returns the controller tests corresponding to the given resource.
|
||||||
|
def
|
||||||
|
controller_test(resource) "test/controllers/#{resource}_controller_test.rb"
|
||||||
|
end # Returns all tests for the given resource.
|
||||||
|
def
|
||||||
|
resource_tests(resource) integration_tests(resource) << controller_test(resource)
|
||||||
|
end
|
@ -7,4 +7,7 @@ class StaticPagesController < ApplicationController
|
|||||||
|
|
||||||
def about
|
def about
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def contact
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
@ -1,7 +1,8 @@
|
|||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<title><%= content_for(:title) || "Sample App" %></title>
|
<!-- <title><%#= content_for(:title) || "Sample App" %></title>-->
|
||||||
|
<title><%= yield(:title) %> | Ruby on Rails Tutorial Sample App</title>
|
||||||
<meta name="viewport" content="width=device-width,initial-scale=1">
|
<meta name="viewport" content="width=device-width,initial-scale=1">
|
||||||
<meta name="apple-mobile-web-app-capable" content="yes">
|
<meta name="apple-mobile-web-app-capable" content="yes">
|
||||||
<meta name="mobile-web-app-capable" content="yes">
|
<meta name="mobile-web-app-capable" content="yes">
|
||||||
|
@ -1,2 +1,11 @@
|
|||||||
<h1>StaticPages#about</h1>
|
<% provide(:title, "About") %>
|
||||||
<p>Find me in app/views/static_pages/about.html.erb</p>
|
<h1>About</h1>
|
||||||
|
<p>
|
||||||
|
The <a href="https://www.railstutorial.org/"><em>Ruby on Rails Tutorial</em></a>
|
||||||
|
, part of the <a href="https://www.learnenough.com/">Learn Enough</a> family of
|
||||||
|
tutorials, is a <a href="https://www.railstutorial.org/book">book</a> and
|
||||||
|
<a href="https://screencasts.railstutorial.org/">screencast series</a>
|
||||||
|
to teach web development with <a href="https://rubyonrails.org/">Ruby on Rails</a>.
|
||||||
|
This is the sample app for the tutorial.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
8
app/views/static_pages/contact.html.erb
Normal file
8
app/views/static_pages/contact.html.erb
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
<% provide(:title, "Contact") %>
|
||||||
|
<h1>Contact</h1>
|
||||||
|
<p>
|
||||||
|
Contact the Ruby on Rails Tutorial about the sample app at the
|
||||||
|
<a href="https://www.railstutorial.org/contact">contact page</a>.
|
||||||
|
|
||||||
|
</p>
|
||||||
|
|
@ -1,2 +1,9 @@
|
|||||||
<h1>StaticPages#help</h1>
|
<% provide(:title, "Help") %>
|
||||||
<p>Find me in app/views/static_pages/help.html.erb</p>
|
<h1>Help</h1>
|
||||||
|
<p>
|
||||||
|
Get help on the Ruby on Rails Tutorial at the
|
||||||
|
<a href="https://www.railstutorial.org/help">Rails Tutorial help page</a>.
|
||||||
|
To get help on this sample app, see the
|
||||||
|
<a href="https://www.railstutorial.org/book"><em>Ruby on Rails Tutorial</em> book</a>.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
@ -1,2 +1,8 @@
|
|||||||
<h1>StaticPages#home</h1>
|
<% provide(:title, "Home") %>
|
||||||
<p>Find me in app/views/static_pages/home.html.erb</p>
|
<h1>Sample App</h1>
|
||||||
|
<p>
|
||||||
|
This is the home page for the
|
||||||
|
<a href="https://www.railstutorial.org/">Ruby on Rails Tutorial</a>
|
||||||
|
sample application.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
@ -2,8 +2,9 @@ Rails.application.routes.draw do
|
|||||||
get "static_pages/home"
|
get "static_pages/home"
|
||||||
get "static_pages/help"
|
get "static_pages/help"
|
||||||
get "static_pages/about"
|
get "static_pages/about"
|
||||||
|
get "static_pages/contact"
|
||||||
|
|
||||||
root "application#hello"
|
root "static_pages#home"
|
||||||
# Define your application routes per the DSL in https://guides.rubyonrails.org/routing.html
|
# Define your application routes per the DSL in https://guides.rubyonrails.org/routing.html
|
||||||
|
|
||||||
# Reveal health status on /up that returns 200 if the app boots with no exceptions, otherwise 500.
|
# Reveal health status on /up that returns 200 if the app boots with no exceptions, otherwise 500.
|
||||||
|
@ -1,19 +1,40 @@
|
|||||||
require "test_helper"
|
require "test_helper"
|
||||||
|
|
||||||
class StaticPagesControllerTest < ActionDispatch::IntegrationTest
|
class StaticPagesControllerTest < ActionDispatch::IntegrationTest
|
||||||
|
|
||||||
|
def setup
|
||||||
|
@base_title = "Ruby on Rails Tutorial Sample App"
|
||||||
|
end
|
||||||
|
|
||||||
|
test "should get root" do
|
||||||
|
get root_url
|
||||||
|
assert_response :success
|
||||||
|
assert_select "title", "Home | #{@base_title}"
|
||||||
|
end
|
||||||
|
|
||||||
test "should get home" do
|
test "should get home" do
|
||||||
get static_pages_home_url
|
get static_pages_home_url
|
||||||
assert_response :success
|
assert_response :success
|
||||||
|
assert_select "title", "Home | #{@base_title}"
|
||||||
|
assert_select "h1", "Sample App"
|
||||||
end
|
end
|
||||||
|
|
||||||
test "should get help" do
|
test "should get help" do
|
||||||
get static_pages_help_url
|
get static_pages_help_url
|
||||||
assert_response :success
|
assert_response :success
|
||||||
|
assert_select "title", "Help | #{@base_title}"
|
||||||
end
|
end
|
||||||
|
|
||||||
test "Should get about" do
|
test "Should get about" do
|
||||||
get static_pages_about_url
|
get static_pages_about_url
|
||||||
assert_response :success
|
assert_response :success
|
||||||
|
assert_select "title", "About | #{@base_title}"
|
||||||
|
end
|
||||||
|
|
||||||
|
test "Should get contact" do
|
||||||
|
get static_pages_contact_url
|
||||||
|
assert_response :success
|
||||||
|
assert_select "title", "Contact | #{@base_title}"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
ENV["RAILS_ENV"] ||= "test"
|
ENV["RAILS_ENV"] ||= "test"
|
||||||
require_relative "../config/environment"
|
require_relative "../config/environment"
|
||||||
require "rails/test_help"
|
require "rails/test_help"
|
||||||
|
require "minitest/reporters"
|
||||||
|
Minitest::Reporters.use!
|
||||||
|
|
||||||
module ActiveSupport
|
module ActiveSupport
|
||||||
class TestCase
|
class TestCase
|
||||||
|
Loading…
Reference in New Issue
Block a user