Sha256: 004952e571818a2245531d0091b3788f2aab6337bb739cf6a1123cf5cdd5ffe7

Contents?: true

Size: 1.14 KB

Versions: 4

Compression:

Stored size: 1.14 KB

Contents

require_relative './spec_helper'

describe Groovy::Model do

  before :all do
    Groovy.open('tmp/callbacks', 'callbacks_spec')
    load_callbacks_schema!
  end

  after :all do
    Groovy.close('callbacks_spec')
  end

  def load_callbacks_schema!
    klass = Class.new
    Object.const_set("User", klass)
    User.class_eval do
      include Groovy::Model

      after_create :created!
      after_update do |record|
        record.updated!
      end

      schema(context: 'callbacks_spec') do |t|
        t.string :name
        t.timestamps
      end

      def created!
        # puts "created"
      end

      def updated!
        # puts "updated"
      end
    end

    User.add_reference :comments, "Comments", type: :vector
  end

  it 'fires created callbacks' do
    user = User.new(name: 'John')
    expect(user).to receive(:created!)
    expect(user).not_to receive(:updated!)
    expect(user.save).to eq(true)
  end

  it 'fires updated callbacks' do
    user = User.new(name: 'John')
    user.save
    user.name = 'Josh'
    expect(user).not_to receive(:created!)
    expect(user).to receive(:updated!)
    expect(user.save).to eq(true)
  end

end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
groovy-0.6.8 spec/callbacks_spec.rb
groovy-0.6.7 spec/callbacks_spec.rb
groovy-0.6.6 spec/callbacks_spec.rb
groovy-0.6.4 spec/callbacks_spec.rb