@@ -84,6 +84,20 @@ test('writes simple file (async)', function (t) {
84
84
} )
85
85
} )
86
86
87
+ test ( 'writes to symlinks without clobbering (async)' , function ( t ) {
88
+ t . plan ( 5 )
89
+ var file = tmpFile ( )
90
+ var link = tmpFile ( )
91
+ fs . writeFileSync ( file , '42' )
92
+ fs . symlinkSync ( file , link )
93
+ didWriteFileAtomic ( t , currentUser ( ) , link , '43' , function ( err ) {
94
+ t . ifError ( err , 'no error' )
95
+ t . is ( readFile ( file ) , '43' , 'target content ok' )
96
+ t . is ( readFile ( link ) , '43' , 'link content ok' )
97
+ t . ok ( fs . lstatSync ( link ) . isSymbolicLink ( ) , 'link is link' )
98
+ } )
99
+ } )
100
+
87
101
test ( 'runs chown on given file (async)' , function ( t ) {
88
102
var file = tmpFile ( )
89
103
didWriteFileAtomic ( t , { uid : 42 , gid : 43 } , file , '42' , { chown : { uid : 42 , gid : 43 } } , function ( err ) {
@@ -156,6 +170,18 @@ test('writes simple file (sync)', function (t) {
156
170
t . is ( readFile ( file ) , '42' )
157
171
} )
158
172
173
+ test ( 'writes to symlinks without clobbering (sync)' , function ( t ) {
174
+ t . plan ( 4 )
175
+ var file = tmpFile ( )
176
+ var link = tmpFile ( )
177
+ fs . writeFileSync ( file , '42' )
178
+ fs . symlinkSync ( file , link )
179
+ didWriteFileAtomicSync ( t , currentUser ( ) , link , '43' )
180
+ t . is ( readFile ( file ) , '43' , 'target content ok' )
181
+ t . is ( readFile ( link ) , '43' , 'link content ok' )
182
+ t . ok ( fs . lstatSync ( link ) . isSymbolicLink ( ) , 'link is link' )
183
+ } )
184
+
159
185
test ( 'runs chown on given file (sync)' , function ( t ) {
160
186
t . plan ( 1 )
161
187
var file = tmpFile ( )
0 commit comments