Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

71 lignes
2.3KB

  1. require('./helper');
  2. var fs = require('fs');
  3. var path = require('path');
  4. var _files = path.join(__dirname, '_files');
  5. var cliTxt = path.resolve(_files, 'cli.txt');
  6. var moduleVersion = require('../package').version;
  7. var exec = require('child_process').exec;
  8. describe('Mustache CLI', function () {
  9. var expectedOutput;
  10. before(function(done) {
  11. fs.readFile(cliTxt, function onFsEnd(err, data) {
  12. if (err) return done(err);
  13. expectedOutput = data.toString();
  14. done();
  15. });
  16. });
  17. it('writes syntax hints into stderr when runned with wrong number of arguments', function(done) {
  18. exec('bin/mustache', function(err, stdout, stderr) {
  19. assert.notEqual(stderr.indexOf('Syntax'), -1);
  20. done();
  21. });
  22. });
  23. it('writes module version into stdout when runned with --version', function(done){
  24. exec('bin/mustache --version', function(err, stdout, stderr) {
  25. assert.notEqual(stdout.indexOf(moduleVersion), -1);
  26. done();
  27. });
  28. });
  29. it('writes rendered template into stdout when successfull', function(done) {
  30. exec('bin/mustache test/_files/cli.json test/_files/cli.mustache', function(err, stdout, stderr) {
  31. assert.equal(err, null);
  32. assert.equal(stderr, '');
  33. assert.equal(stdout, expectedOutput);
  34. done();
  35. });
  36. });
  37. it('reads view data from stdin when first argument equals "-"', function(done){
  38. exec('cat test/_files/cli.json | bin/mustache - test/_files/cli.mustache', function(err, stdout, stderr) {
  39. assert.equal(err, null);
  40. assert.equal(stderr, '');
  41. assert.equal(stdout, expectedOutput);
  42. done();
  43. });
  44. });
  45. it('writes it couldnt find template into stderr when second argument doesnt resolve to a file', function(done) {
  46. exec('bin/mustache test/_files/cli.json test/_files/non-existing-template.mustache', function(err, stdout, stderr) {
  47. assert.notEqual(stderr.indexOf('Could not find file: test/_files/non-existing-template.mustache'), -1);
  48. done();
  49. });
  50. });
  51. it('writes it couldnt find view into stderr when first argument doesnt resolve to a file', function(done) {
  52. exec('bin/mustache test/_files/non-existing-view.json test/_files/cli.mustache', function(err, stdout, stderr) {
  53. assert.notEqual(stderr.indexOf('Could not find file: test/_files/non-existing-view.json'), -1);
  54. done();
  55. });
  56. });
  57. });