diff --git a/cli/tauri.js/test/jest/fixtures/app/index.js b/cli/tauri.js/test/jest/fixtures/app/index.js new file mode 100644 index 000000000..05d17c7ae --- /dev/null +++ b/cli/tauri.js/test/jest/fixtures/app/index.js @@ -0,0 +1,54 @@ +const express = require('express') +const cors = require('cors') +const app = express() +app.use(cors()) +app.use(express.json()) +const port = 7000 +let appPid + +app.post('/reply', (req, res) => { + if (req.body && req.body.msg !== 'TEST') { + throw new Error(`unexpected reply ${JSON.stringify(req.body)}`) + } + console.log('App event replied') + exit(0) +}) + +const server = app.listen(port, () => console.log(`Test listening on port ${port}!`)) + +const exit = code => { + server.close() + process.kill(appPid) + process.exit(code) +} + +const path = require('path') +const dist = path.resolve(__dirname, 'dist') + +const build = require('../cli/tauri.js/dist/api/build') +build({ + build: { + devPath: dist + }, + ctx: { + debug: true + }, + tauri: { + embeddedServer: { + active: true + } + } +}).then(() => { + const spawn = require('../cli/tauri.js/dist/helpers/spawn').spawn + const artifactPath = path.resolve(__dirname, 'src-tauri/target/debug/app') + appPid = spawn( + process.platform === 'win32' ? `${artifactPath}.exe` : artifactPath.replace('debug/app', 'debug/./app'), + [], + null + ) + + // if it didn't reply, throw an error + setTimeout(() => { + throw new Error("App didn't reply") + }, 2000) +})