1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
-
- /**
- * Module dependencies.
- */
-
- var fs = require('fs');
- var path = require('path');
- var assert = require('assert');
- var degenerator = require('../');
-
- describe('degenerator()', function () {
-
- describe('"expected" fixture tests', function () {
-
- fs.readdirSync(__dirname).forEach(function (n) {
- if ('test.js' == n) return;
- if (/\.expected\.js$/.test(n)) return;
- var expectedName = path.basename(n, '.js') + '.expected.js';
-
- it(n + ' → ' + expectedName, function () {
- var sourceName = path.resolve(__dirname, n);
- var compiledName = path.resolve(__dirname, expectedName);
- var js = fs.readFileSync(sourceName, 'utf8');
- var expected = fs.readFileSync(compiledName, 'utf8');
-
- // the test case can define the `names` to use as a
- // comment on the first line of the file
- var names = js.match(/\/\/\s*(.*)/);
- if (names) {
- // the comment should be a comma-separated list of function names
- names = names[1].split(/,\s*/);
- } else {
- // if no function names were passed in then convert them all
- names = [ /.*/ ];
- }
-
- var compiled = degenerator(js, names);
- assert.equal(expected.trim(), compiled.trim());
- });
- });
-
- });
-
- });
|