75 lines
2.7 KiB
JavaScript
75 lines
2.7 KiB
JavaScript
'use strict';
|
|
|
|
// Tests for combinations of single + multi-line comments;
|
|
|
|
const decomment = require('../lib');
|
|
const os = require('os');
|
|
const LB = os.EOL;
|
|
|
|
describe('Mixed:', function () {
|
|
|
|
describe('special slash cases', function () {
|
|
it('must be ignored', function () {
|
|
expect(decomment('\'\f\'')).toBe('\'\f\'');
|
|
|
|
expect(decomment('\'\\\'\'')).toBe('\'\\\'\'');
|
|
expect(decomment('"\\""')).toBe('"\\""');
|
|
expect(decomment('`\\``')).toBe('`\\``');
|
|
|
|
expect(decomment('\'\\\'\\\'\'')).toBe('\'\\\'\\\'\'');
|
|
expect(decomment('"\\"\\""')).toBe('"\\"\\""');
|
|
expect(decomment('`\\`\\``')).toBe('`\\`\\``');
|
|
|
|
expect(decomment('\'\\\\\'')).toBe('\'\\\\\'');
|
|
expect(decomment('"\\\\"')).toBe('"\\\\"');
|
|
expect(decomment('`\\\\`')).toBe('`\\\\`');
|
|
|
|
expect(decomment('\'\\\\\\\'\'')).toBe('\'\\\\\\\'\'');
|
|
expect(decomment('\'\\\\\\\'\';')).toBe('\'\\\\\\\'\';');
|
|
|
|
expect(decomment('"\\\\\\""')).toBe('"\\\\\\""');
|
|
expect(decomment('"\\\\\\"";')).toBe('"\\\\\\"";');
|
|
|
|
expect(decomment('`\\\\\\``')).toBe('`\\\\\\``');
|
|
expect(decomment('`\\\\\\``;')).toBe('`\\\\\\``;');
|
|
|
|
});
|
|
});
|
|
|
|
describe('single-line gaps', function () {
|
|
it('must be removed', function () {
|
|
expect(decomment('//one' + LB + '//two' + LB + '//three')).toBe('');
|
|
});
|
|
});
|
|
|
|
describe('multi-line gaps', function () {
|
|
it('must be removed', function () {
|
|
expect(decomment('/*one*/' + LB + '/*two*/' + LB + '/*three*/')).toBe('');
|
|
});
|
|
});
|
|
|
|
describe('mixed comments', function () {
|
|
it('must be removed', function () {
|
|
expect(decomment('//one' + LB + '/*two*/' + LB + '//three')).toBe('');
|
|
});
|
|
});
|
|
|
|
describe('Automatic EOL', function () {
|
|
|
|
it('must always ignore solo \\r symbols', function () {
|
|
expect(decomment('//comment\r\rtext', {trim: true})).toBe('');
|
|
expect(decomment('/*comment*/\r\rtext', {trim: true})).toBe('\r\rtext');
|
|
});
|
|
it('must determine Unix and break on \\n', function () {
|
|
expect(decomment('//comment\n\ntext', {trim: true})).toBe('text');
|
|
expect(decomment('/*comment*/\n\ntext', {trim: true})).toBe('text');
|
|
});
|
|
it('must determine Windows and break on \\r\\n', function () {
|
|
expect(decomment('//comment\r\n\r\ntext', {trim: true})).toBe('text');
|
|
expect(decomment('/*comment*/\r\n\r\ntext', {trim: true})).toBe('text');
|
|
});
|
|
|
|
});
|
|
|
|
});
|