active_snapshot 0.1.0 → 0.2.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -67,7 +67,7 @@ class SnapshotTest < ActiveSupport::TestCase
67
67
 
68
68
  @snapshot.metadata = {foo: :bar}
69
69
 
70
- assert_equal 'bar', @snapshot.metadata['foo']
70
+ assert_equal :bar, @snapshot.metadata['foo']
71
71
  end
72
72
 
73
73
  def test_build_snapshot_item
@@ -73,7 +73,6 @@ class SnapshotsConcernTest < ActiveSupport::TestCase
73
73
  [],
74
74
  [:foobar, 123],
75
75
  {foo: :bar},
76
- {foo: {}},
77
76
  {foo: {records: 'bar', delete_method: 'bar'}},
78
77
  ]
79
78
 
@@ -90,6 +89,8 @@ class SnapshotsConcernTest < ActiveSupport::TestCase
90
89
  valid = [
91
90
  {},
92
91
  {foo: []},
92
+ {foo: {}},
93
+ {foo: Post.limit(1)},
93
94
  {foo: [:foobar, 123]},
94
95
  {foo: {record: 'bar'}},
95
96
  {foo: {records: 'bar'}},
@@ -97,6 +98,8 @@ class SnapshotsConcernTest < ActiveSupport::TestCase
97
98
  {foo: {records: Post.limit(1) }},
98
99
  {foo: {records: [], delete_method: ->(){} }},
99
100
  {foo: {records: [], delete_method: proc{} }},
101
+ {foo: nil},
102
+ {foo: {records: nil}},
100
103
  ]
101
104
 
102
105
  valid.each do |x|
@@ -106,6 +109,12 @@ class SnapshotsConcernTest < ActiveSupport::TestCase
106
109
 
107
110
  klass.new.children_to_snapshot
108
111
  end
112
+
113
+ klass.has_snapshot_children do
114
+ {foo: {records: 'bar'}, baz: {records: 'barbaz'}}
115
+ end
116
+
117
+ assert klass.new.children_to_snapshot.count == 2
109
118
  end
110
119
 
111
120
  end
@@ -22,16 +22,12 @@ class ActiveSnapshotTest < ActiveSupport::TestCase
22
22
  child = parent.comments.create!(content: :foo)
23
23
  original_child_updated_at = child.updated_at
24
24
 
25
- orig_comments_size = parent.children_to_snapshot[:comments][:records].count
26
-
27
25
  assert_difference ->{ ActiveSnapshot::Snapshot.count }, 1 do
28
- assert_difference ->{ ActiveSnapshot::SnapshotItem.count }, (orig_comments_size+1) do
26
+ assert_difference ->{ ActiveSnapshot::SnapshotItem.count }, 2 do
29
27
  @snapshot = parent.create_snapshot!(identifier)
30
28
  end
31
29
  end
32
30
 
33
- assert_equal (orig_comments_size+1), @snapshot.snapshot_items.size
34
-
35
31
  parent.update_columns(updated_at: 1.day.from_now)
36
32
 
37
33
  parent.update_columns(updated_at: 1.day.from_now)
@@ -51,7 +47,7 @@ class ActiveSnapshotTest < ActiveSupport::TestCase
51
47
 
52
48
  parent.reload
53
49
 
54
- assert_equal orig_comments_size, parent.children_to_snapshot[:comments][:records].count
50
+ assert_equal 1, parent.children_to_snapshot[:comments][:records].count
55
51
 
56
52
  ### Test Data Chang
57
53
  assert_time_match original_parent_updated_at, parent.updated_at
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: active_snapshot
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Weston Ganger
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-03-06 00:00:00.000000000 Z
11
+ date: 2021-08-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
@@ -94,6 +94,20 @@ dependencies:
94
94
  - - ">="
95
95
  - !ruby/object:Gem::Version
96
96
  version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: appraisal
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
97
111
  - !ruby/object:Gem::Dependency
98
112
  name: warning
99
113
  requirement: !ruby/object:Gem::Requirement
@@ -134,6 +148,7 @@ files:
134
148
  - test/dummy_app/app/controllers/application_controller.rb
135
149
  - test/dummy_app/app/models/application_record.rb
136
150
  - test/dummy_app/app/models/comment.rb
151
+ - test/dummy_app/app/models/note.rb
137
152
  - test/dummy_app/app/models/post.rb
138
153
  - test/dummy_app/app/models/volatile_post.rb
139
154
  - test/dummy_app/app/views/layouts/application.html.erb
@@ -155,8 +170,8 @@ files:
155
170
  - test/dummy_app/config/routes.rb
156
171
  - test/dummy_app/config/secrets.yml
157
172
  - test/dummy_app/db/migrate/20210128155312_set_up_test_tables.rb
158
- - test/dummy_app/db/migrate/20210306070749_create_snapshots_tables.rb
159
- - test/dummy_app/log/development.log
173
+ - test/dummy_app/db/migrate/20210306100122_create_snapshots_tables.rb
174
+ - test/dummy_app/db/test.sqlite3
160
175
  - test/dummy_app/log/test.log
161
176
  - test/generators/active_snapshot/install_generator_test.rb
162
177
  - test/models/snapshot_item_test.rb
