Sha256: e977947715006b74e46adca9c6b1476075413d526708cfc96cccc451899d0600

Contents?: true

Size: 1.07 KB

Versions: 2

Compression:

Stored size: 1.07 KB

Contents

require_relative './spec_helper'

describe Groovy::Model do

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

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

  def load_test_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
  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

2 entries across 2 versions & 1 rubygems

Version Path
groovy-0.7.1 spec/callbacks_spec.rb
groovy-0.7.0 spec/callbacks_spec.rb