nsis-gen.js 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. import { test } from 'ava';
  2. import { writeFileAsync, removeAsync } from 'fs-extra-promise';
  3. import { NsisComposer, NsisDiffer, nsisBuild } from '../dist/lib/nsis-gen';
  4. import { tmpName, tmpFile, tmpDir } from '../dist/lib/util';
  5. const options = {
  6. // Basic.
  7. appName: 'Project',
  8. companyName: 'evshiron',
  9. description: 'description',
  10. version: '0.1.0.0',
  11. copyright: 'copyright',
  12. // Compression.
  13. compression: 'lzma',
  14. solid: true,
  15. languages: [ 'English' ],
  16. // FIXME: TradChinese is missing and SimpChinese becomes the default language, what happens?
  17. //languages: [ 'English', 'SimpChinese', 'TradChinese' ],
  18. };
  19. test('build', async (t) => {
  20. const output = await tmpName({
  21. postfix: '.exe',
  22. });
  23. const data = await (new NsisComposer(Object.assign({}, options, {
  24. output,
  25. })))
  26. .make();
  27. const script = await tmpName({
  28. postfix: '.nsi',
  29. });
  30. await writeFileAsync(script, data);
  31. await nsisBuild('./src/', script);
  32. await removeAsync(output);
  33. await removeAsync(script);
  34. });
  35. test('diff', async (t) => {
  36. const output = await tmpName({
  37. postfix: '.exe',
  38. });
  39. const data = await (new NsisDiffer('./src/', './dist/', Object.assign({}, options, {
  40. output,
  41. })))
  42. .make();
  43. const script = await tmpName({
  44. postfix: '.nsi',
  45. });
  46. await writeFileAsync(script, data);
  47. await nsisBuild('./dist/', script);
  48. await removeAsync(output);
  49. await removeAsync(script);
  50. });