import { assert } from 'vitest' import { WriteEntry } from '../../../src/sandbox/filesystem' import { isDebug, sandboxTest } from '../../setup.js' sandboxTest( 'write and read file with gzip content encoding', async ({ sandbox }) => { const filename = 'test_gzip_write.txt' const content = 'This is a test file with gzip encoding.' const info = await sandbox.files.write(filename, content, { gzip: true, }) assert.equal(info.name, filename) assert.equal(info.type, 'file') assert.equal(info.path, `/home/user/${filename}`) const readContent = await sandbox.files.read(filename, { gzip: true, }) assert.equal(readContent, content) if (isDebug) { await sandbox.files.remove(filename) } } ) sandboxTest( 'write with gzip and read without encoding', async ({ sandbox }) => { const filename = 'test_gzip_write_plain_read.txt' const content = 'Written with gzip, read without.' await sandbox.files.write(filename, content, { gzip: true, }) const readContent = await sandbox.files.read(filename) assert.equal(readContent, content) if (isDebug) { await sandbox.files.remove(filename) } } ) sandboxTest('writeFiles with gzip content encoding', async ({ sandbox }) => { const files: WriteEntry[] = [ { path: 'gzip_multi_1.txt', data: 'File 1 content' }, { path: 'gzip_multi_2.txt', data: 'File 2 content' }, { path: 'gzip_multi_3.txt', data: 'File 3 content' }, ] const infos = await sandbox.files.writeFiles(files, { gzip: true, }) assert.equal(infos.length, files.length) for (let i = 0; i < files.length; i++) { const readContent = await sandbox.files.read(files[i].path) assert.equal(readContent, files[i].data) } if (isDebug) { for (const file of files) { await sandbox.files.remove(file.path) } } }) sandboxTest( 'read file as bytes with gzip content encoding', async ({ sandbox }) => { const filename = 'test_gzip_bytes.txt' const content = 'Binary content with gzip.' await sandbox.files.write(filename, content) const readBytes = await sandbox.files.read(filename, { format: 'bytes', gzip: true, }) assert.instanceOf(readBytes, Uint8Array) const decoded = new TextDecoder().decode(readBytes) assert.equal(decoded, content) if (isDebug) { await sandbox.files.remove(filename) } } )