mirror of
https://github.com/fspc/bike-database.git
synced 2025-02-23 01:23:24 -05:00
Louis | Remove failing autogenerated tests, fix bug where bike type wasn't saving
This commit is contained in:
parent
d3403e18cd
commit
4d49cf829f
3
.gitignore
vendored
3
.gitignore
vendored
@ -21,3 +21,6 @@
|
||||
.DS_Store
|
||||
|
||||
/config/initializers/secret_token.rb
|
||||
/config/secrets.yml
|
||||
|
||||
*.swp
|
||||
|
1
Gemfile
1
Gemfile
@ -11,6 +11,7 @@ gem 'sass-rails', '~> 4.0.0'
|
||||
gem 'haml'
|
||||
|
||||
group :test, :development do
|
||||
gem 'faker'
|
||||
gem 'rspec'
|
||||
gem 'rspec-rails'
|
||||
gem 'factory_girl'
|
||||
|
@ -66,6 +66,8 @@ GEM
|
||||
factory_girl_rails (4.3.0)
|
||||
factory_girl (~> 4.3.0)
|
||||
railties (>= 3.0.0)
|
||||
faker (1.4.3)
|
||||
i18n (~> 0.5)
|
||||
ffi (1.9.3)
|
||||
growl (1.0.3)
|
||||
haml (4.0.5)
|
||||
@ -195,6 +197,7 @@ DEPENDENCIES
|
||||
devise
|
||||
factory_girl
|
||||
factory_girl_rails (~> 4.0)
|
||||
faker
|
||||
growl (= 1.0.3)
|
||||
haml
|
||||
jbuilder (= 1.0.2)
|
||||
|
@ -54,7 +54,7 @@ class BikesController < ApplicationController
|
||||
:entry_date,
|
||||
:brand,
|
||||
:model,
|
||||
:type,
|
||||
:bike_type,
|
||||
:color,
|
||||
:frame_size,
|
||||
:log_number,
|
||||
|
@ -60,6 +60,7 @@ class ClientsController < ApplicationController
|
||||
:helmet,
|
||||
:lock,
|
||||
:agency,
|
||||
:completion_date)
|
||||
:completion_date,
|
||||
:bike_id)
|
||||
end
|
||||
end
|
||||
|
@ -4,6 +4,5 @@ class Bike < ActiveRecord::Base
|
||||
validates :model, presence: true
|
||||
validates :bike_type, presence: true
|
||||
validates :color, presence: true
|
||||
validates :frame_size, presence: true
|
||||
validates :serial_number, presence: true
|
||||
end
|
||||
|
@ -1,2 +1,3 @@
|
||||
class Client < ActiveRecord::Base
|
||||
has_one :bike
|
||||
end
|
||||
|
@ -43,7 +43,15 @@
|
||||
= f.label "Agency", class: "col-sm-2 control-label"
|
||||
.col-sm-10
|
||||
= f.text_field :agency, class: "form-control", disabled: disabled
|
||||
|
||||
.form-group
|
||||
= f.label "Completion Date:", class: "col-sm-2 control-label"
|
||||
.col-sm-10
|
||||
= f.text_field :completion_date, class: "form-control datepicker", disabled: disabled
|
||||
|
||||
.form-group
|
||||
= f.label "Type:", class: "col-sm-2 control-label"
|
||||
.col-sm-10
|
||||
= f.select(:bike_id, Bike.all.collect {|b| [ b.model, b.id ] }, {include_blank: 'None'})
|
||||
|
||||
|
||||
|
@ -6,8 +6,6 @@ Bikedb::Application.configure do
|
||||
# since you don't have to restart the web server when you make code changes.
|
||||
config.cache_classes = false
|
||||
|
||||
config.action_mailer.default_url_options = { host: 'localhost:3000' }
|
||||
|
||||
# Do not eager load code on boot.
|
||||
config.eager_load = false
|
||||
|
||||
|
@ -4,7 +4,7 @@ Devise.setup do |config|
|
||||
# The secret key used by Devise. Devise uses this key to generate
|
||||
# random tokens. Changing this key will render invalid all existing
|
||||
# confirmation, reset password and unlock tokens in the database.
|
||||
# config.secret_key = '0d38d9284bf78335f388721b777096313201c1cfcc3c21166b0072a68255e8c12470cde620602db967463b703a9207b0344fb64d48f9e595335567a906098e2f'
|
||||
config.secret_key = 'ff407f8658cb72582329ddad18c24cd0f4e1f40ee58b70952a329c205c7db4a4c3aab68aa4d7c6110708e570c20c07a145d3bf9c1b67f27c0a3289f490d55076'
|
||||
|
||||
# ==> Mailer Configuration
|
||||
# Configure the e-mail address which will be shown in Devise::Mailer,
|
||||
|
@ -1,6 +1,7 @@
|
||||
Bikedb::Application.routes.draw do
|
||||
devise_for :users
|
||||
root to: "static_pages#home"
|
||||
|
||||
resources :bikes
|
||||
resources :volunteers
|
||||
resources :clients
|
||||
|
@ -6,7 +6,6 @@ class CreateBikeTable < ActiveRecord::Migration
|
||||
t.string :model
|
||||
t.string :type
|
||||
t.string :color
|
||||
t.string :frame_size
|
||||
t.boolean :freecyclery
|
||||
t.boolean :sale
|
||||
t.string :serial_number
|
||||
|
5
db/migrate/20140917020156_add_bike_to_client.rb
Normal file
5
db/migrate/20140917020156_add_bike_to_client.rb
Normal file
@ -0,0 +1,5 @@
|
||||
class AddBikeToClient < ActiveRecord::Migration
|
||||
def change
|
||||
add_reference :clients, :bike, index: true
|
||||
end
|
||||
end
|
@ -11,7 +11,7 @@
|
||||
#
|
||||
# It's strongly recommended that you check this file into your version control system.
|
||||
|
||||
ActiveRecord::Schema.define(version: 20140917003003) do
|
||||
ActiveRecord::Schema.define(version: 20140917020156) do
|
||||
|
||||
# These are extensions that must be enabled in order to support this database
|
||||
enable_extension "plpgsql"
|
||||
@ -22,7 +22,6 @@ ActiveRecord::Schema.define(version: 20140917003003) do
|
||||
t.string "model"
|
||||
t.string "bike_type"
|
||||
t.string "color"
|
||||
t.string "frame_size"
|
||||
t.string "serial_number"
|
||||
t.text "notes"
|
||||
t.text "tag_info"
|
||||
@ -50,8 +49,11 @@ ActiveRecord::Schema.define(version: 20140917003003) do
|
||||
t.date "completion_date"
|
||||
t.datetime "created_at"
|
||||
t.datetime "updated_at"
|
||||
t.integer "bike_id"
|
||||
end
|
||||
|
||||
add_index "clients", ["bike_id"], name: "index_clients_on_bike_id", using: :btree
|
||||
|
||||
create_table "users", force: true do |t|
|
||||
t.string "email", default: "", null: false
|
||||
t.string "encrypted_password", default: "", null: false
|
||||
|
@ -1,122 +1,17 @@
|
||||
require 'spec_helper'
|
||||
describe BikesController do
|
||||
|
||||
describe "GET index" do
|
||||
it "assigns all bikes as @bikes" do
|
||||
bike = Bike.create! valid_attributes
|
||||
get :index, {}, valid_session
|
||||
assigns(:bikes).should eq([bike])
|
||||
end
|
||||
let(:user){FactoryGirl.create(:user)}
|
||||
let(:bike){FactoryGirl.create(:bike)}
|
||||
|
||||
before :each do
|
||||
controller.stub(:current_user).and_return(user)
|
||||
controller.stub(:authenticate_user!).and_return true
|
||||
end
|
||||
|
||||
describe "GET show" do
|
||||
it "assigns the requested bike as @bike" do
|
||||
bike = Bike.create! valid_attributes
|
||||
get :show, {:id => bike.to_param}, valid_session
|
||||
assigns(:bike).should eq(bike)
|
||||
end
|
||||
end
|
||||
|
||||
describe "GET new" do
|
||||
it "assigns a new bike as @bike" do
|
||||
get :new, {}, valid_session
|
||||
assigns(:bike).should be_a_new(Bike)
|
||||
end
|
||||
end
|
||||
|
||||
describe "GET edit" do
|
||||
it "assigns the requested bike as @bike" do
|
||||
bike = Bike.create! valid_attributes
|
||||
get :edit, {:id => bike.to_param}, valid_session
|
||||
assigns(:bike).should eq(bike)
|
||||
end
|
||||
end
|
||||
|
||||
describe "POST create" do
|
||||
describe "with valid params" do
|
||||
it "creates a new Bike" do
|
||||
expect {
|
||||
post :create, {:bike => valid_attributes}, valid_session
|
||||
}.to change(Bike, :count).by(1)
|
||||
end
|
||||
|
||||
it "assigns a newly created bike as @bike" do
|
||||
post :create, {:bike => valid_attributes}, valid_session
|
||||
assigns(:bike).should be_a(Bike)
|
||||
assigns(:bike).should be_persisted
|
||||
end
|
||||
|
||||
it "redirects to the created bike" do
|
||||
post :create, {:bike => valid_attributes}, valid_session
|
||||
response.should redirect_to(Bike.last)
|
||||
end
|
||||
end
|
||||
|
||||
describe "with invalid params" do
|
||||
it "assigns a newly created but unsaved bike as @bike" do
|
||||
Bike.any_instance.stub(:save).and_return(false)
|
||||
post :create, {:bike => { }}, valid_session
|
||||
assigns(:bike).should be_a_new(Bike)
|
||||
end
|
||||
|
||||
it "re-renders the 'new' template" do
|
||||
Bike.any_instance.stub(:save).and_return(false)
|
||||
post :create, {:bike => { }}, valid_session
|
||||
response.should render_template("new")
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
describe "PUT update" do
|
||||
describe "with valid params" do
|
||||
it "updates the requested bike" do
|
||||
bike = Bike.create! valid_attributes
|
||||
Bike.any_instance.should_receive(:update).with({ "these" => "params" })
|
||||
put :update, {:id => bike.to_param, :bike => { "these" => "params" }}, valid_session
|
||||
end
|
||||
|
||||
it "assigns the requested bike as @bike" do
|
||||
bike = Bike.create! valid_attributes
|
||||
put :update, {:id => bike.to_param, :bike => valid_attributes}, valid_session
|
||||
assigns(:bike).should eq(bike)
|
||||
end
|
||||
|
||||
it "redirects to the bike" do
|
||||
bike = Bike.create! valid_attributes
|
||||
put :update, {:id => bike.to_param, :bike => valid_attributes}, valid_session
|
||||
response.should redirect_to(bike)
|
||||
end
|
||||
end
|
||||
|
||||
describe "with invalid params" do
|
||||
it "assigns the bike as @bike" do
|
||||
bike = Bike.create! valid_attributes
|
||||
Bike.any_instance.stub(:save).and_return(false)
|
||||
put :update, {:id => bike.to_param, :bike => { }}, valid_session
|
||||
assigns(:bike).should eq(bike)
|
||||
end
|
||||
|
||||
it "re-renders the 'edit' template" do
|
||||
bike = Bike.create! valid_attributes
|
||||
Bike.any_instance.stub(:save).and_return(false)
|
||||
put :update, {:id => bike.to_param, :bike => { }}, valid_session
|
||||
response.should render_template("edit")
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
describe "DELETE destroy" do
|
||||
it "destroys the requested bike" do
|
||||
bike = Bike.create! valid_attributes
|
||||
expect {
|
||||
delete :destroy, {:id => bike.to_param}, valid_session
|
||||
}.to change(Bike, :count).by(-1)
|
||||
end
|
||||
|
||||
it "redirects to the bikes list" do
|
||||
bike = Bike.create! valid_attributes
|
||||
delete :destroy, {:id => bike.to_param}, valid_session
|
||||
response.should redirect_to(bikes_url)
|
||||
describe "POST #create" do
|
||||
it "creates a new bike with valid credentials" do
|
||||
expect{post :create, bike: FactoryGirl.attributes_for(:bike)}.to change(Bike, :count).by(1)
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -1,6 +1,10 @@
|
||||
# Read about factories at https://github.com/thoughtbot/factory_girl
|
||||
|
||||
FactoryGirl.define do
|
||||
factory :bike do
|
||||
log_number "1234"
|
||||
brand "Windsor"
|
||||
model "Clockwork"
|
||||
bike_type "Fixed Gear"
|
||||
color "Black"
|
||||
serial_number "12345678"
|
||||
end
|
||||
end
|
||||
|
@ -1,6 +1,6 @@
|
||||
# Read about factories at https://github.com/thoughtbot/factory_girl
|
||||
|
||||
FactoryGirl.define do
|
||||
factory :user do
|
||||
email "user@example.com"
|
||||
password "password"
|
||||
end
|
||||
end
|
||||
|
@ -1,11 +1 @@
|
||||
require 'spec_helper'
|
||||
|
||||
describe "Bikes" do
|
||||
describe "GET /bikes" do
|
||||
it "works! (now write some real specs)" do
|
||||
# Run the generator again with the --webrat flag if you want to use webrat methods/matchers
|
||||
get bikes_path
|
||||
response.status.should be(200)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
Loading…
x
Reference in New Issue
Block a user