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' 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 diff --git a/spec/controllers/beta_signups_controller_spec.rb b/spec/controllers/beta_signups_controller_spec.rb new file mode 100644 index 00000000..e1fb52c6 --- /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 do + post :create, format: :json + end.to change(BetaSignup, :count).by(1) + end + end +end