test: cover overlay cleanup refusal cases

Co-authored-by: Orca <help@stably.ai>
This commit is contained in:
Jinwoo-H
2026-05-30 08:02:15 -07:00
co-authored by Orca
parent 236783c5d4
commit 843352a40f
+30
View File
@@ -28,4 +28,34 @@ describe('safeRemoveOverlay', () => {
expect(existsSync(overlayDir)).toBe(false)
expect(warnSpy).not.toHaveBeenCalled()
})
it('refuses to remove the overlay root itself', async () => {
const root = await mkdtemp(join(tmpdir(), 'orca-overlay-root-'))
tempRoots.push(root)
const marker = join(root, 'marker.txt')
writeFileSync(marker, 'root')
const warnSpy = vi.spyOn(console, 'warn').mockImplementation(() => {})
safeRemoveOverlay(root, root)
expect(existsSync(marker)).toBe(true)
expect(warnSpy).toHaveBeenCalledOnce()
})
it('refuses parent traversal outside the overlay root', async () => {
const parent = await mkdtemp(join(tmpdir(), 'orca-overlay-parent-'))
tempRoots.push(parent)
const root = join(parent, 'root')
const outside = join(parent, 'outside')
mkdirSync(root)
mkdirSync(outside)
const marker = join(outside, 'marker.txt')
writeFileSync(marker, 'outside')
const warnSpy = vi.spyOn(console, 'warn').mockImplementation(() => {})
safeRemoveOverlay(join(root, '..', 'outside'), root)
expect(existsSync(marker)).toBe(true)
expect(warnSpy).toHaveBeenCalledOnce()
})
})