biodsbench-adapter / src /harness /evaluation /sourcePublicIntegrity.test.ts
starpacker52's picture
Add files using upload-large-folder tool
94e3086 verified
Raw
History Blame Contribute Delete
3.46 kB
import { existsSync } from 'fs'
import { mkdir, mkdtemp, readFile, symlink, unlink, writeFile } from 'fs/promises'
import { join } from 'path'
import { tmpdir } from 'os'
import { describe, expect, test } from 'bun:test'
import {
diffPublicSnapshots,
restorePublicSnapshotMutations,
takePublicSnapshot,
} from './sourcePublicIntegrity.js'
describe('source public integrity guard', () => {
test('snapshots symlinked runtime directories without reading them as files', async () => {
const tempDir = await mkdtemp(join(tmpdir(), 'source-public-symlink-'))
const publicDir = join(tempDir, 'public')
const runtimeDir = join(tempDir, 'runtime')
await mkdir(join(publicDir, 'envs'), { recursive: true })
await mkdir(runtimeDir, { recursive: true })
await writeFile(join(runtimeDir, 'python'), 'runtime binary placeholder')
await symlink(
runtimeDir,
join(publicDir, 'envs', 'runtime'),
process.platform === 'win32' ? 'junction' : 'dir',
)
const snapshot = await takePublicSnapshot(publicDir, {
includeFileContents: true,
})
expect(snapshot.get('envs/runtime')?.entry_type).toBe('dir')
expect(snapshot.has('envs/runtime/python')).toBe(false)
})
test('detects created and modified files under public', async () => {
const publicDir = await mkdtemp(join(tmpdir(), 'source-public-'))
await mkdir(join(publicDir, 'visible_data', 'cases', 'case_000', 'input_data'), {
recursive: true,
})
const rawPath = join(
publicDir,
'visible_data',
'cases',
'case_000',
'input_data',
'raw_data.npz',
)
const metaPath = join(
publicDir,
'visible_data',
'cases',
'case_000',
'input_data',
'meta.txt',
)
await writeFile(rawPath, 'before')
await writeFile(metaPath, 'metadata')
const before = await takePublicSnapshot(publicDir, { includeFileContents: true })
await mkdir(join(publicDir, 'visible_data', 'cases', 'case_000', 'input_data', 'workspace'), {
recursive: true,
})
await writeFile(rawPath, 'after')
await unlink(metaPath)
const after = await takePublicSnapshot(publicDir, { includeFileContents: true })
const mutations = diffPublicSnapshots(before, after)
expect(mutations).toContainEqual({
type: 'created',
path: 'visible_data/cases/case_000/input_data/workspace',
entry_type: 'dir',
})
expect(mutations).toContainEqual({
type: 'modified',
path: 'visible_data/cases/case_000/input_data/raw_data.npz',
entry_type: 'file',
})
expect(mutations).toContainEqual({
type: 'deleted',
path: 'visible_data/cases/case_000/input_data/meta.txt',
entry_type: 'file',
})
const restoreResult = await restorePublicSnapshotMutations(publicDir, before, mutations)
expect(restoreResult.removedCreatedPaths).toContain(
'visible_data/cases/case_000/input_data/workspace',
)
expect(
existsSync(join(publicDir, 'visible_data', 'cases', 'case_000', 'input_data', 'workspace')),
).toBe(false)
expect(restoreResult.restoredPaths).toContain(
'visible_data/cases/case_000/input_data/raw_data.npz',
)
expect(restoreResult.restoredPaths).toContain(
'visible_data/cases/case_000/input_data/meta.txt',
)
expect(await readFile(rawPath, 'utf8')).toBe('before')
expect(await readFile(metaPath, 'utf8')).toBe('metadata')
})
})