| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- 'use strict';
- /*jshint asi: true*/
- // applying redeyed to a bunch of files of contained libraries as a smoke test
- var test = require('tap').test
- , path = require('path')
- , fs = require('fs')
- , readdirp = require('readdirp')
- , redeyed = require('..')
- , esprima = require('esprima')
- , node_modules = path.join(__dirname, '..', 'node_modules')
- , tapdir = path.join(node_modules, 'tap')
- , esprimadir = path.join(node_modules, 'esprima')
- test('tap', function (t) {
- var invalidTapFiles = [
- , 'slide/lib/async-map-ordered.js'
- ]
- function shouldProcess (path) {
- var include = true
- invalidTapFiles.every(function (entry) {
- return include = (path.indexOf(entry) < 0)
- });
- return include
- }
- function containsVarKeyword(code) {
- code = code.replace(/^#!([^\r\n]+)/, function(match, captured) { return "//" + captured; });
- return esprima.tokenize(code).some(function (t) {
- return t.type === 'Keyword' && t.value === 'var'
- })
- }
- readdirp({ root: tapdir, fileFilter: '*.js' })
- .on('data', function (entry) {
- var code = fs.readFileSync(entry.fullPath, 'utf-8')
- if (!shouldProcess(entry.fullPath) || !containsVarKeyword(code)) return
- var resultAst = redeyed(code, { Keyword: { 'var': '+:-' } }, { buildAst: true }).code
- , resultTokenize = redeyed(code, { Keyword: { 'var': '+:-' } }, { buildAst: false }).code
- t.assert(~resultAst.indexOf('+var-') || !(~resultAst.indexOf('var ')), 'redeyed ' + entry.path)
- t.assert(~resultTokenize.indexOf('+var-') || !(~resultTokenize.indexOf('var ')), 'redeyed ' + entry.path)
- })
- .on('end', t.end.bind(t))
- })
- test('esprima', function (t) {
- readdirp({ root: esprimadir, fileFilter: '*.js' })
- .on('data', function (entry) {
- var code = fs.readFileSync(entry.fullPath, 'utf-8')
- , resultAst = redeyed(code, { Keyword: { 'var': '+:-' } }, { buildAst: true }).code
- , resultTokenize = redeyed(code, { Keyword: { 'var': '+:-' } }, { buildAst: false }).code
- t.assert(~resultAst.indexOf('+var-') || !(~resultAst.indexOf('var ')), 'redeyed ' + entry.path)
- t.assert(~resultTokenize.indexOf('+var-') || !(~resultTokenize.indexOf('var ')), 'redeyed ' + entry.path)
- })
- .on('end', t.end.bind(t))
- })
- test('redeyed', function (t) {
- readdirp({ root: path.join(__dirname, '..'), fileFilter: '*.js', directoryFilter: ['!.git', '!node_modules' ] })
- .on('data', function (entry) {
- var code = fs.readFileSync(entry.fullPath, 'utf-8')
- , result = redeyed(code, { Keyword: { 'var': '+:-' } }).code
- t.assert(~result.indexOf('+var-') || !(~result.indexOf('var ')), 'redeyed ' + entry.path)
- })
- .on('end', t.end.bind(t))
- })
|