template.spec.js 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. const fixtureSetup = require('../fixtures/app-test-setup.js')
  2. const { resolve } = require('path')
  3. const { existsSync, readFileSync, writeFileSync } = require('fs')
  4. const { move } = require('fs-extra')
  5. const cli = require('~/main.js')
  6. const currentDirName = __dirname
  7. describe('[CLI] cli.js template', () => {
  8. it('init a project and builds it', async () => {
  9. const cwd = process.cwd()
  10. const fixturePath = resolve(currentDirName, '../fixtures/empty')
  11. const tauriFixturePath = resolve(fixturePath, 'src-tauri')
  12. const outPath = resolve(tauriFixturePath, 'target')
  13. const cacheOutPath = resolve(fixturePath, 'target')
  14. fixtureSetup.initJest('empty')
  15. process.chdir(fixturePath)
  16. const outExists = existsSync(outPath)
  17. if (outExists) {
  18. await move(outPath, cacheOutPath)
  19. }
  20. cli.run(['init', '--directory', process.cwd(), '--force', '--tauri-path', resolve(currentDirName, '../../../../../..'), '--ci'])
  21. if (outExists) {
  22. await move(cacheOutPath, outPath)
  23. }
  24. process.chdir(tauriFixturePath)
  25. const manifestPath = resolve(tauriFixturePath, 'Cargo.toml')
  26. const manifestFile = readFileSync(manifestPath).toString()
  27. writeFileSync(manifestPath, `workspace = { }\n${manifestFile}`)
  28. const configPath = resolve(tauriFixturePath, 'tauri.conf.json')
  29. const config = readFileSync(configPath).toString()
  30. writeFileSync(configPath, config.replace('com.tauri.dev', 'com.tauri.test'))
  31. cli.run(['build', '--verbose'])
  32. process.chdir(cwd)
  33. })
  34. })