diff --git a/packages/cli/tests/e2e/dev.cjs b/packages/cli/tests/e2e/dev.cjs index 8ff33f17f..fe6d3985e 100644 --- a/packages/cli/tests/e2e/dev.cjs +++ b/packages/cli/tests/e2e/dev.cjs @@ -2,6 +2,7 @@ const { spawn } = require('child_process') const path = require('path') function dev () { + return new Promise((resolve) => { const spawned = spawn('node', [ path.join(__dirname, '../../dist/cli.js'), 'dev', @@ -24,7 +25,7 @@ function dev () { console.log('Server started successfully!') spawned.kill() - process.exit() + resolve() } }) @@ -45,6 +46,7 @@ function dev () { process.exit(1) }, 30000) + }) } module.exports = dev diff --git a/packages/cli/tests/e2e/run.cjs b/packages/cli/tests/e2e/run.cjs new file mode 100644 index 000000000..eff5ac33e --- /dev/null +++ b/packages/cli/tests/e2e/run.cjs @@ -0,0 +1,11 @@ +const { spawnSync } = require('child_process') +const { writeFileSync } = require('fs') + +export default function run () { + writeFileSync('queries/nested/source.yml', 'type: duckdb') + writeFileSync('queries/nested/titles.csv', 'title\nHello, World!') + writeFileSync('queries/nested/sql/test.sql', "SELECT * FROM read_csv_auto('queries/nested/titles.csv') LIMIT 1") + + spawnSync('npm', ['install', '--save', '@latitude-data/duckdb-connector']) + spawnSync('latitude', ['run', 'queries/nested/sql/test.sql']) +} diff --git a/packages/cli/tests/e2e/start.cjs b/packages/cli/tests/e2e/start.cjs index f8c7333f8..20fa9884f 100644 --- a/packages/cli/tests/e2e/start.cjs +++ b/packages/cli/tests/e2e/start.cjs @@ -1,3 +1,4 @@ +const run = require('./run.cjs') const dev = require('./dev.cjs') const path = require('path') const { spawn, spawnSync } = require('child_process') @@ -22,16 +23,17 @@ const spawned = spawn('node', [ '--template', 'default', '--verbose' -]) +], { stdio: 'inherit' }) -spawned.stdout.pipe(process.stdout) -spawned.stderr.pipe(process.stderr) -spawned.on('close', function (code) { +spawned.on('close', async (code) => { if (code !== 0) process.exit(code) ok = true - dev() + await dev() + run() + + process.exit() }) spawned.on('error', function (error) {