1
0
Fork 0

Add action MembershipApplicationsController#create

This commit is contained in:
Alex Kotov 2018-11-28 18:43:55 +05:00
parent cb49e91d83
commit 3e3db7cdb2
No known key found for this signature in database
GPG key ID: 4E831250F47DE154
2 changed files with 58 additions and 0 deletions

View file

@ -1,8 +1,36 @@
# frozen_string_literal: true
class MembershipApplicationsController < ApplicationController
CREATE_ATTRIBUTES = %i[
first_name
last_name
middle_name
date_of_birth
occupation
email
phone_number
telegram_username
organization_membership
comment
].freeze
# GET /membership_applications/new
def new
@membership_application = MembershipApplication.new
end
# POST /membership_applications
def create
@membership_application = MembershipApplication.new create_params
return render :new unless @membership_application.save
redirect_to root_url
end
private
def create_params
params.require(:membership_application).permit(CREATE_ATTRIBUTES)
end
end

View file

@ -0,0 +1,30 @@
# frozen_string_literal: true
require 'rails_helper'
RSpec.describe 'POST /membership_applications' do
let :membership_application_attributes do
attributes_for :membership_application
end
def make_request
post '/membership_applications',
params: { membership_application: membership_application_attributes }
end
specify do
expect { make_request }.to \
change(MembershipApplication, :count).from(0).to(1)
end
context 'after request' do
before do
make_request
end
specify do
expect(MembershipApplication.last).to \
have_attributes membership_application_attributes
end
end
end