Skip to content

Commit

Permalink
Add spec file to test tracking history of embedded relations in parent
Browse files Browse the repository at this point in the history
Demonstrates mongoid#187.
  • Loading branch information
mpetazzoni committed Apr 7, 2017
1 parent e060205 commit df4bd12
Showing 1 changed file with 47 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
require 'spec_helper'

describe Mongoid::History::Tracker do
before :all do
class Child
include Mongoid::Document
include Mongoid::History::Trackable

field :name
embedded_in :parent, inverse_of: :child
end

class Parent
include Mongoid::Document
include Mongoid::History::Trackable

field :name, type: String
embeds_one :child

track_history on: [:fields, :embedded_relations], # track title and body fields only, default is :all
modifier_field: :modifier, # adds "referenced_in :modifier" to track who made the change, default is :modifier
modifier_field_inverse_of: :nil,
version_field: :version, # adds "field :version, :type => Integer" to track current version, default is :version
track_create: false, # track document creation, default is false
track_update: true, # track document updates, default is true
track_destroy: false # track document destruction, default is false
end
end

it 'should be able to track history for nested embedded documents in parent' do
p = Parent.new(name: 'bowser')
p.child = Child.new(name: 'todd')
p.save!

p.child.name = 'mario'
p.save!

changes = p.history_tracks.reverse
expect(changes.length).to eq(1)
expect(changes.first.modified['name']).to eq('mario')
end

after :all do
Object.send(:remove_const, :Parent)
Object.send(:remove_const, :Child)
end
end

0 comments on commit df4bd12

Please sign in to comment.