File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 44
55use Statamic \Contracts \Assets \Asset ;
66use Statamic \Exceptions \AssetConflictException ;
7+ use Statamic \Facades \Asset as AssetRepository ;
78use Statamic \Facades \AssetContainer ;
89use Statamic \Facades \Blink ;
910use Statamic \Facades \Glide ;
@@ -68,6 +69,13 @@ public function run($assets, $values)
6869 if ($ strategy === 'overwrite ' ) {
6970 $ assetForGlideCacheClear = $ existingAsset ?? $ asset ->container ()->makeAsset ($ destinationPath );
7071 Glide::clearAsset ($ assetForGlideCacheClear );
72+
73+ // Remove the pre-existing destination record before moving the source
74+ // so we never leave behind stale repository entries for this path.
75+ if ($ existingAsset ) {
76+ AssetRepository::delete ($ existingAsset );
77+ }
78+
7179 $ oldId = $ asset ->id ();
7280 $ newId = $ asset ->move ($ folder )->id ();
7381 $ completedMoves [$ oldId ] = $ newId ;
Original file line number Diff line number Diff line change @@ -189,6 +189,8 @@ public function it_can_overwrite_conflicting_move_when_strategy_is_overwrite():
189189 Storage::disk ('test ' )->assertMissing ('source/logo.svg ' );
190190 Storage::disk ('test ' )->assertExists ('target/logo.svg ' );
191191 $ this ->assertEquals ('new ' , Storage::disk ('test ' )->get ('target/logo.svg ' ));
192+ $ this ->assertCount (1 , $ this ->container ->assets ('/ ' , true ));
193+ $ this ->assertSame (['test_container::target/logo.svg ' ], $ this ->container ->assets ('/ ' , true )->pluck ('id ' )->values ()->all ());
192194 }
193195
194196 #[Test]
You can’t perform that action at this time.
0 commit comments