Sha256: 04802858b3d85c6a3bf971c998336d23bed5b1d85dcb030f72a0247974b30a9f

Contents?: true

Size: 1.63 KB

Versions: 5

Compression:

Stored size: 1.63 KB

Contents

require 'spec_helper'

describe TheModerator::Model do
  describe '#moderate' do
    it 'moderates simple field' do
      page = Page.new(name: 'Name', content: 'Content')
      page.moderate(:name)

      expect(page.moderations.size).to eq(1)
      expect(page.moderations.first.data[:attributes]).to include(name: 'Name')
      expect(page.name).to be_nil
      expect(page.content).to eq('Content')
    end

    it 'moderates association fields' do
      category = Category.new(name: 'category')
      category.build_page
      category.save

      category.attributes = {page_attributes: {
        name: 'name', content: 'content', id: category.page.id}}
      category.moderate(page: :name)

      expect(category.moderations.size).to eq(1)
      expect(category.moderations.first.data[:attributes])
        .to include(page_attributes: {name: 'name', id: category.page.id})
      expect(category.page.name).to be_nil
    end

    it 'moderates has_many associations' do
      page = Page.new(name: 'page')
      page.save
      link = page.links.create

      page.attributes = {links_attributes: [{id: link.id, name: 'link'}]}
      page.moderate(links: [:name])

      expect(page.moderations.size).to eq(1)
      expect(page.moderations.first.data[:attributes])
        .to include(links_attributes: {link.id => {name: 'link', id: link.id}})
      expect(link.name).to be_nil
    end
  end

  describe '#moderated?' do
    it 'detects moderated field' do
      page = Page.new(name: 'Name', content: 'Content')
      page.moderate(:name)

      expect(page.moderated?(:name)).to be true
      expect(page.moderated?(:content)).to be false
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
the_moderator-0.1.7 spec/the_moderator/model_spec.rb
the_moderator-0.1.6 spec/the_moderator/model_spec.rb
the_moderator-0.1.5 spec/the_moderator/model_spec.rb
the_moderator-0.1.4 spec/the_moderator/model_spec.rb
the_moderator-0.1.3 spec/the_moderator/model_spec.rb