mirror of
https://github.com/internetee/registry.git
synced 2025-06-09 14:14:49 +02:00
Add tests for fixing ignored columns in versions
This commit is contained in:
parent
3d424e3dd0
commit
e4352d121a
2 changed files with 30 additions and 2 deletions
|
@ -61,8 +61,8 @@ module Versions
|
||||||
preceding(time + 1, true).
|
preceding(time + 1, true).
|
||||||
select("distinct on (item_id) #{ver_klass.table_name}.*").
|
select("distinct on (item_id) #{ver_klass.table_name}.*").
|
||||||
map do |ver|
|
map do |ver|
|
||||||
ignored_columns = ver.item_type.constantize&.ignored_columns
|
valid_columns = ver.item_type.constantize&.column_names
|
||||||
o = new(ver.object&.except!(*ignored_columns))
|
o = new(ver.object&.slice(*valid_columns))
|
||||||
o.version_loader = ver
|
o.version_loader = ver
|
||||||
ver.object_changes.to_h.each { |k, v| o.public_send("#{k}=", v[-1]) }
|
ver.object_changes.to_h.each { |k, v| o.public_send("#{k}=", v[-1]) }
|
||||||
o
|
o
|
||||||
|
|
28
test/models/concerns/versions_test.rb
Normal file
28
test/models/concerns/versions_test.rb
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
require 'test_helper'
|
||||||
|
|
||||||
|
class VersionsTest < ActiveSupport::TestCase
|
||||||
|
|
||||||
|
def test_if_gets_all_versions_without_error_if_ignored_column_present
|
||||||
|
@nameserver = nameservers(:shop_ns1)
|
||||||
|
@nameserver.update(hostname: 'ns99.bestnames.test')
|
||||||
|
@ignored_column_title = Nameserver.ignored_columns.first
|
||||||
|
|
||||||
|
version = NameserverVersion.last
|
||||||
|
hash = version.object
|
||||||
|
hash[@ignored_column_title] = 123456
|
||||||
|
version.update(object: hash)
|
||||||
|
|
||||||
|
assert_nothing_raised do
|
||||||
|
Nameserver.all_versions_for([@nameserver.id], Time.zone.now)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_if_gets_all_versions_without_error_if_no_ignored_column
|
||||||
|
@account = accounts(:cash)
|
||||||
|
@account.update(currency: 'USD')
|
||||||
|
|
||||||
|
assert_nothing_raised do
|
||||||
|
Account.all_versions_for([@account.id], Time.zone.now)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
Loading…
Add table
Add a link
Reference in a new issue