|
- require 'rails_helper'
-
- RSpec.describe 'Wiki conflict handling', type: :request do
- let!(:user) { create_member_user! }
-
- def auth_headers user
- { 'X-Transfer-Code' => user.inheritance_code }
- end
-
- it 'returns 409 when base_revision_id is stale' do
- page =
- Wiki::Commit.create_content!(
- tag_name: TagName.create!(name: 'wiki_conflict_request'),
- body: 'first',
- created_by_user: user,
- message: 'init')
-
- stale_id = page.current_revision.id
-
- Wiki::Commit.content!(
- page:,
- body: 'second',
- created_user: user,
- message: 'other edit',
- base_revision_id: stale_id)
-
- put "/wiki/#{ page.id }",
- params: {
- title: 'wiki_conflict_request',
- body: 'third',
- message: 'stale',
- base_revision_id: stale_id,
- },
- headers: auth_headers(user)
-
- expect(response).to have_http_status(:conflict)
-
- page.reload
- expect(page.body).to eq('second')
- expect(page.current_revision.message).to eq('other edit')
- end
- end
|