require 'rails_helper' RSpec.describe 'Wiki conflict handling', type: :request do include WikiRecords 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 = seed_description( tag_name: create(:tag, primary_name: 'wiki_conflict_request').tag_name('ja'), body: 'first', created_by_user: user, message: 'init') stale_id = current_description_version(page).id TagDescriptionOperation.update!( Locale.nipponese, tag: page.tag, body: 'second', updated_by_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(current_description_version(page)).to have_attributes(body: 'second', version_no: 2) end end