@@ -31,7 +31,7 @@ protected function setUp(): void
3131 /**
3232 * @dataProvider getGeneratePatchTests
3333 */
34- public function testGeneratePatch (array $ originalFiles , array $ newFiles , string $ expectedPatch )
34+ public function testGeneratePatch (array $ originalFiles , array $ newFiles , string $ expectedPatch, array $ expectedDeletedFiles = [] )
3535 {
3636 $ this ->getFilesystem ()->remove (FLEX_TEST_DIR );
3737 $ this ->getFilesystem ()->mkdir (FLEX_TEST_DIR );
@@ -44,6 +44,7 @@ public function testGeneratePatch(array $originalFiles, array $newFiles, string
4444
4545 $ patch = $ patcher ->generatePatch ($ originalFiles , $ newFiles );
4646 $ this ->assertSame ($ expectedPatch , rtrim ($ patch ->getPatch (), "\n" ));
47+ $ this ->assertSame ($ expectedDeletedFiles , $ patch ->getDeletedFiles ());
4748
4849 // find all "index 7d30dc7.." in patch
4950 $ matches = [];
@@ -121,31 +122,15 @@ public function getGeneratePatchTests(): iterable
121122 yield 'file_deleted_in_update_because_missing ' => [
122123 ['file1.txt ' => 'New file ' ],
123124 [],
124- <<<EOF
125- diff --git a/file1.txt b/file1.txt
126- deleted file mode 100644
127- index b78ca63..0000000
128- --- a/file1.txt
129- +++ /dev/null
130- @@ -1 +0,0 @@
131- -New file
132- \ No newline at end of file
133- EOF
125+ '' ,
126+ ['file1.txt ' ],
134127 ];
135128
136129 yield 'file_deleted_in_update_because_null ' => [
137130 ['file1.txt ' => 'New file ' ],
138131 ['file1.txt ' => null ],
139- <<<EOF
140- diff --git a/file1.txt b/file1.txt
141- deleted file mode 100644
142- index b78ca63..0000000
143- --- a/file1.txt
144- +++ /dev/null
145- @@ -1 +0,0 @@
146- -New file
147- \ No newline at end of file
148- EOF
132+ '' ,
133+ ['file1.txt ' ],
149134 ];
150135
151136 yield 'mixture_of_added_updated_removed ' => [
@@ -169,15 +154,9 @@ public function getGeneratePatchTests(): iterable
169154@@ -0,0 +1 @@
170155+file to create
171156\ No newline at end of file
172- diff --git a/will_be_deleted.txt b/will_be_deleted.txt
173- deleted file mode 100644
174- index 98ff166..0000000
175- --- a/will_be_deleted.txt
176- +++ /dev/null
177- @@ -1 +0,0 @@
178- -file to delete
179- \ No newline at end of file
180157EOF
158+ ,
159+ ['will_be_deleted.txt ' ],
181160 ];
182161 }
183162
@@ -243,7 +222,8 @@ public function getApplyPatchTests(): iterable
243222 ['.env ' => $ dotEnvClean ['in_app ' ]],
244223 new RecipePatch (
245224 $ dotEnvClean ['patch ' ],
246- [$ dotEnvClean ['hash ' ] => $ dotEnvClean ['blob ' ]]
225+ [$ dotEnvClean ['hash ' ] => $ dotEnvClean ['blob ' ]],
226+ []
247227 ),
248228 ['.env ' => $ dotEnvClean ['expected ' ]],
249229 false ,
@@ -253,7 +233,8 @@ public function getApplyPatchTests(): iterable
253233 ['package.json ' => $ packageJsonConflict ['in_app ' ]],
254234 new RecipePatch (
255235 $ packageJsonConflict ['patch ' ],
256- [$ packageJsonConflict ['hash ' ] => $ packageJsonConflict ['blob ' ]]
236+ [$ packageJsonConflict ['hash ' ] => $ packageJsonConflict ['blob ' ]],
237+ []
257238 ),
258239 ['package.json ' => $ packageJsonConflict ['expected ' ]],
259240 true ,
@@ -265,6 +246,7 @@ public function getApplyPatchTests(): iterable
265246 new RecipePatch (
266247 $ webpackEncoreAdded ['patch ' ],
267248 // no blobs needed for a new file
249+ [],
268250 []
269251 ),
270252 ['config/packages/webpack_encore.yaml ' => $ webpackEncoreAdded ['expected ' ]],
@@ -274,8 +256,9 @@ public function getApplyPatchTests(): iterable
274256 yield 'removed_one_file ' => [
275257 ['config/packages/security.yaml ' => $ securityRemoved ['in_app ' ]],
276258 new RecipePatch (
277- $ securityRemoved ['patch ' ],
278- [$ securityRemoved ['hash ' ] => $ securityRemoved ['blob ' ]]
259+ '' ,
260+ [$ securityRemoved ['hash ' ] => $ securityRemoved ['blob ' ]],
261+ ['config/packages/security.yaml ' ]
279262 ),
280263 // expected to be deleted
281264 ['config/packages/security.yaml ' => null ],
@@ -290,12 +273,15 @@ public function getApplyPatchTests(): iterable
290273 'config/packages/security.yaml ' => $ securityRemoved ['in_app ' ],
291274 ],
292275 new RecipePatch (
293- $ dotEnvClean ['patch ' ]."\n" .$ packageJsonConflict ['patch ' ]."\n" .$ webpackEncoreAdded ['patch ' ]. "\n" . $ securityRemoved [ ' patch ' ] ,
276+ $ dotEnvClean ['patch ' ]."\n" .$ packageJsonConflict ['patch ' ]."\n" .$ webpackEncoreAdded ['patch ' ],
294277 [
295278 $ dotEnvClean ['hash ' ] => $ dotEnvClean ['blob ' ],
296279 $ packageJsonConflict ['hash ' ] => $ packageJsonConflict ['blob ' ],
297280 $ webpackEncoreAdded ['hash ' ] => $ webpackEncoreAdded ['blob ' ],
298281 $ securityRemoved ['hash ' ] => $ securityRemoved ['blob ' ],
282+ ],
283+ [
284+ 'config/packages/security.yaml ' ,
299285 ]
300286 ),
301287 [
0 commit comments