@@ -157,6 +157,15 @@ test('Inside existing directory', t => {
157157 ) ;
158158} ) ;
159159
160+ test ( 'Link to dead source links' , t => {
161+ shell . cd ( t . context . tmp ) ;
162+ const result = shell . ln ( '-s' , 'badlink' , 'link-to-dead-link' ) ;
163+ t . is ( result . code , 0 ) ;
164+ t . falsy ( result . stderr ) ;
165+ t . falsy ( shell . error ( ) ) ;
166+ fs . lstatSync ( 'link-to-dead-link' ) ;
167+ } ) ;
168+
160169test ( '-f option' , t => {
161170 const result = shell . ln ( '-f' , `${ t . context . tmp } /file1.js` , `${ t . context . tmp } /file2.js` ) ;
162171 t . is ( result . code , 0 ) ;
@@ -181,6 +190,18 @@ test('-sf option', t => {
181190 } ) ;
182191} ) ;
183192
193+ test ( 'Override dead destination links with -sf' , t => {
194+ shell . cd ( t . context . tmp ) ;
195+ const result = shell . ln ( '-sf' , 'file1.txt' , 'badlink' ) ;
196+ t . is ( result . code , 0 ) ;
197+ t . falsy ( result . stderr ) ;
198+ t . falsy ( shell . error ( ) ) ;
199+ t . is (
200+ fs . readFileSync ( 'file1.txt' ) . toString ( ) ,
201+ fs . readFileSync ( 'badlink' ) . toString ( )
202+ ) ;
203+ } ) ;
204+
184205test ( 'Abspath regression' , t => {
185206 utils . skipOnWinForEPERM ( shell . ln . bind ( shell , '-sf' , 'file1' , path . resolve ( `${ t . context . tmp } /abspath` ) ) , ( ) => {
186207 t . truthy ( fs . existsSync ( `${ t . context . tmp } /abspath` ) ) ;
0 commit comments