You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

52 lines
1.2 KiB

import fs from 'fs/promises'
import { tmpdir } from 'os'
import { join, resolve } from 'path'
const readFile = fs.readFile
const writeFile = fs.writeFile
const mkdir = fs.mkdir
import { promisify } from 'util'
import * as cp from 'child_process'
const exec = promisify(cp.exec)
export const tests = []
const name = 'verydisco-reverso'
export const setup = async () => {
const dir = tmpdir()
// check if already exists and rm?
await mkdir(`${dir}/${name}`)
return { tmpPath: `${dir}/${name}` }
}
const hasContentAndExpect = async ({ content, expect, path, eq, ctx }) => {
const scriptPath = join(resolve(), path)
await writeFile(`${ctx.tmpPath}/${name}.txt`, content, 'utf8')
const { stdout } = await exec(`node ${scriptPath} "${name}.txt"`, { cwd: ctx.tmpPath })
await exec(`rm ${name}.txt`, { cwd: ctx.tmpPath })
return eq(stdout.trim(), expect)
}
tests.push(async ({ path, eq, ctx }) =>
hasContentAndExpect({
path,
eq,
ctx,
content: `deNo si omeawes`,
expect: 'Node is awesome',
}),
)
// tests.push(async ({ path, eq, ctx }) => {
// await hasContentAndExpect({
// path,
// eq,
// ctx,
// content: // newfilename,
// expect: // reverso
// })
// })
Object.freeze(tests)