Last active
January 19, 2018 14:06
-
-
Save benjiwheeler/2435d5cde8ca4c467d55 to your computer and use it in GitHub Desktop.
Example of Test::Unit code from Underground rails application, using FactoryGirl to generate test objects
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
require 'test_helper' | |
class GroupsControllerTest < ActionController::TestCase | |
test "ok to create duplicate group through api" do | |
user = create(:user) | |
@request.env["HTTP_AUTHORIZATION"] = user.basic_auth_header("abc1234") | |
post :apicreate, format: :json, nickname: "hannabarbera" | |
assert_response :created | |
assert_not_nil assigns(:group) | |
post :apicreate, format: :json, nickname: "hannabarbera" | |
assert_response :success | |
assert_not_nil assigns(:group) | |
end | |
test "user can auto-join new group" do | |
user = create(:user) | |
@request.env["HTTP_AUTHORIZATION"] = user.basic_auth_header("abc1234") | |
post :apicreate, format: :json, nickname: "hannabarbera", do_join: "true" | |
assert_response :created | |
assert_not_nil assigns(:group) | |
assert user.is_member?(assigns(:group)) | |
end | |
test "new group gets fullname set automatically when not provided explicitly" do | |
user = create(:user) | |
@request.env["HTTP_AUTHORIZATION"] = user.basic_auth_header("abc1234") | |
post :apicreate, format: :json, nickname: "hannabarbera" | |
assert_response :created | |
assert_not_nil assigns(:group) | |
assert assigns(:group).fullname == "Hannabarbera" | |
end | |
test "new group does NOT set fullname automatically when it IS provided explicitly" do | |
user = create(:user) | |
@request.env["HTTP_AUTHORIZATION"] = user.basic_auth_header("abc1234") | |
post :apicreate, format: :json, nickname: "hannabarbera", fullname: "Hanna-Barbera Studios" | |
assert_response :created | |
assert_not_nil assigns(:group) | |
assert_not assigns(:group).fullname == "Hannabarbera" | |
end | |
test "groups enforce min nickname length" do | |
user = create(:user) | |
@request.env["HTTP_AUTHORIZATION"] = user.basic_auth_header("abc1234") | |
post :apicreate, format: :json, nickname: "h", fullname: "Hanna-Barbera Studios" | |
assert_response :error | |
assert Group.find_by(nickname: "h").blank? | |
end | |
test "groups default to private" do | |
user = create(:user) | |
@request.env["HTTP_AUTHORIZATION"] = user.basic_auth_header("abc1234") | |
post :apicreate, format: :json, nickname: "masons", fullname: "Masons" | |
assert_response :created | |
created_group = Group.find_by(nickname: "masons") | |
assert_not_nil created_group | |
assert (created_group.privacy_level == "private") | |
end | |
test "groups can be created public" do | |
user = create(:user) | |
@request.env["HTTP_AUTHORIZATION"] = user.basic_auth_header("abc1234") | |
post :apicreate, format: :json, nickname: "women", fullname: "All Women", privacy_level: "public" | |
assert_response :created | |
created_group = Group.find_by(nickname: "women") | |
assert_not_nil created_group | |
assert (created_group.privacy_level == "public") | |
end | |
test "anon is member of new group" do | |
anonymous = User.anonymous | |
user = create(:user) | |
@request.env["HTTP_AUTHORIZATION"] = user.basic_auth_header("abc1234") | |
post :apicreate, format: :json, nickname: "hannabarbera" | |
assert_response :created | |
assert_not_nil assigns(:group) | |
assert anonymous.is_member?(assigns(:group)) | |
end | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment