ぼざクリタグ広場 https://hub.nizika.monster
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

43 lines
1.1 KiB

  1. require 'rails_helper'
  2. RSpec.describe 'Wiki conflict handling', type: :request do
  3. let!(:user) { create_member_user! }
  4. def auth_headers user
  5. { 'X-Transfer-Code' => user.inheritance_code }
  6. end
  7. it 'returns 409 when base_revision_id is stale' do
  8. page =
  9. Wiki::Commit.create_content!(
  10. tag_name: TagName.create!(name: 'wiki_conflict_request'),
  11. body: 'first',
  12. created_by_user: user,
  13. message: 'init')
  14. stale_id = page.current_revision.id
  15. Wiki::Commit.content!(
  16. page:,
  17. body: 'second',
  18. created_user: user,
  19. message: 'other edit',
  20. base_revision_id: stale_id)
  21. put "/wiki/#{ page.id }",
  22. params: {
  23. title: 'wiki_conflict_request',
  24. body: 'third',
  25. message: 'stale',
  26. base_revision_id: stale_id,
  27. },
  28. headers: auth_headers(user)
  29. expect(response).to have_http_status(:conflict)
  30. page.reload
  31. expect(page.body).to eq('second')
  32. expect(page.current_revision.message).to eq('other edit')
  33. end
  34. end