chore: import upstream snapshot with attribution
This commit is contained in:
@@ -0,0 +1,94 @@
|
||||
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)
|
||||
}
|
||||
}
|
||||
)
|
||||
Reference in New Issue
Block a user