Files
e2b-dev--e2b/packages/js-sdk/tests/sandbox/files/contentEncoding.test.ts
T
2026-07-13 12:47:58 +08:00

95 lines
2.4 KiB
TypeScript

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)
}
}
)