diff --git a/packages/shared/src/atomicWrite.test.ts b/packages/shared/src/atomicWrite.test.ts index 6aec907c049ad..f0e3bc129cf0a 100644 --- a/packages/shared/src/atomicWrite.test.ts +++ b/packages/shared/src/atomicWrite.test.ts @@ -79,6 +79,21 @@ it.layer(NodeServices.layer)("writeFileStringAtomically", (it) => { }), ); + it.effect.each(HostProcess.Platform.defaultValue() === "linux" ? [255] : [])( + "saves a file whose name is %i bytes long", + (length) => + Effect.gen(function* () { + const fs = yield* FileSystem.FileSystem; + const path = yield* Path.Path; + const root = yield* fs.makeTempDirectoryScoped({ prefix: "t3-atomic-write-" }); + const filePath = path.join(root, `${"s".repeat(length - 5)}.json`); + + yield* writeFileStringAtomically({ filePath, contents: "after" }); + + assert.strictEqual(yield* fs.readFileString(filePath), "after"); + }), + ); + it.effect("keeps a dangling symlink linked and creates its destination", () => Effect.gen(function* () { const fs = yield* FileSystem.FileSystem; diff --git a/packages/shared/src/atomicWrite.ts b/packages/shared/src/atomicWrite.ts index 39904817fb673..febd1a98fbfca 100644 --- a/packages/shared/src/atomicWrite.ts +++ b/packages/shared/src/atomicWrite.ts @@ -36,7 +36,7 @@ export const writeFileStringAtomically = (input: { const tempDirectory = yield* Effect.acquireRelease( fs.makeTempDirectory({ directory: targetDirectory, - prefix: `${path.basename(targetPath)}.`, + prefix: "t3-write-", }), (directory) => fs.remove(directory, { recursive: true }).pipe(Effect.ignore({ log: true })), );