43b0529557
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
79 lines
2.5 KiB
TypeScript
79 lines
2.5 KiB
TypeScript
import { describe, expect, it } from "bun:test"
|
|
|
|
import type { FsyncSkipEntry } from "./fsync-skip-tracker"
|
|
import { formatFsyncSkipWarning } from "./fsync-skip-warning-formatter"
|
|
|
|
function makeEntry(index: number, classification: FsyncSkipEntry["pathClassification"]): FsyncSkipEntry {
|
|
return {
|
|
filePath: `/path/${index}`,
|
|
contextLabel: `atomicWrite:/path/${index}`,
|
|
errorCode: "EPERM",
|
|
message: "operation not permitted",
|
|
pathClassification: classification,
|
|
timestamp: 1000 + index,
|
|
}
|
|
}
|
|
|
|
describe("formatFsyncSkipWarning", () => {
|
|
it("returns empty string for zero entries", () => {
|
|
expect(formatFsyncSkipWarning([])).toBe("")
|
|
})
|
|
|
|
it("includes iCloud environment, path, and code for one entry", () => {
|
|
const warning = formatFsyncSkipWarning([makeEntry(1, "icloud")])
|
|
expect(warning).toContain("iCloud Drive")
|
|
expect(warning).toContain("/path/1")
|
|
expect(warning).toContain("EPERM")
|
|
})
|
|
|
|
it("shows all five paths when exactly five entries exist", () => {
|
|
const warning = formatFsyncSkipWarning([
|
|
makeEntry(1, "icloud"),
|
|
makeEntry(2, "icloud"),
|
|
makeEntry(3, "icloud"),
|
|
makeEntry(4, "icloud"),
|
|
makeEntry(5, "icloud"),
|
|
])
|
|
|
|
expect(warning).toContain("/path/1")
|
|
expect(warning).toContain("/path/5")
|
|
expect(warning).not.toContain("and 1 more")
|
|
})
|
|
|
|
it("shows five paths plus overflow summary when six entries exist", () => {
|
|
const warning = formatFsyncSkipWarning([
|
|
makeEntry(1, "icloud"),
|
|
makeEntry(2, "icloud"),
|
|
makeEntry(3, "icloud"),
|
|
makeEntry(4, "icloud"),
|
|
makeEntry(5, "icloud"),
|
|
makeEntry(6, "icloud"),
|
|
])
|
|
|
|
expect(warning).toContain("/path/5")
|
|
expect(warning).not.toContain("/path/6")
|
|
expect(warning).toContain("... and 1 more")
|
|
})
|
|
|
|
it("uses the most common classification when entries are mixed", () => {
|
|
const warning = formatFsyncSkipWarning([
|
|
makeEntry(1, "onedrive"),
|
|
makeEntry(2, "onedrive"),
|
|
makeEntry(3, "icloud"),
|
|
])
|
|
|
|
expect(warning).toContain("Detected environment: OneDrive")
|
|
})
|
|
|
|
it("matches required section format", () => {
|
|
const warning = formatFsyncSkipWarning([makeEntry(1, "unknown")])
|
|
|
|
expect(warning).toContain("[fsync-skipped] 1 write(s) bypassed fsync")
|
|
expect(warning).toContain("Affected paths:")
|
|
expect(warning).toContain("What this means:")
|
|
expect(warning).toContain("The write+rename succeeded")
|
|
expect(warning).not.toContain("Detected environment:")
|
|
expect(warning).toContain("filesystem does not support fsync")
|
|
})
|
|
})
|