Skip to content
Snippets Groups Projects
Commit 0f6ebcb6 authored by gitlabhq's avatar gitlabhq
Browse files

v1.0

parent 93efff94
No related branches found
No related tags found
No related merge requests found
Showing
with 1177 additions and 0 deletions
require 'spec_helper'
describe "Admin::Projects" do
before do
@project = Factory :project,
:name => "LeGiT",
:code => "LGT"
login_as :admin
end
describe "GET /admin/projects" do
before do
visit admin_projects_path
end
it "should be ok" do
current_path.should == admin_projects_path
end
it "should have projects list" do
page.should have_content(@project.code)
page.should have_content(@project.name)
end
end
describe "GET /admin/projects/:id" do
before do
visit admin_projects_path
click_link "Show"
end
it "should have project info" do
page.should have_content(@project.code)
page.should have_content(@project.name)
end
end
describe "GET /admin/projects/:id/edit" do
before do
visit admin_projects_path
click_link "edit_project_#{@project.id}"
end
it "should have project edit page" do
page.should have_content("Name")
page.should have_content("Code")
end
describe "Update project" do
before do
fill_in "project_name", :with => "Big Bang"
fill_in "project_code", :with => "BB1"
click_button "Save"
@project.reload
end
it "should show page with new data" do
page.should have_content("BB1")
page.should have_content("Big Bang")
end
it "should change project entry" do
@project.name.should == "Big Bang"
@project.code.should == "BB1"
end
end
end
describe "GET /admin/projects/new" do
before do
visit admin_projects_path
click_link "New Project"
end
it "should be correct path" do
current_path.should == new_admin_project_path
end
it "should have labels for new project" do
page.should have_content("Name")
page.should have_content("Path")
page.should have_content("Description")
end
end
describe "POST /admin/projects" do
before do
visit new_admin_project_path
fill_in 'Name', :with => 'NewProject'
fill_in 'Code', :with => 'NPR'
fill_in 'Path', :with => '/tmp/legit_test/legit'
expect { click_button "Save" }.to change { Project.count }.by(1)
@project = Project.last
end
it "should be correct path" do
current_path.should == admin_project_path(@project)
end
it "should show project" do
page.should have_content(@project.name)
page.should have_content(@project.path)
page.should have_content(@project.description)
end
end
end
require 'spec_helper'
describe "Admin::Users" do
before { login_as :admin }
describe "GET /admin/users" do
before do
visit admin_users_path
end
it "should be ok" do
current_path.should == admin_users_path
end
it "should have users list" do
page.should have_content(@user.email)
page.should have_content(@user.name)
end
end
describe "GET /admin/users/new" do
before do
@password = "123ABC"
visit new_admin_user_path
fill_in "user_name", :with => "Big Bang"
fill_in "user_email", :with => "bigbang@mail.com"
fill_in "user_password", :with => @password
fill_in "user_password_confirmation", :with => @password
end
it "should create new user" do
expect { click_button "Save" }.to change {User.count}.by(1)
end
it "should create user with valid data" do
click_button "Save"
user = User.last
user.name.should == "Big Bang"
user.email.should == "bigbang@mail.com"
end
it "should call send mail" do
Notify.should_receive(:new_user_email).and_return(stub(:deliver => true))
click_button "Save"
end
it "should send valid email to user with email & password" do
click_button "Save"
user = User.last
email = ActionMailer::Base.deliveries.last
email.subject.should have_content("Account was created")
email.body.should have_content(user.email)
email.body.should have_content(@password)
end
end
describe "GET /admin/users/:id" do
before do
visit admin_users_path
click_link "Show"
end
it "should have user info" do
page.should have_content(@user.email)
page.should have_content(@user.name)
page.should have_content(@user.is_admin?)
end
end
describe "GET /admin/users/:id/edit" do
before do
@simple_user = Factory :user
visit admin_users_path
click_link "edit_user_#{@simple_user.id}"
end
it "should have user edit page" do
page.should have_content("Name")
page.should have_content("Password")
end
describe "Update user" do
before do
fill_in "user_name", :with => "Big Bang"
fill_in "user_email", :with => "bigbang@mail.com"
check "user_admin"
click_button "Save"
end
it "should show page with new data" do
page.should have_content("bigbang@mail.com")
page.should have_content("Big Bang")
end
it "should change user entry" do
@simple_user.reload
@simple_user.name.should == "Big Bang"
@simple_user.is_admin?.should be_true
end
end
end
end
require 'spec_helper'
describe "Admin::Projects" do
describe "GET /admin/projects" do
it { admin_projects_path.should be_allowed_for :admin }
it { admin_projects_path.should be_denied_for :user }
it { admin_projects_path.should be_denied_for :visitor }
end
describe "GET /admin/users" do
it { admin_users_path.should be_allowed_for :admin }
it { admin_users_path.should be_denied_for :user }
it { admin_users_path.should be_denied_for :visitor }
end
describe "GET /admin/team_members" do
it { admin_team_members_path.should be_allowed_for :admin }
it { admin_team_members_path.should be_denied_for :user }
it { admin_team_members_path.should be_denied_for :visitor }
end
describe "GET /admin/emails" do
it { admin_emails_path.should be_allowed_for :admin }
it { admin_emails_path.should be_denied_for :user }
it { admin_emails_path.should be_denied_for :visitor }
end
end
require 'spec_helper'
describe "Issues" do
let(:project) { Factory :project }
let!(:commit) { project.repo.commits.first }
before do
login_as :user
project.add_access(@user, :read, :write)
end
describe "add new note", :js => true do
before do
visit project_commit_path(project, commit)
click_link "Comments" # notes tab
fill_in "note_note", :with => "I commented this commit"
click_button "Add note"
end
it "should conatin new note" do
page.should have_content("I commented this commit")
end
end
end
require 'spec_helper'
describe "Commits" do
let(:project) { Factory :project }
let!(:commit) { project.repo.commits.first }
before do
login_as :user
project.add_access(@user, :read)
end
describe "GET /commits" do
before do
visit project_commits_path(project)
end
it "should have valid path" do
current_path.should == project_commits_path(project)
end
it "should have project name" do
page.should have_content(project.name)
end
it "should list commits" do
page.should have_content(commit.author)
page.should have_content(commit.message)
end
end
describe "GET /commits/:id" do
before do
visit project_commit_path(project, commit)
end
it "should have valid path" do
current_path.should == project_commit_path(project, commit)
end
end
end
require 'spec_helper'
describe "Issues" do
let(:project) { Factory :project }
before do
login_as :user
project.add_access(@user, :read, :write)
@issue = Factory :issue,
:author => @user,
:assignee => @user,
:project => project
end
describe "add new note", :js => true do
before do
visit project_issue_path(project, @issue)
fill_in "note_note", :with => "I commented this issue"
click_button "Add note"
end
it "should conatin new note" do
page.should have_content("I commented this issue")
end
end
end
require 'spec_helper'
describe "Issues" do
let(:project) { Factory :project }
before do
login_as :user
project.add_access(@user, :read, :write)
end
describe "GET /issues" do
before do
@issue = Factory :issue,
:author => @user,
:assignee => @user,
:project => project
visit project_issues_path(project)
end
subject { page }
it { should have_content(@issue.title) }
it { should have_content(@issue.project.name) }
it { should have_content(@issue.assignee.name) }
describe "Destroy" do
before do
# admin access to remove issue
@user.users_projects.destroy_all
project.add_access(@user, :read, :write, :admin)
visit project_issues_path(project)
end
it "should remove entry" do
expect {
click_link "destroy_issue_#{@issue.id}"
}.to change { Issue.count }.by(-1)
end
end
describe "statuses", :js => true do
before do
@closed_issue = Factory :issue,
:author => @user,
:assignee => @user,
:project => project,
:closed => true
end
it "should show only open" do
should have_content(@issue.title)
should have_no_content(@closed_issue.title)
end
it "should show only closed" do
choose "closed_issues"
should have_no_content(@issue.title)
should have_content(@closed_issue.title)
end
it "should show all" do
choose "all_issues"
should have_content(@issue.title)
should have_content(@closed_issue.title)
end
end
end
describe "New issue", :js => true do
before do
visit project_issues_path(project)
click_link "New Issue"
end
it "should open new issue popup" do
page.should have_content("Add new issue")
end
describe "fill in" do
before do
fill_in "issue_title", :with => "bug 345"
fill_in "issue_content", :with => "app bug 345"
click_link "Select user"
click_link @user.name
end
it { expect { click_button "Save" }.to change {Issue.count}.by(1) }
it "should add new issue to table" do
click_button "Save"
page.should_not have_content("Add new issue")
page.should have_content @user.name
page.should have_content "bug 345"
page.should have_content project.name
end
it "should call send mail" do
Notify.should_receive(:new_issue_email).and_return(stub(:deliver => true))
click_button "Save"
end
it "should send valid email to user with email & password" do
click_button "Save"
issue = Issue.last
email = ActionMailer::Base.deliveries.last
email.subject.should have_content("New Issue was created")
email.body.should have_content(issue.title)
email.body.should have_content(issue.assignee.name)
end
end
end
describe "Edit issue", :js => true do
before do
@issue = Factory :issue,
:author => @user,
:assignee => @user,
:project => project
visit project_issues_path(project)
click_link "Edit"
end
it "should open new issue popup" do
page.should have_content("Issue ##{@issue.id}")
end
describe "fill in" do
before do
fill_in "issue_title", :with => "bug 345"
fill_in "issue_content", :with => "app bug 345"
end
it { expect { click_button "Save" }.to_not change {Issue.count} }
it "should update issue fields" do
click_button "Save"
page.should_not have_content("Issue ##{@issue.id}")
page.should have_content @user.name
page.should have_content "bug 345"
page.should have_content project.name
end
end
end
end
require 'spec_helper'
describe "Issues" do
before do
login_as :user
end
describe "GET /keys" do
before do
@key = Factory :key, :user => @user
visit keys_path
end
subject { page }
it { should have_content(@key.title) }
describe "Destroy" do
it "should remove entry" do
expect {
click_link "destroy_key_#{@key.id}"
}.to change { @user.keys.count }.by(-1)
end
end
end
describe "New key", :js => true do
before do
visit keys_path
click_link "Add new"
end
it "should open new key popup" do
page.should have_content("Add new public key")
end
describe "fill in" do
before do
fill_in "key_title", :with => "laptop"
fill_in "key_key", :with => "publickey234="
end
it { expect { click_button "Save" }.to change {Key.count}.by(1) }
it "should add new key to table" do
click_button "Save"
page.should_not have_content("Add new public key")
page.should have_content "laptop"
page.should have_content "publickey234="
end
end
end
end
require 'spec_helper'
describe "Profile" do
before do
login_as :user
end
describe "Show profile" do
before do
visit profile_path
end
it { page.should have_content(@user.name) }
it { page.should have_content(@user.email) }
end
describe "Password update" do
before do
visit profile_password_path
end
it { page.should have_content("Password") }
it { page.should have_content("Password confirmation") }
describe "change password" do
before do
@old_pwd = @user.encrypted_password
fill_in "user_password", :with => "777777"
fill_in "user_password_confirmation", :with => "777777"
click_button "Save"
@user.reload
end
it "should redirect to signin page" do
current_path.should == new_user_session_path
end
it "should change password" do
@user.encrypted_password.should_not == @old_pwd
end
describe "login with new password" do
before do
fill_in "user_email", :with => @user.email
fill_in "user_password", :with => "777777"
click_button "Sign in"
end
it "should login user" do
current_path.should == root_path
end
end
end
end
end
require 'spec_helper'
describe "Projects" do
describe "GET /projects" do
it { projects_path.should be_allowed_for :admin }
it { projects_path.should be_allowed_for :user }
it { projects_path.should be_denied_for :visitor }
end
describe "GET /projects/new" do
it { projects_path.should be_allowed_for :admin }
it { projects_path.should be_allowed_for :user }
it { projects_path.should be_denied_for :visitor }
end
describe "Project" do
before do
@project = Factory :project
@u1 = Factory :user
@u2 = Factory :user
@u3 = Factory :user
# full access
@project.users_projects.create(:user => @u1, :read => true, :write => true, :admin => true)
# no access
@project.users_projects.create(:user => @u2, :read => false, :write => false, :admin => false)
# readonly
@project.users_projects.create(:user => @u3, :read => true, :write => false, :admin => false)
end
describe "GET /project_code" do
it { project_path(@project).should be_allowed_for @u1 }
it { project_path(@project).should be_allowed_for @u3 }
it { project_path(@project).should be_denied_for :admin }
it { project_path(@project).should be_denied_for @u2 }
it { project_path(@project).should be_denied_for :user }
it { project_path(@project).should be_denied_for :visitor }
end
describe "GET /project_code/tree" do
it { tree_project_path(@project).should be_allowed_for @u1 }
it { tree_project_path(@project).should be_allowed_for @u3 }
it { tree_project_path(@project).should be_denied_for :admin }
it { tree_project_path(@project).should be_denied_for @u2 }
it { tree_project_path(@project).should be_denied_for :user }
it { tree_project_path(@project).should be_denied_for :visitor }
end
describe "GET /project_code/commits" do
it { project_commits_path(@project).should be_allowed_for @u1 }
it { project_commits_path(@project).should be_allowed_for @u3 }
it { project_commits_path(@project).should be_denied_for :admin }
it { project_commits_path(@project).should be_denied_for @u2 }
it { project_commits_path(@project).should be_denied_for :user }
it { project_commits_path(@project).should be_denied_for :visitor }
end
describe "GET /project_code/commit" do
it { project_commit_path(@project, @project.commit).should be_allowed_for @u1 }
it { project_commit_path(@project, @project.commit).should be_allowed_for @u3 }
it { project_commit_path(@project, @project.commit).should be_denied_for :admin }
it { project_commit_path(@project, @project.commit).should be_denied_for @u2 }
it { project_commit_path(@project, @project.commit).should be_denied_for :user }
it { project_commit_path(@project, @project.commit).should be_denied_for :visitor }
end
describe "GET /project_code/team" do
it { team_project_path(@project).should be_allowed_for @u1 }
it { team_project_path(@project).should be_allowed_for @u3 }
it { team_project_path(@project).should be_denied_for :admin }
it { team_project_path(@project).should be_denied_for @u2 }
it { team_project_path(@project).should be_denied_for :user }
it { team_project_path(@project).should be_denied_for :visitor }
end
describe "GET /project_code/wall" do
it { wall_project_path(@project).should be_allowed_for @u1 }
it { wall_project_path(@project).should be_allowed_for @u3 }
it { wall_project_path(@project).should be_denied_for :admin }
it { wall_project_path(@project).should be_denied_for @u2 }
it { wall_project_path(@project).should be_denied_for :user }
it { wall_project_path(@project).should be_denied_for :visitor }
end
describe "GET /project_code/blob" do
it { blob_project_path(@project).should be_allowed_for @u1 }
it { blob_project_path(@project).should be_allowed_for @u3 }
it { blob_project_path(@project).should be_denied_for :admin }
it { blob_project_path(@project).should be_denied_for @u2 }
it { blob_project_path(@project).should be_denied_for :user }
it { blob_project_path(@project).should be_denied_for :visitor }
end
describe "GET /project_code/edit" do
it { edit_project_path(@project).should be_allowed_for @u1 }
it { edit_project_path(@project).should be_denied_for @u3 }
it { edit_project_path(@project).should be_denied_for :admin }
it { edit_project_path(@project).should be_denied_for @u2 }
it { edit_project_path(@project).should be_denied_for :user }
it { edit_project_path(@project).should be_denied_for :visitor }
end
describe "GET /project_code/issues" do
it { project_issues_path(@project).should be_allowed_for @u1 }
it { project_issues_path(@project).should be_allowed_for @u3 }
it { project_issues_path(@project).should be_denied_for :admin }
it { project_issues_path(@project).should be_denied_for @u2 }
it { project_issues_path(@project).should be_denied_for :user }
it { project_issues_path(@project).should be_denied_for :visitor }
end
end
end
require 'spec_helper'
describe "Projects" do
before { login_as :user }
describe "GET /projects" do
before do
visit projects_path
end
it "should be on projects page" do
current_path.should == projects_path
end
it "should have link to new project" do
page.should have_content("New Project")
end
end
describe "GET /projects/new" do
before do
visit projects_path
click_link "New Project"
end
it "should be correct path" do
current_path.should == new_project_path
end
it "should have labels for new project" do
page.should have_content("Name")
page.should have_content("Path")
page.should have_content("Description")
end
end
describe "POST /projects" do
before do
visit new_project_path
fill_in 'Name', :with => 'NewProject'
fill_in 'Code', :with => 'NPR'
fill_in 'Path', :with => '/tmp/legit_test/legit'
expect { click_button "Create Project" }.to change { Project.count }.by(1)
@project = Project.last
end
it "should be correct path" do
current_path.should == project_path(@project)
end
it "should show project" do
page.should have_content(@project.name)
page.should have_content(@project.path)
page.should have_content(@project.description)
end
it "should init repo instructions" do
page.should have_content("git remote")
page.should have_content(@project.url_to_repo)
end
end
describe "GET /projects/show" do
before do
@project = Factory :project
@project.add_access(@user, :read)
visit project_path(@project)
end
it "should be correct path" do
current_path.should == project_path(@project)
end
it_behaves_like :tree_view
end
describe "GET /projects/team" do
before do
@project = Factory :project
@project.add_access(@user, :read)
visit team_project_path(@project,
:path => ValidCommit::BLOB_FILE_PATH,
:commit_id => ValidCommit::ID)
end
it "should be correct path" do
current_path.should == team_project_path(@project)
end
it "should have as as team member" do
page.should have_content(@user.name)
end
end
describe "GET /projects/:id/edit" do
before do
@project = Factory :project
@project.add_access(@user, :admin, :read)
visit edit_project_path(@project)
end
it "should be correct path" do
current_path.should == edit_project_path(@project)
end
it "should have labels for new project" do
page.should have_content("Name")
page.should have_content("Path")
page.should have_content("Description")
end
end
describe "PUT /projects/:id" do
before do
@project = Factory :project
@project.add_access(@user, :admin, :read)
visit edit_project_path(@project)
fill_in 'Name', :with => 'Awesome'
fill_in 'Path', :with => 'legit'
fill_in 'Description', :with => 'Awesome project'
click_button "Update Project"
@project = @project.reload
end
it "should be correct path" do
current_path.should == project_path(@project)
end
it "should show project" do
page.should have_content("Awesome")
end
it_behaves_like :tree_view
end
#describe "DELETE /projects/:id", :js => true do
#before do
#@project = Factory :project
#@project.add_access(@user, :read, :admin)
#visit projects_path
#end
#it "should be correct path" do
#expect { click_link "Destroy" }.to change {Project.count}.by(1)
#end
#end
end
require 'spec_helper'
describe "Projects" do
before { login_as :user }
describe "GET /projects/tree" do
describe "head" do
before do
@project = Factory :project
@project.add_access(@user, :read)
visit tree_project_path(@project)
end
it "should be correct path" do
current_path.should == tree_project_path(@project)
end
it_behaves_like :tree_view
end
describe ValidCommit::ID do
before do
@project = Factory :project
@project.add_access(@user, :read)
visit tree_project_path(@project, :commit_id => ValidCommit::ID)
end
it "should be correct path" do
current_path.should == tree_project_path(@project)
end
it_behaves_like :tree_view
it_behaves_like :project_side_pane
end
describe "branch passed" do
before do
@project = Factory :project
@project.add_access(@user, :read)
visit tree_project_path(@project, :branch => "master")
end
it "should be correct path" do
current_path.should == tree_project_path(@project)
end
it_behaves_like :tree_view
it_behaves_like :project_side_pane
end
# TREE FILE PREVIEW
describe "file preview" do
before do
@project = Factory :project
@project.add_access(@user, :read)
visit tree_project_path(@project, :path => ".rvmrc")
end
it "should be correct path" do
current_path.should == tree_project_path(@project)
end
it "should contain file view" do
page.should have_content("rvm use 1.9.2@legit")
end
end
end
# RAW FILE
describe "GET /projects/blob" do
before do
@project = Factory :project
@project.add_access(@user, :read)
visit blob_project_path(@project,
:path => ValidCommit::BLOB_FILE_PATH,
:commit_id => ValidCommit::ID)
end
it "should be correct path" do
current_path.should == blob_project_path(@project)
end
it "raw file response" do
page.source.should == ValidCommit::BLOB_FILE
end
end
end
require 'spec_helper'
describe "Projects", "Wall" do
let(:project) { Factory :project }
before do
login_as :user
project.add_access(@user, :read, :write)
end
describe "View notes on wall" do
before do
Factory :note, :project => project, :note => "Project specs", :author => @user
visit wall_project_path(project)
end
it { page.should have_content("Project specs") }
it { page.should have_content(@user.name) }
it { page.should have_content("less than a minute ago") }
end
describe "add new note", :js => true do
before do
visit wall_project_path(project)
fill_in "note_note", :with => "my post on wall"
click_button "Add note"
end
it "should conatin new note" do
page.should have_content("my post on wall")
end
end
end
require 'spec_helper'
describe "TeamMembers" do
before do
login_as :user
@project = Factory :project
@project.add_access(@user, :read, :admin)
end
describe "New Team member", :js => true do
before do
@user_1 = Factory :user
visit team_project_path(@project)
click_link "Add new"
end
it "should open new team member popup" do
page.should have_content("Add new member to project")
end
describe "fill in" do
before do
check "team_member_read"
click_link "Select user"
click_link @user_1.name
#select @user_1.name, :from => "team_member_user_id"
end
it { expect { click_button "Save" }.to change {UsersProject.count}.by(1) }
it "should add new member to table" do
click_button "Save"
page.should_not have_content("Add new member")
page.should have_content @user_1.name
end
end
end
describe "Cancel membership" do
it "should cancel membership" do
visit team_project_path(@project)
expect { click_link "Cancel" }.to change { UsersProject.count }.by(-1)
end
end
end
require 'spec_helper'
describe "Top Panel", :js => true do
before { login_as :user }
describe "Search autocomplete" do
before do
visit projects_path
fill_in "search", :with => "Ke"
sleep(2)
find(:xpath, "//ul[contains(@class,'ui-autocomplete')]/li/a[.=\"Keys\"]").click
end
it "should be on projects page" do
current_path.should == keys_path
end
end
describe "with project" do
before do
@project = Factory :project
@project.add_access(@user, :read)
visit project_path(@project)
fill_in "search", :with => "Commi"
sleep(2)
find(:xpath, "//ul[contains(@class,'ui-autocomplete')]/li/a[.=\"#{@project.code} / Commits\"]").click
end
it "should be on projects page" do
current_path.should == project_commits_path(@project)
end
end
end
require 'spec_helper'
describe "Users Security" do
describe "Project" do
before do
@u1 = Factory :user
end
describe "GET /login" do
it { new_user_session_path.should be_denied_for @u1 }
it { new_user_session_path.should be_denied_for :admin }
it { new_user_session_path.should be_denied_for :user }
it { new_user_session_path.should be_allowed_for :visitor }
end
describe "GET /keys" do
it { keys_path.should be_allowed_for @u1 }
it { keys_path.should be_allowed_for :admin }
it { keys_path.should be_allowed_for :user }
it { keys_path.should be_denied_for :visitor }
end
describe "GET /profile" do
it { profile_path.should be_allowed_for @u1 }
it { profile_path.should be_allowed_for :admin }
it { profile_path.should be_allowed_for :user }
it { profile_path.should be_denied_for :visitor }
end
describe "GET /profile/password" do
it { profile_password_path.should be_allowed_for @u1 }
it { profile_password_path.should be_allowed_for :admin }
it { profile_password_path.should be_allowed_for :user }
it { profile_password_path.should be_denied_for :visitor }
end
end
end
File added
require 'simplecov'
SimpleCov.start 'rails'
# This file is copied to spec/ when you run 'rails generate rspec:install'
ENV["RAILS_ENV"] ||= 'test'
require File.expand_path("../../config/environment", __FILE__)
require 'rspec/rails'
require 'capybara/rails'
require 'capybara/rspec'
require 'capybara/dsl'
require 'factories'
require 'monkeypatch'
# Requires supporting ruby files with custom matchers and macros, etc,
# in spec/support/ and its subdirectories.
Dir[Rails.root.join("spec/support/**/*.rb")].each {|f| require f}
RSpec.configure do |config|
# == Mock Framework
#
# If you prefer to use mocha, flexmock or RR, uncomment the appropriate line:
#
# config.mock_with :mocha
# config.mock_with :flexmock
# config.mock_with :rr
config.mock_with :rspec
config.include LoginMacros
# Remove this line if you're not using ActiveRecord or ActiveRecord fixtures
config.fixture_path = "#{::Rails.root}/spec/fixtures"
# If you're not using ActiveRecord, or you'd prefer not to run each of your
# examples within a transaction, remove the following line or assign false
# instead of true.
config.use_transactional_fixtures = false
config.before :each, :type => :integration do
DeviseSessionMock.disable
end
config.before do
if example.metadata[:js]
DatabaseCleaner.strategy = :truncation
else
DatabaseCleaner.strategy = :transaction
end
DatabaseCleaner.start
end
config.after do
DatabaseCleaner.clean
end
end
module JsPatch
def confirm_js_popup
page.evaluate_script("window.alert = function(msg) { return true; }")
page.evaluate_script("window.confirm = function(msg) { return true; }")
end
end
module LoginMacros
def login_as role
@user = User.create(:email => "user#{User.count}@mail.com",
:name => "John Smith",
:password => "123456",
:password_confirmation => "123456")
if role == :admin
@user.admin = true
@user.save!
end
visit new_user_session_path
fill_in "Email", :with => @user.email
fill_in "Password", :with => "123456"
click_button "Sign in"
end
def login_with(user)
visit new_user_session_path
fill_in "Email", :with => user.email
fill_in "Password", :with => "123456"
click_button "Sign in"
end
def logout
click_link "Logout" rescue nil
end
end
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment