ぼざクリタグ広場 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.
 
 
 
 
 

75 lines
1.7 KiB

  1. require 'rails_helper'
  2. RSpec.describe VersionRecord, type: :model do
  3. let!(:tag) { create(:tag, name: 'version_record_tag') }
  4. let!(:nico_tag) { create(:tag, :nico, name: 'nico:version_record_tag') }
  5. it 'makes TagVersion read only after create' do
  6. version = TagVersion.create!(
  7. tag: tag,
  8. version_no: 1,
  9. event_type: 'create',
  10. name: tag.name,
  11. category: tag.category,
  12. aliases: '',
  13. parent_tag_ids: '',
  14. created_at: Time.current,
  15. created_by_user: nil
  16. )
  17. expect {
  18. version.update!(name: 'changed')
  19. }.to raise_error(ActiveRecord::ReadOnlyRecord)
  20. end
  21. it 'prevents TagVersion destroy' do
  22. version = TagVersion.create!(
  23. tag: tag,
  24. version_no: 1,
  25. event_type: 'create',
  26. name: tag.name,
  27. category: tag.category,
  28. aliases: '',
  29. parent_tag_ids: '',
  30. created_at: Time.current,
  31. created_by_user: nil
  32. )
  33. expect {
  34. version.destroy!
  35. }.to raise_error(ActiveRecord::ReadOnlyRecord)
  36. end
  37. it 'makes NicoTagVersion read only after create' do
  38. version = NicoTagVersion.create!(
  39. tag: nico_tag,
  40. version_no: 1,
  41. event_type: 'create',
  42. name: nico_tag.name,
  43. linked_tags: '',
  44. created_at: Time.current,
  45. created_by_user: nil
  46. )
  47. expect {
  48. version.update!(name: 'nico:changed')
  49. }.to raise_error(ActiveRecord::ReadOnlyRecord)
  50. end
  51. it 'prevents NicoTagVersion destroy' do
  52. version = NicoTagVersion.create!(
  53. tag: nico_tag,
  54. version_no: 1,
  55. event_type: 'create',
  56. name: nico_tag.name,
  57. linked_tags: '',
  58. created_at: Time.current,
  59. created_by_user: nil
  60. )
  61. expect {
  62. version.destroy!
  63. }.to raise_error(ActiveRecord::ReadOnlyRecord)
  64. end
  65. end