From 5553f31f22a0905ee002d52cb8d770ba73a92cf1 Mon Sep 17 00:00:00 2001 From: Courteney Ervin Date: Fri, 6 Mar 2015 18:54:25 -0500 Subject: [PATCH 1/4] Create route that makes a beta_signup for a logged in user --- app/controllers/beta_signups_controller.rb | 10 ++++++++++ config/routes.rb | 1 + 2 files changed, 11 insertions(+) create mode 100644 app/controllers/beta_signups_controller.rb diff --git a/app/controllers/beta_signups_controller.rb b/app/controllers/beta_signups_controller.rb new file mode 100644 index 00000000..ac9ab7f9 --- /dev/null +++ b/app/controllers/beta_signups_controller.rb @@ -0,0 +1,10 @@ +class BetaSignupsController < ApplicationController + def create + bsu = BetaSignup.new + bsu.user = current_user + + respond_to do |format| + format.json { render json: bsu.save.to_json } + end + end +end diff --git a/config/routes.rb b/config/routes.rb index 9b99d3dc..e723ee43 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -21,6 +21,7 @@ resources :projects resources :favorites resources :events + resources :beta_signups, only: [:create] # Static content get '/about', controller: 'home', action: 'about' From 00fa319ee75836e5b15d4c57de2ec7d1999123dc Mon Sep 17 00:00:00 2001 From: Courteney Ervin Date: Fri, 6 Mar 2015 22:59:12 -0500 Subject: [PATCH 2/4] Add specs for BetaSignupsController --- .../beta_signups_controller_spec.rb | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 spec/controllers/beta_signups_controller_spec.rb diff --git a/spec/controllers/beta_signups_controller_spec.rb b/spec/controllers/beta_signups_controller_spec.rb new file mode 100644 index 00000000..0d29dacc --- /dev/null +++ b/spec/controllers/beta_signups_controller_spec.rb @@ -0,0 +1,21 @@ +require "spec_helper" + +describe BetaSignupsController do + include Devise::TestHelpers + + describe "POST #create" do + let(:user) { create(:user) } + before { sign_in user } + + it "is successful" do + post :create, format: :json + expect(response).to be_success + end + + it "saves a new beta_signup to the database" do + expect { + post :create, format: :json + }.to change(BetaSignup, :count).by(1) + end + end +end From b423c7704a07d00e2ffabae77bddda6b9b7f96a8 Mon Sep 17 00:00:00 2001 From: Courteney Ervin Date: Fri, 6 Mar 2015 23:16:01 -0500 Subject: [PATCH 3/4] Adjust syntax according to HoundCI specifications --- spec/controllers/beta_signups_controller_spec.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/spec/controllers/beta_signups_controller_spec.rb b/spec/controllers/beta_signups_controller_spec.rb index 0d29dacc..e1fb52c6 100644 --- a/spec/controllers/beta_signups_controller_spec.rb +++ b/spec/controllers/beta_signups_controller_spec.rb @@ -13,9 +13,9 @@ end it "saves a new beta_signup to the database" do - expect { + expect do post :create, format: :json - }.to change(BetaSignup, :count).by(1) + end.to change(BetaSignup, :count).by(1) end end end From 301cde0f6dbe345b1c25a2fdb060415f2f66eee1 Mon Sep 17 00:00:00 2001 From: Courteney Ervin Date: Tue, 10 Mar 2015 10:46:05 -0400 Subject: [PATCH 4/4] Ensure that beta_signups are never created without a user_id --- ...150310143949_change_beta_signups_user_id_to_be_present.rb | 5 +++++ db/schema.rb | 4 ++-- 2 files changed, 7 insertions(+), 2 deletions(-) create mode 100644 db/migrate/20150310143949_change_beta_signups_user_id_to_be_present.rb diff --git a/db/migrate/20150310143949_change_beta_signups_user_id_to_be_present.rb b/db/migrate/20150310143949_change_beta_signups_user_id_to_be_present.rb new file mode 100644 index 00000000..8af6ee08 --- /dev/null +++ b/db/migrate/20150310143949_change_beta_signups_user_id_to_be_present.rb @@ -0,0 +1,5 @@ +class ChangeBetaSignupsUserIdToBePresent < ActiveRecord::Migration + def change + change_column :beta_signups, :user_id, :integer, null: false + end +end diff --git a/db/schema.rb b/db/schema.rb index 5dad3cdc..3194d244 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -11,7 +11,7 @@ # # It's strongly recommended to check this file into your version control system. -ActiveRecord::Schema.define(:version => 20150227190642) do +ActiveRecord::Schema.define(:version => 20150310143949) do create_table "active_admin_comments", :force => true do |t| t.string "namespace" @@ -28,7 +28,7 @@ add_index "active_admin_comments", ["resource_type", "resource_id"], :name => "index_active_admin_comments_on_resource_type_and_resource_id" create_table "beta_signups", :force => true do |t| - t.integer "user_id" + t.integer "user_id", :null => false t.datetime "created_at", :null => false t.datetime "updated_at", :null => false end