@@ -775,8 +775,6 @@ def filename
775
775
describe '#mount_uploader removing old files' do
776
776
before do
777
777
reset_class ( "Event" )
778
- Event . mount_uploader ( :image , @uploader )
779
- @event = Event . new
780
778
end
781
779
782
780
after do
@@ -785,6 +783,8 @@ def filename
785
783
786
784
describe 'normally' do
787
785
before do
786
+ Event . mount_uploader ( :image , @uploader )
787
+ @event = Event . new
788
788
@event . image = stub_file ( 'old.jpeg' )
789
789
790
790
expect ( @event . save ) . to be_truthy
@@ -837,6 +837,8 @@ def filename
837
837
838
838
describe 'with an overridden filename' do
839
839
before do
840
+ Event . mount_uploader ( :image , @uploader )
841
+ @event = Event . new
840
842
@uploader . class_eval do
841
843
def filename
842
844
model . foo + File . extname ( super )
@@ -865,6 +867,48 @@ def filename
865
867
expect ( File . exist? ( public_path ( 'uploads/test.jpeg' ) ) ) . to be_falsey
866
868
end
867
869
end
870
+
871
+ describe 'with after_commit callbacks invoked by defined order' do
872
+ before do
873
+ ActiveRecord . run_after_transaction_callbacks_in_order_defined = true if ActiveRecord . respond_to? ( :run_after_transaction_callbacks_in_order_defined= )
874
+ Event . mount_uploader ( :image , @uploader )
875
+ @event = Event . new
876
+ @event . image = stub_file ( 'old.jpeg' )
877
+
878
+ expect ( @event . save ) . to be_truthy
879
+ expect ( File . exist? ( public_path ( 'uploads/old.jpeg' ) ) ) . to be_truthy
880
+ end
881
+
882
+ after do
883
+ ActiveRecord . run_after_transaction_callbacks_in_order_defined = false if ActiveRecord . respond_to? ( :run_after_transaction_callbacks_in_order_defined= )
884
+ end
885
+
886
+ it "should invoke the callbacks in correct order" do
887
+ @event . image = stub_file ( 'new.jpeg' )
888
+ expect ( @event ) . to receive ( :remove_previously_stored_image ) . ordered . and_call_original
889
+ expect ( @event ) . to receive ( :reset_previous_changes_for_image ) . ordered . and_call_original
890
+ expect ( @event ) . to receive ( :mark_remove_image_false ) . ordered . and_call_original
891
+ @event . save
892
+ end
893
+
894
+ it "should remove old file on replace" do
895
+ @event . image = stub_file ( 'new.jpeg' )
896
+ expect ( @event . save ) . to be_truthy
897
+ expect ( File . exist? ( public_path ( 'uploads/new.jpeg' ) ) ) . to be_truthy
898
+ expect ( File . exist? ( public_path ( 'uploads/old.jpeg' ) ) ) . to be_falsey
899
+ end
900
+
901
+ it "should remove the file when remove_image is set to true" do
902
+ @event . remove_image = true
903
+ expect ( @event . save ) . to be_truthy
904
+ expect ( File . exist? ( public_path ( 'uploads/old.jpeg' ) ) ) . to be_falsey
905
+ end
906
+
907
+ it "should remove old file on destroy" do
908
+ expect ( @event . destroy ) . to be_truthy
909
+ expect ( File . exist? ( public_path ( 'uploads/old.jpeg' ) ) ) . to be_falsey
910
+ end
911
+ end
868
912
end
869
913
870
914
describe '#mount_uploader removing old files with versions' do
0 commit comments