From 32c820fe8f194975b69648b0adec732740cb7f53 Mon Sep 17 00:00:00 2001 From: Patrick Steele-Idem Date: Thu, 30 Jun 2016 16:02:26 -0600 Subject: [PATCH] Added tests for markoc --- .../markoc/clean-dir/template1.marko | 1 + .../markoc/clean-dir/template2.marko | 1 + test/autotests/markoc/clean-dir/test.js | 15 ++++++++ .../markoc/compile-dir-no-template/test.js | 7 ++++ .../markoc/compile-dir/template1.marko | 1 + .../markoc/compile-dir/template2.marko | 1 + test/autotests/markoc/compile-dir/test.js | 11 ++++++ .../markoc/multiple-dirs/a/template.marko | 1 + .../markoc/multiple-dirs/b/template.marko | 1 + .../multiple-dirs/excluded/template.marko | 1 + test/autotests/markoc/multiple-dirs/test.js | 13 +++++++ .../markoc/single-template/template.marko | 1 + test/autotests/markoc/single-template/test.js | 8 +++++ test/autotests/markoc/usage/test.js | 9 +++++ test/markoc-tests.js | 36 +++++++++++++++++++ 15 files changed, 107 insertions(+) create mode 100644 test/autotests/markoc/clean-dir/template1.marko create mode 100644 test/autotests/markoc/clean-dir/template2.marko create mode 100644 test/autotests/markoc/clean-dir/test.js create mode 100644 test/autotests/markoc/compile-dir-no-template/test.js create mode 100644 test/autotests/markoc/compile-dir/template1.marko create mode 100644 test/autotests/markoc/compile-dir/template2.marko create mode 100644 test/autotests/markoc/compile-dir/test.js create mode 100644 test/autotests/markoc/multiple-dirs/a/template.marko create mode 100644 test/autotests/markoc/multiple-dirs/b/template.marko create mode 100644 test/autotests/markoc/multiple-dirs/excluded/template.marko create mode 100644 test/autotests/markoc/multiple-dirs/test.js create mode 100644 test/autotests/markoc/single-template/template.marko create mode 100644 test/autotests/markoc/single-template/test.js create mode 100644 test/autotests/markoc/usage/test.js create mode 100644 test/markoc-tests.js diff --git a/test/autotests/markoc/clean-dir/template1.marko b/test/autotests/markoc/clean-dir/template1.marko new file mode 100644 index 000000000..eabd502aa --- /dev/null +++ b/test/autotests/markoc/clean-dir/template1.marko @@ -0,0 +1 @@ +- Hello ${data.name}! \ No newline at end of file diff --git a/test/autotests/markoc/clean-dir/template2.marko b/test/autotests/markoc/clean-dir/template2.marko new file mode 100644 index 000000000..eabd502aa --- /dev/null +++ b/test/autotests/markoc/clean-dir/template2.marko @@ -0,0 +1 @@ +- Hello ${data.name}! \ No newline at end of file diff --git a/test/autotests/markoc/clean-dir/test.js b/test/autotests/markoc/clean-dir/test.js new file mode 100644 index 000000000..da334015e --- /dev/null +++ b/test/autotests/markoc/clean-dir/test.js @@ -0,0 +1,15 @@ +var expect = require('chai').expect; + +exports.test = function(helpers) { + + helpers.spawnSync(['template1.marko']); + helpers.spawnSync(['template2.marko']); + + expect(helpers.existsSync('template1.marko.js')).to.equal(true); + expect(helpers.existsSync('template2.marko.js')).to.equal(true); + + helpers.spawnSync(['.', '--clean']); + + expect(helpers.existsSync('template1.marko.js')).to.equal(false); + expect(helpers.existsSync('template2.marko.js')).to.equal(false); +}; \ No newline at end of file diff --git a/test/autotests/markoc/compile-dir-no-template/test.js b/test/autotests/markoc/compile-dir-no-template/test.js new file mode 100644 index 000000000..80c2f63e1 --- /dev/null +++ b/test/autotests/markoc/compile-dir-no-template/test.js @@ -0,0 +1,7 @@ +var expect = require('chai').expect; + +exports.test = function(helpers) { + var result = helpers.spawnSync(['.'], { encoding: 'utf8' }); + + expect(result.stdout).to.contain('No templates found'); +}; \ No newline at end of file diff --git a/test/autotests/markoc/compile-dir/template1.marko b/test/autotests/markoc/compile-dir/template1.marko new file mode 100644 index 000000000..eabd502aa --- /dev/null +++ b/test/autotests/markoc/compile-dir/template1.marko @@ -0,0 +1 @@ +- Hello ${data.name}! \ No newline at end of file diff --git a/test/autotests/markoc/compile-dir/template2.marko b/test/autotests/markoc/compile-dir/template2.marko new file mode 100644 index 000000000..eabd502aa --- /dev/null +++ b/test/autotests/markoc/compile-dir/template2.marko @@ -0,0 +1 @@ +- Hello ${data.name}! \ No newline at end of file diff --git a/test/autotests/markoc/compile-dir/test.js b/test/autotests/markoc/compile-dir/test.js new file mode 100644 index 000000000..cd0b1a00a --- /dev/null +++ b/test/autotests/markoc/compile-dir/test.js @@ -0,0 +1,11 @@ +var expect = require('chai').expect; + +exports.test = function(helpers) { + expect(helpers.existsSync('template1.marko.js')).to.equal(false); + expect(helpers.existsSync('template2.marko.js')).to.equal(false); + + helpers.spawnSync(['.']); + + expect(helpers.existsSync('template1.marko.js')).to.equal(true); + expect(helpers.existsSync('template2.marko.js')).to.equal(true); +}; \ No newline at end of file diff --git a/test/autotests/markoc/multiple-dirs/a/template.marko b/test/autotests/markoc/multiple-dirs/a/template.marko new file mode 100644 index 000000000..eabd502aa --- /dev/null +++ b/test/autotests/markoc/multiple-dirs/a/template.marko @@ -0,0 +1 @@ +- Hello ${data.name}! \ No newline at end of file diff --git a/test/autotests/markoc/multiple-dirs/b/template.marko b/test/autotests/markoc/multiple-dirs/b/template.marko new file mode 100644 index 000000000..eabd502aa --- /dev/null +++ b/test/autotests/markoc/multiple-dirs/b/template.marko @@ -0,0 +1 @@ +- Hello ${data.name}! \ No newline at end of file diff --git a/test/autotests/markoc/multiple-dirs/excluded/template.marko b/test/autotests/markoc/multiple-dirs/excluded/template.marko new file mode 100644 index 000000000..eabd502aa --- /dev/null +++ b/test/autotests/markoc/multiple-dirs/excluded/template.marko @@ -0,0 +1 @@ +- Hello ${data.name}! \ No newline at end of file diff --git a/test/autotests/markoc/multiple-dirs/test.js b/test/autotests/markoc/multiple-dirs/test.js new file mode 100644 index 000000000..0acd8a536 --- /dev/null +++ b/test/autotests/markoc/multiple-dirs/test.js @@ -0,0 +1,13 @@ +var expect = require('chai').expect; + +exports.test = function(helpers) { + expect(helpers.existsSync('a/template.marko.js')).to.equal(false); + expect(helpers.existsSync('b/template.marko.js')).to.equal(false); + expect(helpers.existsSync('excluded/template.marko.js')).to.equal(false); + + helpers.spawnSync(['a', 'b']); + + expect(helpers.existsSync('a/template.marko.js')).to.equal(true); + expect(helpers.existsSync('b/template.marko.js')).to.equal(true); + expect(helpers.existsSync('excluded/template.marko.js')).to.equal(false); +}; \ No newline at end of file diff --git a/test/autotests/markoc/single-template/template.marko b/test/autotests/markoc/single-template/template.marko new file mode 100644 index 000000000..eabd502aa --- /dev/null +++ b/test/autotests/markoc/single-template/template.marko @@ -0,0 +1 @@ +- Hello ${data.name}! \ No newline at end of file diff --git a/test/autotests/markoc/single-template/test.js b/test/autotests/markoc/single-template/test.js new file mode 100644 index 000000000..06025e303 --- /dev/null +++ b/test/autotests/markoc/single-template/test.js @@ -0,0 +1,8 @@ +var expect = require('chai').expect; + +exports.test = function(helpers) { + expect(helpers.existsSync('template.marko.js')).to.equal(false); + var result = helpers.spawnSync(['template.marko']); + expect(helpers.existsSync('template.marko.js')).to.equal(true); + expect(result.status).to.equal(0); +}; \ No newline at end of file diff --git a/test/autotests/markoc/usage/test.js b/test/autotests/markoc/usage/test.js new file mode 100644 index 000000000..5ae6c21b8 --- /dev/null +++ b/test/autotests/markoc/usage/test.js @@ -0,0 +1,9 @@ +var expect = require('chai').expect; + +exports.test = function(helpers) { + var result = helpers.spawnSync([], { + encoding: 'utf8' + }); + + expect(result.stdout).to.contain('Usage: markoc'); +}; \ No newline at end of file diff --git a/test/markoc-tests.js b/test/markoc-tests.js new file mode 100644 index 000000000..796258e8e --- /dev/null +++ b/test/markoc-tests.js @@ -0,0 +1,36 @@ +'use strict'; +require('./patch-module'); +require('marko/node-require').install(); + +var chai = require('chai'); +chai.config.includeStack = true; + +var nodePath = require('path'); +require('../compiler'); +var autotest = require('./autotest'); +var markocPath = require.resolve('../bin/markoc'); +var childProcess = require('child_process'); +var fs = require('fs'); + +describe('markoc' , function() { + var autoTestDir = nodePath.join(__dirname, 'autotests/markoc'); + + autotest.scanDir(autoTestDir, function run(dir, helpers, done) { + var testModule = require(nodePath.join(dir, 'test.js')); + helpers.existsSync = function(filename) { + return fs.existsSync(nodePath.join(dir, filename)); + }; + helpers.spawnSync = function(args, options) { + options = options || {}; + if (!options.cwd) { + options.cwd = dir; + } + return childProcess.spawnSync(markocPath, args, options); + }; + + helpers.spawnSync(['.', '--clean']); + + testModule.test(helpers); + done(); + }); +});