'use strict'; var test = require('tape'), Vinyl = require('vinyl'), gulpUglify = require('../'); test('should preserve all comments', function(t) { t.plan(3); var testFile1 = new Vinyl({ cwd: "/home/terin/broken-promises/", base: "/home/terin/broken-promises/test", path: "/home/terin/broken-promises/test/test1.js", contents: new Buffer('/* comment one *//*! comment two *//* comment three */') }); var stream = gulpUglify({ preserveComments: 'all' }); stream.on('data', function(newFile) { var contents = newFile.contents.toString(); t.ok(/one/.test(contents), 'has comment one'); t.ok(/two/.test(contents), 'has comment two'); t.ok(/three/.test(contents), 'has comment three'); }); stream.write(testFile1); stream.end(); }); test('should preserve important comments', function(t) { t.plan(3); var testFile1 = new Vinyl({ cwd: "/home/terin/broken-promises/", base: "/home/terin/broken-promises/test", path: "/home/terin/broken-promises/test/test1.js", contents: new Buffer('/* comment one *//*! comment two *//* comment three */') }); var stream = gulpUglify({ preserveComments: 'some' }); stream.on('data', function(newFile) { var contents = newFile.contents.toString(); t.false(/one/.test(contents), 'does not have comment one'); t.ok(/two/.test(contents), 'has comment two'); t.false(/three/.test(contents), 'does not have comment three'); }); stream.write(testFile1); stream.end(); }); test('should preserve comments that fn returns true for', function(t) { t.plan(3); var testFile1 = new Vinyl({ cwd: "/home/terin/broken-promises/", base: "/home/terin/broken-promises/test", path: "/home/terin/broken-promises/test/test1.js", contents: new Buffer('/* comment one *//*! comment two *//* comment three */') }); var stream = gulpUglify({ preserveComments: function(node, comment) { return /three/.test(comment.value); } }); stream.on('data', function(newFile) { var contents = newFile.contents.toString(); t.false(/one/.test(contents), 'does not have comment one'); t.false(/two/.test(contents), 'does not have comment two'); t.true(/three/.test(contents), 'has comment three'); }); stream.write(testFile1); stream.end(); });