Sha256: 59ab0da889c9d314e442450e88a8bcbf7a856c1edb536c26ee2ae1f5c6ba204a

Contents?: true

Size: 1.19 KB

Versions: 1

Compression:

Stored size: 1.19 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).to have(1).moderation
      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.create_page
      category.save

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

      expect(category.moderations).to have(1).moderation
      expect(category.moderations.first.data[:attributes])
        .to include(page_attributes: {name: 'name', id: category.page.id})
      expect(category.page.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

1 entries across 1 versions & 1 rubygems

Version Path
the_moderator-0.1.0 spec/the_moderator/model_spec.rb