Skip to content

Commit ffeb31a

Browse files
committed
fix: Require AR 5.0+
1 parent 2408edf commit ffeb31a

File tree

1 file changed

+146
-144
lines changed

1 file changed

+146
-144
lines changed

test/support/postgresql/import_examples.rb

Lines changed: 146 additions & 144 deletions
Original file line numberDiff line numberDiff line change
@@ -252,193 +252,195 @@ def should_support_postgresql_import_functionality
252252
end
253253
end
254254

255-
describe 'with :omit_columns option' do
256-
let(:values) do
257-
[
258-
{
259-
title: "Invictus",
260-
author_name: "William Ernest Henley",
261-
url: 'https://www.poetryfoundation.org/poems/51642/invictus',
262-
guid: '' # guid is blank, but will be ignored
263-
},
264-
{
265-
title: 'If',
266-
author_name: 'Rudyard Kipling',
267-
guid: SecureRandom.uuid, # this will still be ignored
268-
url: 'https://www.poetryfoundation.org/poems/46473/if---'
269-
}
270-
]
271-
end
272-
273-
context 'with array of hashes' do
274-
context ':omit_columns is a Proc' do
275-
it "should succeed with guid being generated" do
276-
assert_difference "Redirection.count", +2 do
277-
Redirection.import values, omit_columns: ->(model, _column_names) { [:guid] if model == Redirection }
255+
if ENV['AR_VERSION'].to_f >= 5.0
256+
describe 'with :omit_columns option' do
257+
let(:values) do
258+
[
259+
{
260+
title: "Invictus",
261+
author_name: "William Ernest Henley",
262+
url: 'https://www.poetryfoundation.org/poems/51642/invictus',
263+
guid: '' # guid is blank, but will be ignored
264+
},
265+
{
266+
title: 'If',
267+
author_name: 'Rudyard Kipling',
268+
guid: SecureRandom.uuid, # this will still be ignored
269+
url: 'https://www.poetryfoundation.org/poems/46473/if---'
270+
}
271+
]
272+
end
273+
274+
context 'with array of hashes' do
275+
context ':omit_columns is a Proc' do
276+
it "should succeed with guid being generated" do
277+
assert_difference "Redirection.count", +2 do
278+
Redirection.import values, omit_columns: ->(model, _column_names) { [:guid] if model == Redirection }
279+
end
278280
end
279-
end
280281

281-
it "should generate guid on match" do
282-
Redirection.import! values, omit_columns: ->(model, _column_names) { [:guid] if model == Redirection }
283-
assert_not_nil Redirection.last.guid
284-
assert_not_equal Redirection.last.guid, values.last[:guid]
285-
end
282+
it "should generate guid on match" do
283+
Redirection.import! values, omit_columns: ->(model, _column_names) { [:guid] if model == Redirection }
284+
assert_not_nil Redirection.last.guid
285+
assert_not_equal Redirection.last.guid, values.last[:guid]
286+
end
286287

287-
it "should not generate guid when not ignored" do
288-
Redirection.import! values, omit_columns: ->(model, _column_names) { [:guid] unless model == Redirection }
289-
assert_nil Redirection.first.guid
290-
assert_equal values.last[:guid], Redirection.last.guid
288+
it "should not generate guid when not ignored" do
289+
Redirection.import! values, omit_columns: ->(model, _column_names) { [:guid] unless model == Redirection }
290+
assert_nil Redirection.first.guid
291+
assert_equal values.last[:guid], Redirection.last.guid
292+
end
291293
end
292-
end
293294

294-
context ':omit_columns is an Array' do
295-
it "should succeed with guid being generated" do
296-
assert_difference "Redirection.count", +2 do
297-
Redirection.import values, omit_columns: [:guid]
295+
context ':omit_columns is an Array' do
296+
it "should succeed with guid being generated" do
297+
assert_difference "Redirection.count", +2 do
298+
Redirection.import values, omit_columns: [:guid]
299+
end
298300
end
299-
end
300301

301-
it "should generate guid" do
302-
Redirection.import! values, omit_columns: [:guid]
303-
assert_not_nil Redirection.last.guid
304-
assert_not_equal Redirection.last.guid, values.last[:guid]
305-
end
302+
it "should generate guid" do
303+
Redirection.import! values, omit_columns: [:guid]
304+
assert_not_nil Redirection.last.guid
305+
assert_not_equal Redirection.last.guid, values.last[:guid]
306+
end
306307

