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