#317 #317 #317 #317 #317 #317 Co-authored-by: miteruzo <miteruzo@naver.com> Reviewed-on: #333
This commit was merged in pull request #333.
This commit is contained in:
@@ -0,0 +1,62 @@
|
||||
require 'rails_helper'
|
||||
|
||||
RSpec.describe 'Wiki title collision', type: :request do
|
||||
let!(:user) { create_member_user! }
|
||||
|
||||
def auth_headers user
|
||||
{ 'X-Transfer-Code' => user.inheritance_code }
|
||||
end
|
||||
|
||||
def create_wiki_page title:, body:
|
||||
Wiki::Commit.create_content!(
|
||||
tag_name: TagName.create!(name: title),
|
||||
body:,
|
||||
created_by_user: user,
|
||||
message: 'init')
|
||||
end
|
||||
|
||||
it 'returns 422 when renaming wiki title to existing title' do
|
||||
source = create_wiki_page(title: 'wiki_collision_source', body: 'source body')
|
||||
create_wiki_page(title: 'wiki_collision_target', body: 'target body')
|
||||
|
||||
source_revision_count = source.wiki_revisions.count
|
||||
source_version_count = source.wiki_versions.count
|
||||
old_title = source.title
|
||||
old_body = source.body
|
||||
|
||||
put "/wiki/#{ source.id }",
|
||||
params: {
|
||||
title: 'wiki_collision_target',
|
||||
body: 'new body',
|
||||
message: 'rename collision',
|
||||
base_revision_id: source.current_revision.id,
|
||||
},
|
||||
headers: auth_headers(user)
|
||||
|
||||
expect(response).to have_http_status(:unprocessable_entity)
|
||||
|
||||
source.reload
|
||||
|
||||
expect(source.title).to eq(old_title)
|
||||
expect(source.body).to eq(old_body)
|
||||
expect(source.wiki_revisions.count).to eq(source_revision_count)
|
||||
expect(source.wiki_versions.count).to eq(source_version_count)
|
||||
end
|
||||
|
||||
it 'returns 422 when creating wiki with existing title' do
|
||||
create_wiki_page(title: 'wiki_collision_create', body: 'already exists')
|
||||
|
||||
expect {
|
||||
post '/wiki',
|
||||
params: {
|
||||
title: 'wiki_collision_create',
|
||||
body: 'new body',
|
||||
message: 'duplicate create',
|
||||
},
|
||||
headers: auth_headers(user)
|
||||
}
|
||||
.not_to change(WikiPage, :count)
|
||||
|
||||
expect(response).to have_http_status(:unprocessable_entity)
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user