Add feature specs for Project and Group description rendering
This commit is contained in:
parent
023dd2907b
commit
442a0663da
|
@ -0,0 +1,36 @@
|
|||
require 'spec_helper'
|
||||
|
||||
feature 'Group' do
|
||||
describe 'description' do
|
||||
let(:group) { create(:group) }
|
||||
let(:path) { group_path(group) }
|
||||
|
||||
before do
|
||||
login_as(:admin)
|
||||
end
|
||||
|
||||
it 'parses Markdown' do
|
||||
group.update_attribute(:description, 'This is **my** group')
|
||||
visit path
|
||||
expect(page).to have_css('.description > p > strong')
|
||||
end
|
||||
|
||||
it 'passes through html-pipeline' do
|
||||
group.update_attribute(:description, 'This group is the :poop:')
|
||||
visit path
|
||||
expect(page).to have_css('.description > p > img')
|
||||
end
|
||||
|
||||
it 'sanitizes unwanted tags' do
|
||||
group.update_attribute(:description, '# Group Description')
|
||||
visit path
|
||||
expect(page).not_to have_css('.description h1')
|
||||
end
|
||||
|
||||
it 'permits `rel` attribute on links' do
|
||||
group.update_attribute(:description, 'https://google.com/')
|
||||
visit path
|
||||
expect(page).to have_css('.description a[rel]')
|
||||
end
|
||||
end
|
||||
end
|
|
@ -18,11 +18,13 @@ require 'erb'
|
|||
# -> `gfm_with_options` helper
|
||||
# -> HTML::Pipeline
|
||||
# -> Sanitize
|
||||
# -> RelativeLink
|
||||
# -> Emoji
|
||||
# -> Table of Contents
|
||||
# -> Autolinks
|
||||
# -> Rinku (http, https, ftp)
|
||||
# -> Other schemes
|
||||
# -> ExternalLink
|
||||
# -> References
|
||||
# -> TaskList
|
||||
# -> `html_safe`
|
||||
|
|
|
@ -1,24 +1,56 @@
|
|||
require 'spec_helper'
|
||||
|
||||
describe "Projects", feature: true, js: true do
|
||||
before { login_as :user }
|
||||
feature 'Project' do
|
||||
describe 'description' do
|
||||
let(:project) { create(:project) }
|
||||
let(:path) { namespace_project_path(project.namespace, project) }
|
||||
|
||||
describe "DELETE /projects/:id" do
|
||||
before do
|
||||
@project = create(:project, namespace: @user.namespace)
|
||||
@project.team << [@user, :master]
|
||||
visit edit_namespace_project_path(@project.namespace, @project)
|
||||
login_as(:admin)
|
||||
end
|
||||
|
||||
it "should remove project" do
|
||||
it 'parses Markdown' do
|
||||
project.update_attribute(:description, 'This is **my** project')
|
||||
visit path
|
||||
expect(page).to have_css('.project-home-desc > p > strong')
|
||||
end
|
||||
|
||||
it 'passes through html-pipeline' do
|
||||
project.update_attribute(:description, 'This project is the :poop:')
|
||||
visit path
|
||||
expect(page).to have_css('.project-home-desc > p > img')
|
||||
end
|
||||
|
||||
it 'sanitizes unwanted tags' do
|
||||
project.update_attribute(:description, '# Project Description')
|
||||
visit path
|
||||
expect(page).not_to have_css('.project-home-desc h1')
|
||||
end
|
||||
|
||||
it 'permits `rel` attribute on links' do
|
||||
project.update_attribute(:description, 'https://google.com/')
|
||||
visit path
|
||||
expect(page).to have_css('.project-home-desc a[rel]')
|
||||
end
|
||||
end
|
||||
|
||||
describe 'removal', js: true do
|
||||
let(:user) { create(:user) }
|
||||
let(:project) { create(:project, namespace: user.namespace) }
|
||||
|
||||
before do
|
||||
login_with(user)
|
||||
project.team << [user, :master]
|
||||
visit edit_namespace_project_path(project.namespace, project)
|
||||
end
|
||||
|
||||
it 'should remove project' do
|
||||
expect { remove_project }.to change {Project.count}.by(-1)
|
||||
end
|
||||
|
||||
it 'should delete the project from disk' do
|
||||
expect(GitlabShellWorker).to(
|
||||
receive(:perform_async).with(:remove_repository,
|
||||
/#{@project.path_with_namespace}/)
|
||||
).twice
|
||||
expect(GitlabShellWorker).to receive(:perform_async).
|
||||
with(:remove_repository, /#{project.path_with_namespace}/).twice
|
||||
|
||||
remove_project
|
||||
end
|
||||
|
@ -26,7 +58,7 @@ describe "Projects", feature: true, js: true do
|
|||
|
||||
def remove_project
|
||||
click_link "Remove project"
|
||||
fill_in 'confirm_name_input', with: @project.path
|
||||
fill_in 'confirm_name_input', with: project.path
|
||||
click_button 'Confirm'
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in New Issue