307-
it "should not generate guid when not ignored" do
308-
Redirection.import! values
309-
assert_nil Redirection.first.guid
310-
assert_equal values.last[:guid], Redirection.last.guid
308+
it "should not generate guid when not ignored" do
309+
Redirection.import! values
310+
assert_nil Redirection.first.guid
311+
assert_equal values.last[:guid], Redirection.last.guid
312+
end
311313
end
312-
end
313314

314-
context ':omit_columns is a Hash' do
315-
it "should succeed with guid being generated" do
316-
assert_difference "Redirection.count", +2 do
317-
Redirection.import values, omit_columns: { Redirection => [:guid] }
315+
context ':omit_columns is a Hash' do
316+
it "should succeed with guid being generated" do
317+
assert_difference "Redirection.count", +2 do
318+
Redirection.import values, omit_columns: { Redirection => [:guid] }
319+
end
318320
end
319-
end
320321

321-
it "should generate guid" do
322-
Redirection.import! values, omit_columns: { Redirection => [:guid] }
323-
assert_not_nil Redirection.last.guid
324-
assert_not_equal Redirection.last.guid, values.last[:guid]
325-
end
322+
it "should generate guid" do
323+
Redirection.import! values, omit_columns: { Redirection => [:guid] }
324+
assert_not_nil Redirection.last.guid
325+
assert_not_equal Redirection.last.guid, values.last[:guid]
326+
end
326327

327-
it "should not generate guid when not ignored" do
328-
Redirection.import! values, omit_columns: { Book => [:guid] }
329-
assert_nil Redirection.first.guid
330-
assert_equal values.last[:guid], Redirection.last.guid
328+
it "should not generate guid when not ignored" do
329+
Redirection.import! values, omit_columns: { Book => [:guid] }
330+
assert_nil Redirection.first.guid
331+
assert_equal values.last[:guid], Redirection.last.guid
332+
end
331333
end
332334
end
333-
end
334335

335-
context 'with array of models' do
336-
let(:models) { values.map { |hash| Redirection.new(hash) } }
337-
context ':omit_columns is a Proc' do
338-
it "should succeed with guid being generated" do
339-
assert_difference "Redirection.count", +2 do
340-
Redirection.import models, omit_columns: ->(model, _column_names) { [:guid] if model == Redirection }
336+
context 'with array of models' do
337+
let(:models) { values.map { |hash| Redirection.new(hash) } }
338+
context ':omit_columns is a Proc' do
339+
it "should succeed with guid being generated" do
340+
assert_difference "Redirection.count", +2 do
341+
Redirection.import models, omit_columns: ->(model, _column_names) { [:guid] if model == Redirection }
342+
end
341343
end
342-
end
343344

344-
it "should generate guid on match" do
345-
Redirection.import! models, omit_columns: ->(model, _column_names) { [:guid] if model == Redirection }
346-
assert_not_nil Redirection.last.guid
347-
assert_not_equal Redirection.last.guid, models.last[:guid]
348-
end
345+
it "should generate guid on match" do
346+
Redirection.import! models, omit_columns: ->(model, _column_names) { [:guid] if model == Redirection }
347+
assert_not_nil Redirection.last.guid
348+
assert_not_equal Redirection.last.guid, models.last[:guid]
349+
end
349350

350-
it "should not generate guid when not ignored" do
351-
Redirection.import! models, omit_columns: ->(model, _column_names) { [:guid] unless model == Redirection }
352-
assert_nil Redirection.first.guid
353-
assert_equal values.last[:guid], Redirection.last.guid
351+
it "should not generate guid when not ignored" do
352+
Redirection.import! models, omit_columns: ->(model, _column_names) { [:guid] unless model == Redirection }
353+
assert_nil Redirection.first.guid
354+
assert_equal values.last[:guid], Redirection.last.guid
355+
end
354356
end
355-
end
356357

357-
context ':omit_columns is an Array' do
358-
it "should succeed with guid being generated" do
359-
assert_difference "Redirection.count", +2 do
360-
Redirection.import models, omit_columns: [:guid]
358+
context ':omit_columns is an Array' do
359+
it "should succeed with guid being generated" do
360+
assert_difference "Redirection.count", +2 do
361+
Redirection.import models, omit_columns: [:guid]
362+
end
361363
end
362-
end
363364

364-
it "should generate guid" do
365-
Redirection.import! models, omit_columns: [:guid]
366-
assert_not_nil Redirection.last.guid
367-
assert_not_equal Redirection.last.guid, values.last[:guid]
365+
it "should generate guid" do
366+
Redirection.import! models, omit_columns: [:guid]
367+
assert_not_nil Redirection.last.guid
368+
assert_not_equal Redirection.last.guid, values.last[:guid]
369+
end
370+
371+
it "should not generate guid when not ignored" do
372+
Redirection.import! models
373+
assert_nil Redirection.first.guid
374+
assert_equal values.last[:guid], Redirection.last.guid
375+
end
368376
end
369377

