| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
1 parent e6e25d6 commit feee377
2 files changed
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -1636,7 +1636,7 @@ static void RmSync(const FunctionCallbackInfo<Value>& args) { | |||
| 1636 | 1636 | env, permission::PermissionScope::kFileSystemWrite, path.ToStringView()); | |
| 1637 | 1637 | auto file_path = std::filesystem::path(path.ToStringView()); | |
| 1638 | 1638 | std::error_code error; | |
| 1639 | - auto file_status = std::filesystem::status(file_path, error); | ||
| 1639 | + auto file_status = std::filesystem::symlink_status(file_path, error); | ||
| 1640 | 1640 | ||
| 1641 | 1641 | if (file_status.type() == std::filesystem::file_type::not_found) { | |
| 1642 | 1642 | return; | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -165,10 +165,13 @@ function removeAsync(dir) { | |||
| 165 | 165 | // Should delete an invalid symlink | |
| 166 | 166 | const invalidLink = tmpdir.resolve('invalid-link-async'); | |
| 167 | 167 | fs.symlinkSync('definitely-does-not-exist-async', invalidLink); | |
| 168 | + assert.ok(fs.lstatSync(invalidLink).isSymbolicLink()); | ||
| 169 | + // `existsSync()` follows symlinks, so this confirms the target does not exist. | ||
| 170 | + assert.strictEqual(fs.existsSync(invalidLink), false); | ||
| 168 | 171 | fs.rm(invalidLink, common.mustNotMutateObjectDeep({ recursive: true }), common.mustCall((err) => { | |
| 169 | 172 | try { | |
| 170 | 173 | assert.strictEqual(err, null); | |
| 171 | - assert.strictEqual(fs.existsSync(invalidLink), false); | ||
| 174 | + assert.throws(() => fs.lstatSync(invalidLink), { code: 'ENOENT' }); | ||
| 172 | 175 | } finally { | |
| 173 | 176 | fs.rmSync(invalidLink, common.mustNotMutateObjectDeep({ force: true })); | |
| 174 | 177 | } | |
@@ -247,11 +250,14 @@ if (isGitPresent) { | |||
| 247 | 250 | } | |
| 248 | 251 | ||
| 249 | 252 | // Should delete an invalid symlink | |
| 253 | + // Refs: https://github.com/nodejs/node/issues/61020 | ||
| 250 | 254 | const invalidLink = tmpdir.resolve('invalid-link'); | |
| 251 | 255 | fs.symlinkSync('definitely-does-not-exist', invalidLink); | |
| 256 | + assert.ok(fs.lstatSync(invalidLink).isSymbolicLink()); | ||
| 257 | + assert.strictEqual(fs.existsSync(invalidLink), false); | ||
| 252 | 258 | try { | |
| 253 | 259 | fs.rmSync(invalidLink); | |
| 254 | - assert.strictEqual(fs.existsSync(invalidLink), false); | ||
| 260 | + assert.throws(() => fs.lstatSync(invalidLink), { code: 'ENOENT' }); | ||
| 255 | 261 | } finally { | |
| 256 | 262 | fs.rmSync(invalidLink, common.mustNotMutateObjectDeep({ force: true })); | |
| 257 | 263 | } | |
@@ -355,9 +361,11 @@ if (isGitPresent) { | |||
| 355 | 361 | // Should delete an invalid symlink | |
| 356 | 362 | const invalidLink = tmpdir.resolve('invalid-link-prom'); | |
| 357 | 363 | fs.symlinkSync('definitely-does-not-exist-prom', invalidLink); | |
| 364 | + assert.ok(fs.lstatSync(invalidLink).isSymbolicLink()); | ||
| 365 | + assert.strictEqual(fs.existsSync(invalidLink), false); | ||
| 358 | 366 | try { | |
| 359 | 367 | await fs.promises.rm(invalidLink); | |
| 360 | - assert.strictEqual(fs.existsSync(invalidLink), false); | ||
| 368 | + assert.throws(() => fs.lstatSync(invalidLink), { code: 'ENOENT' }); | ||
| 361 | 369 | } finally { | |
| 362 | 370 | fs.rmSync(invalidLink, common.mustNotMutateObjectDeep({ force: true })); | |
| 363 | 371 | } | |
| Back | FazBrowse Home | New Git URL |
0 commit comments