95 lines
2.4 KiB
TypeScript
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)
|
|
}
|
|
}
|
|
)
|