// This tests that it does not fail if the same directory is copied to dest // twice, when dereference is true, and force is false (fails silently). import { mustCall, mustNotMutateObjectDeep } from '../common/index.mjs'; import assert from 'node:assert'; import { cp, cpSync, lstatSync } from 'node:fs'; import { join } from 'node:path'; import { nextdir } from '../common/fs.js'; import tmpdir from '../common/tmpdir.js'; import fixtures from '../common/fixtures.js'; tmpdir.refresh(); const src = fixtures.path('copy/kitchen-sink'); const dest = nextdir(); const destFile = join(dest, 'a/b/README2.md'); cpSync(src, dest, mustNotMutateObjectDeep({ dereference: true, recursive: true })); cp(src, dest, { dereference: true, recursive: true }, mustCall((err) => { assert.strictEqual(err, null); const stat = lstatSync(destFile); assert(stat.isFile()); }));