mirror of https://github.com/01-edu/public.git
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.
51 lines
1.2 KiB
51 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)
|
|
|