nsis-gen.js 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  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. modern: true,
  16. languages: [ 'English' ],
  17. // FIXME: TradChinese is missing and SimpChinese becomes the default language, what happens?
  18. //languages: [ 'English', 'SimpChinese', 'TradChinese' ],
  19. };
  20. test('build', async (t) => {
  21. const output = await tmpName({
  22. postfix: '.exe',
  23. });
  24. const data = await (new NsisComposer(Object.assign({}, options, {
  25. output,
  26. })))
  27. .make();
  28. const script = await tmpName({
  29. postfix: '.nsi',
  30. });
  31. await writeFileAsync(script, data);
  32. await nsisBuild('./src/', script);
  33. await removeAsync(output);
  34. await removeAsync(script);
  35. });
  36. test('diff', async (t) => {
  37. const output = await tmpName({
  38. postfix: '.exe',
  39. });
  40. const data = await (new NsisDiffer('./src/', './dist/', Object.assign({}, options, {
  41. output,
  42. })))
  43. .make();
  44. const script = await tmpName({
  45. postfix: '.nsi',
  46. });
  47. await writeFileAsync(script, data);
  48. await nsisBuild('./dist/', script);
  49. await removeAsync(output);
  50. await removeAsync(script);
  51. });