Skip to content

Commit

Permalink
specs (#16)
Browse files Browse the repository at this point in the history
  • Loading branch information
gkostin1966 committed Jun 10, 2019
1 parent 2f927d2 commit 10b1281
Show file tree
Hide file tree
Showing 3 changed files with 94 additions and 5 deletions.
2 changes: 2 additions & 0 deletions app/models/lib_ptg_folder.rb
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@ class LibPtgFolder < ApplicationRecord

scope :name_like, ->(like) { where("name like ?", "%#{like}%") }

validates :name, presence: true, allow_blank: false, uniqueness: true

def update?
true
end
Expand Down
12 changes: 11 additions & 1 deletion spec/models/lib_ptg_folder_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,15 @@
require 'rails_helper'

RSpec.describe LibPtgFolder, type: :model do
pending "add some examples to (or delete) #{__FILE__}"
subject(:lib_ptg_folder) { create(:lib_ptg_folder) }

it do # rubocop:disable RSpec/ExampleLength, RSpec/MultipleExpectations
expect(lib_ptg_folder).to be_valid
expect(lib_ptg_folder.update?).to be true
expect(lib_ptg_folder.destroy?).to be true
expect(LibPtgFolder.count).to eq(1)

lib_ptg_folder.destroy
expect(LibPtgFolder.count).to be_zero
end
end
85 changes: 81 additions & 4 deletions spec/requests/lib_ptg_folders_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,87 @@
require 'rails_helper'

RSpec.describe "LibPtgFolders", type: :request do
describe "GET /lib_ptg_folders" do
it "works! (now write some real specs)" do
get lib_ptg_folders_path
expect(response).to have_http_status(200)
let(:target) { create(:lib_ptg_folder) }

describe '#index' do
subject(:get_index) { get "/lib_ptg_folders" }

before { get_index }

it { expect(response).to have_http_status(:ok) }

context 'when filtering' do
subject(:get_index) { get "/lib_ptg_folders?name_like=#{target.name}" }

it { expect(response).to have_http_status(:ok) }
end
end

describe '#show' do
subject(:get_show) { get "/lib_ptg_folders/#{target.id}" }

before { get_show }

it { expect(response).to have_http_status(:ok) }
end

describe '#new' do
subject(:get_new) { get "/lib_ptg_folders/new" }

before { get_new }

it { expect(response).to have_http_status(:ok) }
end

describe '#edit' do
subject(:get_edit) { get "/lib_ptg_folders/#{target.id}/edit" }

before { get_edit }

it { expect(response).to have_http_status(:ok) }
end

describe '#create' do
subject(:post_create) { post "/lib_ptg_folders", params: { lib_ptg_folder: lib_ptg_folder_params } }

let(:lib_ptg_folder_params) { { name: 'name' } }

before { post_create }

it { expect(response).to redirect_to(lib_ptg_folder_path(LibPtgFolder.find_by(lib_ptg_folder_params))) }
it { expect(response).to have_http_status(:found) }

context 'when invalid lib_ptg_folder params' do
let(:lib_ptg_folder_params) { { name: '' } }

it { expect(response).to have_http_status(:ok) }
end
end

describe '#update' do
subject(:put_update) { put "/lib_ptg_folders/#{target.id}", params: { lib_ptg_folder: lib_ptg_folder_params } }

let(:lib_ptg_folder_params) { { name: 'new_name' } }

before { put_update }

it { expect(response).to redirect_to(lib_ptg_folder_path(LibPtgFolder.find(target.id))) }
it { expect(response).to have_http_status(:found) }

context 'when invalid lib_ptg_folder params' do
let(:lib_ptg_folder_params) { { name: '' } }

it { expect(response).to have_http_status(:ok) }
end
end

describe '#destroy' do
subject(:delete_destroy) { delete "/lib_ptg_folders/#{target.id}" }

before { delete_destroy }

it { expect(response).to redirect_to(lib_ptg_folders_path) }
it { expect(response).to have_http_status(:found) }
it { expect { LibPtgFolder.find(target.id) }.to raise_error(ActiveRecord::RecordNotFound) }
end
end

0 comments on commit 10b1281

Please sign in to comment.