370-
it "should not generate guid when not ignored" do
371-
Redirection.import! models
372-
assert_nil Redirection.first.guid
373-
assert_equal values.last[:guid], Redirection.last.guid
378+
context ':omit_columns is a Hash' do
379+
it "should succeed with guid being generated" do
380+
assert_difference "Redirection.count", +2 do
381+
Redirection.import models, omit_columns: { Redirection => [:guid] }
382+
end
383+
end
384+
385+
it "should generate guid" do
386+
Redirection.import! models, omit_columns: { Redirection => [:guid] }
387+
assert_not_nil Redirection.last.guid
388+
assert_not_equal Redirection.last.guid, models.last[:guid]
389+
end
390+
391+
it "should not generate guid when not ignored" do
392+
Redirection.import! models, omit_columns: { Book => [:guid] }
393+
assert_nil Redirection.first.guid
394+
assert_equal values.last[:guid], Redirection.last.guid
395+
end
374396
end
375397
end
398+
end
399+
400+
describe 'with :omit_columns_with_default_functions option' do
401+
let(:values) do
402+
[
403+
{
404+
title: "Invictus",
405+
author_name: "William Ernest Henley",
406+
url: 'https://www.poetryfoundation.org/poems/51642/invictus',
407+
guid: '' # guid is blank, but will be ignored
408+
},
409+
{
410+
title: 'If',
411+
author_name: 'Rudyard Kipling',
412+
guid: SecureRandom.uuid, # this will still be ignored
413+
url: 'https://www.poetryfoundation.org/poems/46473/if---'
414+
}
415+
]
416+
end
376417

377-
context ':omit_columns is a Hash' do
418+
context 'with array of hashes' do
378419
it "should succeed with guid being generated" do
379420
assert_difference "Redirection.count", +2 do
380-
Redirection.import models, omit_columns: { Redirection => [:guid] }
421+
Redirection.import values, omit_columns_with_default_functions: true
381422
end
382423
end
383424

384425
it "should generate guid" do
385-
Redirection.import! models, omit_columns: { Redirection => [:guid] }
426+
Redirection.import values, omit_columns_with_default_functions: true
386427
assert_not_nil Redirection.last.guid
387-
assert_not_equal Redirection.last.guid, models.last[:guid]
388-
end
389-
390-
it "should not generate guid when not ignored" do
391-
Redirection.import! models, omit_columns: { Book => [:guid] }
392-
assert_nil Redirection.first.guid
393-
assert_equal values.last[:guid], Redirection.last.guid
394428
end
395429
end
396-
end
397-
end
398430

399-
describe 'with :omit_columns_with_default_functions option' do
400-
let(:values) do
401-
[
402-
{
403-
title: "Invictus",
404-
author_name: "William Ernest Henley",
405-
url: 'https://www.poetryfoundation.org/poems/51642/invictus',
406-
guid: '' # guid is blank, but will be ignored
407-
},
408-
{
409-
title: 'If',
410-
author_name: 'Rudyard Kipling',
411-
guid: SecureRandom.uuid, # this will still be ignored
412-
url: 'https://www.poetryfoundation.org/poems/46473/if---'
413-
}
414-
]
415-
end
416-
417-
context 'with array of hashes' do
418-
it "should succeed with guid being generated" do
419-
assert_difference "Redirection.count", +2 do
420-
Redirection.import values, omit_columns_with_default_functions: true
431+
context 'with array of models' do
432+
let(:models) { values.map { |hash| Redirection.new(hash) } }
433+
it "should succeed with guid being generated" do
434+
assert_difference "Redirection.count", +2 do
435+
Redirection.import models, omit_columns_with_default_functions: true
436+
end
421437
end
422-
end
423-
424-
it "should generate guid" do
425-
Redirection.import values, omit_columns_with_default_functions: true
426-
assert_not_nil Redirection.last.guid
427-
end
428-
end
429438

430-
context 'with array of models' do
431-
let(:models) { values.map { |hash| Redirection.new(hash) } }
432-
it "should succeed with guid being generated" do
433-
assert_difference "Redirection.count", +2 do
439+
it "should generate guid" do
434440
Redirection.import models, omit_columns_with_default_functions: true
441+
assert_not_nil Redirection.last.guid
435442
end
436443
end
437-
438-
it "should generate guid" do
439-
Redirection.import models, omit_columns_with_default_functions: true
440-
assert_not_nil Redirection.last.guid
441-
end
442444
end
443445
end
444446
end

0 commit comments

Comments
 (0)