Add words controller with index and show actions

This commit is contained in:
maddiebaka
2023-10-14 13:50:50 -04:00
parent ad08b283b0
commit 6202a6e778
11 changed files with 121 additions and 1 deletions

View 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

View 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

View 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

View 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