You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
49 lines
1.4 KiB
JavaScript
49 lines
1.4 KiB
JavaScript
5 years ago
|
/*!
|
||
|
* preserve <https://github.com/jonschlinkert/preserve>
|
||
|
*
|
||
|
* Copyright (c) 2014-2015, Jon Schlinkert.
|
||
|
* Licensed under the MIT License
|
||
|
*/
|
||
|
|
||
|
'use strict';
|
||
|
|
||
|
var should = require('should');
|
||
|
var tokens = require('./');
|
||
|
|
||
|
var re = /<%=\s*[^>]+%>/g;
|
||
|
var pretty = function(str) {
|
||
|
return require('js-beautify').html(str, {
|
||
|
indent_char: ' ',
|
||
|
indent_size: 2,
|
||
|
});
|
||
|
};
|
||
|
|
||
|
describe('preserve tokens', function () {
|
||
|
var testRe = /__ID.{5}__\n__ID.{5}__\n__ID.{5}__/;
|
||
|
var re = /<%=\s*[^>]+%>/g;
|
||
|
|
||
|
it('should (e.g. shouldn\'t, but will) mangle tokens in the given string', function () {
|
||
|
var html = pretty('<ul><li><%= name %></li></ul>');
|
||
|
html.should.equal('<ul>\n <li>\n <%=n ame %>\n </li>\n</ul>');
|
||
|
});
|
||
|
|
||
|
it('should preserve tokens in the given string', function () {
|
||
|
var html = tokens.after(pretty(tokens.before('<ul><li><%= name %></li></ul>', re)));
|
||
|
html.should.equal('<ul>\n <li><%= name %></li>\n</ul>');
|
||
|
});
|
||
|
|
||
|
describe('.before()', function () {
|
||
|
it('should replace matches with placeholder tokens:', function () {
|
||
|
tokens.before('<%= a %>\n<%= b %>\n<%= c %>', re).should.match(testRe);
|
||
|
});
|
||
|
});
|
||
|
|
||
|
describe('tokens.after()', function () {
|
||
|
it('should replace placeholder tokens with original values:', function () {
|
||
|
var before = tokens.before('<%= a %>\n<%= b %>\n<%= c %>', re);
|
||
|
before.should.match(testRe);
|
||
|
tokens.after(before).should.equal('<%= a %>\n<%= b %>\n<%= c %>');
|
||
|
});
|
||
|
});
|
||
|
});
|