@@ -186,46 +201,47 @@ required_rubygems_version: !ruby/object:Gem::Requirement
186
201
  - !ruby/object:Gem::Version
187
202
  version: '0'
188
203
  requirements: []
189
- rubygems_version: 3.1.2
204
+ rubygems_version: 3.1.4
190
205
  signing_key:
191
206
  specification_version: 4
192
207
  summary: Dead simple snapshot versioning for ActiveRecord models and associations.
193
208
  test_files:
209
+ - test/unit/active_snapshot_test.rb
210
+ - test/unit/errors_test.rb
194
211
  - test/models/snapshots_concern_test.rb
195
212
  - test/models/snapshot_item_test.rb
196
213
  - test/models/snapshot_test.rb
197
214
  - test/test_helper.rb
198
- - test/unit/active_snapshot_test.rb
199
- - test/unit/errors_test.rb
200
- - test/dummy_app/app/models/comment.rb
215
+ - test/generators/active_snapshot/install_generator_test.rb
216
+ - test/dummy_app/app/models/note.rb
201
217
  - test/dummy_app/app/models/volatile_post.rb
218
+ - test/dummy_app/app/models/comment.rb
202
219
  - test/dummy_app/app/models/application_record.rb
203
220
  - test/dummy_app/app/models/post.rb
221
+ - test/dummy_app/app/controllers/application_controller.rb
204
222
  - test/dummy_app/app/views/layouts/application.html.erb
205
- - test/dummy_app/app/assets/stylesheets/application.css
206
223
  - test/dummy_app/app/assets/config/manifest.js
207
224
  - test/dummy_app/app/assets/javascripts/application.js
208
- - test/dummy_app/app/controllers/application_controller.rb
209
- - test/dummy_app/config.ru
210
- - test/dummy_app/log/development.log
211
- - test/dummy_app/log/test.log
212
- - test/dummy_app/config/database.yml
225
+ - test/dummy_app/app/assets/stylesheets/application.css
226
+ - test/dummy_app/config/secrets.yml
227
+ - test/dummy_app/config/routes.rb
228
+ - test/dummy_app/config/locales/en.yml
213
229
  - test/dummy_app/config/environments/production.rb
214
- - test/dummy_app/config/environments/test.rb
215
230
  - test/dummy_app/config/environments/development.rb
216
- - test/dummy_app/config/routes.rb
231
+ - test/dummy_app/config/environments/test.rb
217
232
  - test/dummy_app/config/environment.rb
218
- - test/dummy_app/config/locales/en.yml
233
+ - test/dummy_app/config/application.rb
234
+ - test/dummy_app/config/database.yml
219
235
  - test/dummy_app/config/boot.rb
220
- - test/dummy_app/config/initializers/secret_token.rb
221
- - test/dummy_app/config/initializers/inflections.rb
236
+ - test/dummy_app/config/initializers/backtrace_silencers.rb
222
237
  - test/dummy_app/config/initializers/mime_types.rb
223
238
  - test/dummy_app/config/initializers/session_store.rb
224
239
  - test/dummy_app/config/initializers/wrap_parameters.rb
225
- - test/dummy_app/config/initializers/backtrace_silencers.rb
226
- - test/dummy_app/config/secrets.yml
227
- - test/dummy_app/config/application.rb
240
+ - test/dummy_app/config/initializers/secret_token.rb
241
+ - test/dummy_app/config/initializers/inflections.rb
242
+ - test/dummy_app/config.ru
228
243
  - test/dummy_app/Rakefile
244
+ - test/dummy_app/db/test.sqlite3
245
+ - test/dummy_app/db/migrate/20210306100122_create_snapshots_tables.rb
229
246
  - test/dummy_app/db/migrate/20210128155312_set_up_test_tables.rb
230
- - test/dummy_app/db/migrate/20210306070749_create_snapshots_tables.rb
231
- - test/generators/active_snapshot/install_generator_test.rb
247
+ - test/dummy_app/log/test.log
@@ -1,9 +0,0 @@
1
-  (1.2ms) SELECT sqlite_version(*)
2
-  (4.6ms) CREATE TABLE "schema_migrations" ("version" varchar NOT NULL PRIMARY KEY)
3
-  (3.9ms) CREATE TABLE "ar_internal_metadata" ("key" varchar NOT NULL PRIMARY KEY, "value" varchar, "created_at" datetime(6) NOT NULL, "updated_at" datetime(6) NOT NULL)
4
- ActiveRecord::InternalMetadata Load (0.2ms) SELECT "ar_internal_metadata".* FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = ? LIMIT ? [["key", "environment"], ["LIMIT", 1]]
5
-  (0.1ms) begin transaction
6
- ActiveRecord::InternalMetadata Create (0.2ms) INSERT INTO "ar_internal_metadata" ("key", "value", "created_at", "updated_at") VALUES (?, ?, ?, ?) [["key", "environment"], ["value", "development"], ["created_at", "2020-10-18 23:26:12.753133"], ["updated_at", "2020-10-18 23:26:12.753133"]]
7
-  (2.1ms) commit transaction
8
-  (0.1ms) SELECT sqlite_version(*)
9
-  (0.1ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC