Skip to content

Instantly share code, notes, and snippets.

@zr2d2
Created March 18, 2012 23:43
Show Gist options
  • Select an option

  • Save zr2d2/2085654 to your computer and use it in GitHub Desktop.

Select an option

Save zr2d2/2085654 to your computer and use it in GitHub Desktop.
pending membership test
require 'test_helper'
class MembershipsControllerTest < ActionController::TestCase
include Devise::TestHelpers
def setup
request.env["devise.mapping"] = Devise.mappings[:user]
end
test "should create pending membership" do
assert_difference('Membership.count', 1) do
post :create, {:membership => {:user_id => users(:katie).id}, :group_id => groups(:rpitv).id}
end
actual = assigns(:membership)
group = assigns(:group)
assert_equal(Membership::LEVELS[:pending], actual.level)
assert_redirected_to group_path(group)
end
end
@zr2d2
Copy link
Author

zr2d2 commented Mar 19, 2012

diff --git a/app/controllers/memberships_controller.rb b/app/controllers/memberships_controller.rb
index d4d31f3..ee352cd 100644
--- a/app/controllers/memberships_controller.rb
+++ b/app/controllers/memberships_controller.rb
@@ -3,7 +3,7 @@ class MembershipsController < ApplicationController

POST /groups/:group_id/memberships.xml

def create
@group = Group.find(params[:group_id])

  • @membership = Membership.new({:user_id => params[:membership][:user_id], :group_id => params[:group_id]})
  • @membership = Membership.new({:user_id => params[:membership][:user_id], :group_id => params[:group_id], :level => Membership::LEVELS[:pending]})

respond_to do |format|
if @membership.save

diff --git a/db/schema.rb b/db/schema.rb
index 2b13685..9c9c5c2 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 => 20120305021107) do
+ActiveRecord::Schema.define(:version => 20120318110613) do

create_table "contents", :force => true do |t|
t.string "name"
@@ -73,7 +73,7 @@ ActiveRecord::Schema.define(:version => 20120305021107) do
t.integer "group_id"
t.datetime "created_at"
t.datetime "updated_at"

  • t.integer "level", :default => 0
  • t.integer "level", :default => 1
    t.boolean "moderation_flag"
    end

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment