|
70 | 70 | }.to change { !!model.age_changed? }.from(true).to(false) |
71 | 71 | end |
72 | 72 |
|
73 | | - if AR_VERSION >= AR_4_2 |
74 | | - it 'can be restored individually' do |
75 | | - model.age = 24 |
76 | | - expect { |
77 | | - model.restore_age! |
78 | | - }.to change { model.age }.from(24).to(12) |
79 | | - end |
80 | | - else |
81 | | - it 'can be reset individually' do |
82 | | - model.age = 24 |
83 | | - expect { |
84 | | - model.reset_age! |
85 | | - }.to change { model.age }.from(24).to(12) |
86 | | - end |
| 73 | + it 'can be restored individually' do |
| 74 | + model.age = 24 |
| 75 | + expect { |
| 76 | + model.restore_age! |
| 77 | + }.to change { model.age }.from(24).to(12) |
87 | 78 | end |
88 | 79 |
|
89 | 80 | it 'does not dirty track assigning the same boolean' do |
|
432 | 423 | let(:time) { time_string.respond_to?(:in_time_zone) ? time_string.in_time_zone : Time.parse(time_string) } |
433 | 424 |
|
434 | 425 | context "with ActiveRecord #{ActiveRecord::VERSION::STRING}" do |
435 | | - if AR_VERSION < AR_4_0 |
436 | | - it 'has the defined default as initial value' do |
437 | | - model.save |
438 | | - expect(model.published_at).to be == time |
439 | | - end |
| 426 | + it 'has the defined default as initial value' do |
| 427 | + model.save |
| 428 | + expect(model.reload.published_at).to be == time |
| 429 | + end |
440 | 430 |
|
| 431 | + it 'retreive a time instance' do |
| 432 | + model.update(published_at: time) |
| 433 | + expect(model.reload.published_at).to be == time |
| 434 | + end |
| 435 | + |
| 436 | + if ActiveRecord::Base.time_zone_aware_attributes |
441 | 437 | it 'properly cast assigned value to time' do |
442 | 438 | model.remind_at = time_string |
443 | 439 | expect(model.remind_at).to be == time |
444 | 440 | end |
445 | | - it 'properly cast assigned value to time on save' do |
| 441 | + else |
| 442 | + it 'properly cast assigned value to time' do |
446 | 443 | model.remind_at = time_string |
447 | | - model.save |
448 | | - model.reload |
449 | 444 | expect(model.remind_at).to be == time |
450 | 445 | end |
451 | | - it 'retreive a Time instance' do |
452 | | - model.update(published_at: time) |
453 | | - expect(model.reload.published_at).to be == time |
454 | | - end |
455 | | - else |
456 | | - it 'has the defined default as initial value' do |
457 | | - model.save |
458 | | - expect(model.reload.published_at).to be == time |
459 | | - end |
460 | | - |
461 | | - it 'retreive a time instance' do |
462 | | - model.update(published_at: time) |
463 | | - expect(model.reload.published_at).to be == time |
464 | | - end |
465 | | - |
466 | | - if ActiveRecord::Base.time_zone_aware_attributes |
467 | | - it 'properly cast assigned value to time' do |
468 | | - model.remind_at = time_string |
469 | | - expect(model.remind_at).to be == time |
470 | | - end |
471 | | - else |
472 | | - it 'properly cast assigned value to time' do |
473 | | - model.remind_at = time_string |
474 | | - expect(model.remind_at).to be == time |
475 | | - end |
476 | | - end |
477 | 446 | end |
478 | 447 | end |
479 | 448 | end |
|
485 | 454 | let(:time) { datetime_string.respond_to?(:in_time_zone) ? datetime_string.in_time_zone : Time.parse(datetime_string) } |
486 | 455 |
|
487 | 456 | context "with ActiveRecord #{ActiveRecord::VERSION::STRING}" do |
| 457 | + it 'has the defined default as initial value' do |
| 458 | + model.save |
| 459 | + expect(model.reload.published_at).to be == datetime |
| 460 | + end |
488 | 461 |
|
489 | | - if AR_VERSION < AR_4_0 |
490 | | - |
491 | | - it 'has the defined default as initial value' do |
492 | | - model.save |
493 | | - expect(model.published_at).to be == time |
494 | | - end |
| 462 | + it 'retreive a DateTime instance' do |
| 463 | + model.update(published_at: datetime) |
| 464 | + expect(model.reload.published_at).to be == datetime |
| 465 | + end |
495 | 466 |
|
| 467 | + if ActiveRecord::Base.time_zone_aware_attributes |
496 | 468 | it 'properly cast assigned value to time' do |
497 | 469 | model.remind_at = datetime_string |
498 | 470 | expect(model.remind_at).to be == time |
499 | 471 | end |
500 | | - |
501 | | - it 'properly cast assigned value to time on save' do |
502 | | - model.remind_at = datetime_string |
503 | | - model.save |
504 | | - model.reload |
505 | | - expect(model.remind_at).to be == time |
506 | | - end |
507 | | - |
508 | | - it 'retreive a Time instance' do |
509 | | - model.update(published_at: datetime) |
510 | | - expect(model.reload.published_at).to be == time |
511 | | - end |
512 | | - |
513 | 472 | else |
514 | | - |
515 | | - it 'has the defined default as initial value' do |
516 | | - model.save |
517 | | - expect(model.reload.published_at).to be == datetime |
518 | | - end |
519 | | - |
520 | | - it 'retreive a DateTime instance' do |
521 | | - model.update(published_at: datetime) |
522 | | - expect(model.reload.published_at).to be == datetime |
523 | | - end |
524 | | - |
525 | | - if ActiveRecord::Base.time_zone_aware_attributes |
526 | | - |
527 | | - it 'properly cast assigned value to time' do |
528 | | - model.remind_at = datetime_string |
529 | | - expect(model.remind_at).to be == time |
530 | | - end |
531 | | - |
532 | | - else |
533 | | - |
534 | | - it 'properly cast assigned value to datetime' do |
535 | | - model.remind_at = datetime_string |
536 | | - expect(model.remind_at).to be == datetime |
537 | | - end |
538 | | - |
| 473 | + it 'properly cast assigned value to datetime' do |
| 474 | + model.remind_at = datetime_string |
| 475 | + expect(model.remind_at).to be == datetime |
539 | 476 | end |
540 | | - |
541 | 477 | end |
542 | | - |
543 | 478 | end |
544 | 479 |
|
545 | 480 | it 'nillify unparsable datetimes' do |
|
896 | 831 | it_should_behave_like 'a model supporting arrays', true |
897 | 832 | end if defined?(PostgresqlRegularARModel) |
898 | 833 |
|
899 | | -describe PostgresHstoreTypedStoreModel do |
900 | | - if AR_VERSION >= AR_4_1 |
901 | | - pending('TODO: Rails edge HStore compatibiliy') |
902 | | - else |
903 | | - it_should_behave_like 'any model' |
904 | | - it_should_behave_like 'a store', false |
905 | | - end |
906 | | -end if defined?(PostgresHstoreTypedStoreModel) |
907 | | - |
908 | 834 | describe PostgresJsonTypedStoreModel do |
909 | 835 | it_should_behave_like 'any model' |
910 | 836 | it_should_behave_like 'a store', true, :json |
|
0 commit comments