Add words controller with index and show actions
This commit is contained in:
22
spec/controllers/words_spec.rb
Normal file
22
spec/controllers/words_spec.rb
Normal file
@@ -0,0 +1,22 @@
|
||||
require 'rails_helper'
|
||||
|
||||
RSpec.describe WordsController, type: :controller do
|
||||
describe "GET :index" do
|
||||
it 'renders the index template' do
|
||||
get :index
|
||||
expect(response).to render_template(:index)
|
||||
end
|
||||
|
||||
it 'sets @words instance variable' do
|
||||
FactoryBot.create(:word)
|
||||
get :index
|
||||
expect(assigns(:words)).to be_a(ActiveRecord::Relation)
|
||||
end
|
||||
|
||||
it 'fetches all words into @words' do
|
||||
5.times { FactoryBot.create(:word) }
|
||||
get :index
|
||||
expect(assigns(:words).count).to eq(5)
|
||||
end
|
||||
end
|
||||
end
|
15
spec/helpers/word_helper_spec.rb
Normal file
15
spec/helpers/word_helper_spec.rb
Normal file
@@ -0,0 +1,15 @@
|
||||
require 'rails_helper'
|
||||
|
||||
# Specs in this file have access to a helper object that includes
|
||||
# the WordHelper. For example:
|
||||
#
|
||||
# describe WordHelper do
|
||||
# describe "string concat" do
|
||||
# it "concats two strings with spaces" do
|
||||
# expect(helper.concat_strings("this","that")).to eq("this that")
|
||||
# end
|
||||
# end
|
||||
# end
|
||||
RSpec.describe WordHelper, type: :helper do
|
||||
#pending "add some examples to (or delete) #{__FILE__}"
|
||||
end
|
39
spec/requests/word_spec.rb
Normal file
39
spec/requests/word_spec.rb
Normal file
@@ -0,0 +1,39 @@
|
||||
require 'rails_helper'
|
||||
|
||||
RSpec.describe "Words", type: :request do
|
||||
describe "GET /index" do
|
||||
|
||||
it "renders the index template" do
|
||||
get "/words"
|
||||
expect(response).to render_template(:index)
|
||||
end
|
||||
end
|
||||
|
||||
describe "GET /show/:val" do
|
||||
|
||||
before(:each) do
|
||||
@word = FactoryBot.create(:word)
|
||||
end
|
||||
|
||||
it "renders the show template" do
|
||||
get "/words/#{@word.id}"
|
||||
expect(response).to render_template(:show)
|
||||
end
|
||||
|
||||
it "sets @word instance variable" do
|
||||
get "/words/#{@word.id}"
|
||||
expect(assigns(:word)).to be_a(Word)
|
||||
end
|
||||
|
||||
it "displays the word name" do
|
||||
get "/words/#{@word.id}"
|
||||
expect(response.body).to include(@word.word)
|
||||
end
|
||||
|
||||
it "displays the definitions" do
|
||||
@definition = FactoryBot.create(:definition)
|
||||
get "/words/#{@definition.word_id}"
|
||||
expect(response.body).to include(@definition.definition)
|
||||
end
|
||||
end
|
||||
end
|
11
spec/requests/words_spec.rb
Normal file
11
spec/requests/words_spec.rb
Normal file
@@ -0,0 +1,11 @@
|
||||
require 'rails_helper'
|
||||
|
||||
RSpec.describe "Words", type: :request do
|
||||
describe "GET /index" do
|
||||
|
||||
it "renders the index template" do
|
||||
get "/words"
|
||||
expect(response).to render_template(:index)
|
||||
end
|
||||
end
|
||||
end
|
Reference in New Issue
Block a user