template.spec.js 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. // Copyright 2019-2024 Tauri Programme within The Commons Conservancy
  2. // SPDX-License-Identifier: Apache-2.0
  3. // SPDX-License-Identifier: MIT
  4. const fixtureSetup = require('../fixtures/app-test-setup.js')
  5. const { resolve } = require('path')
  6. const { existsSync, readFileSync, writeFileSync, rmSync } = require('fs')
  7. const { move } = require('fs-extra')
  8. const cli = require('~/main.js')
  9. const currentDirName = __dirname
  10. describe('[CLI] @tauri-apps/cli template', () => {
  11. it('init a project and builds it', async () => {
  12. const cwd = process.cwd()
  13. const fixturePath = resolve(currentDirName, '../fixtures/empty')
  14. const tauriFixturePath = resolve(fixturePath, 'src-tauri')
  15. const outPath = resolve(tauriFixturePath, 'target')
  16. const cacheOutPath = resolve(fixturePath, 'target')
  17. fixtureSetup.initJest('empty')
  18. process.chdir(fixturePath)
  19. const outExists = existsSync(outPath)
  20. if (outExists) {
  21. if (existsSync(cacheOutPath)) {
  22. rmSync(cacheOutPath, { recursive: true, force: true })
  23. }
  24. await move(outPath, cacheOutPath)
  25. }
  26. await cli.run([
  27. 'init',
  28. '--directory',
  29. process.cwd(),
  30. '--force',
  31. '--tauri-path',
  32. resolve(currentDirName, '../../../../..'),
  33. '--before-build-command',
  34. '',
  35. '--before-dev-command',
  36. '',
  37. '--ci'
  38. ])
  39. if (outExists) {
  40. await move(cacheOutPath, outPath)
  41. }
  42. process.chdir(tauriFixturePath)
  43. const manifestPath = resolve(tauriFixturePath, 'Cargo.toml')
  44. const manifestFile = readFileSync(manifestPath).toString()
  45. writeFileSync(manifestPath, `workspace = { }\n${manifestFile}`)
  46. const configPath = resolve(tauriFixturePath, 'tauri.conf.json')
  47. const config = readFileSync(configPath).toString()
  48. writeFileSync(configPath, config.replace('com.tauri.dev', 'com.tauri.test'))
  49. await cli.run(['build', '--verbose'])
  50. process.chdir(cwd)
  51. })
  52. })