Sha256: b3fda226c458cfabfe6972133308f631f16358bc2c50a84327c740d4d3d3ca41

Contents?: true

Size: 1.27 KB

Versions: 61

Compression:

Stored size: 1.27 KB

Contents

'use strict';

module.exports = function (trimStart, t) {
	t.test('normal cases', function (st) {
		st.equal(trimStart(' \t\na \t\n'), 'a \t\n', 'strips whitespace off the left side');
		st.equal(trimStart('a'), 'a', 'noop when no whitespace');

		var allWhitespaceChars = '\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF';
		st.equal(trimStart(allWhitespaceChars + 'a' + allWhitespaceChars), 'a' + allWhitespaceChars, 'all expected whitespace chars are trimmed');

		st.end();
	});

	// see https://codeblog.jonskeet.uk/2014/12/01/when-is-an-identifier-not-an-identifier-attack-of-the-mongolian-vowel-separator/
	var mongolianVowelSeparator = '\u180E';
	var mvsIsWS = (/^\s$/).test(mongolianVowelSeparator);
	t.test('mongolian vowel separator: unicode >= 4 && < 6.3', function (st) {
		st.equal(
			trimStart(mongolianVowelSeparator + 'a' + mongolianVowelSeparator),
			(mvsIsWS ? '' : mongolianVowelSeparator) + 'a' + mongolianVowelSeparator,
			'mongolian vowel separator is ' + (mvsIsWS ? '' : 'not ') + 'whitespace'
		);
		st.end();
	});

	t.test('zero-width spaces', function (st) {
		var zeroWidth = '\u200b';
		st.equal(trimStart(zeroWidth), zeroWidth, 'zero width space does not trim');
		st.end();
	});
};

Version data entries

61 entries across 61 versions & 3 rubygems

Version Path
immosquare-cleaner-0.1.68 node_modules/string.prototype.trimstart/test/tests.js
immosquare-cleaner-0.1.67 node_modules/string.prototype.trimstart/test/tests.js
immosquare-cleaner-0.1.66 node_modules/string.prototype.trimstart/test/tests.js
immosquare-cleaner-0.1.65 node_modules/string.prototype.trimstart/test/tests.js
immosquare-cleaner-0.1.64 node_modules/string.prototype.trimstart/test/tests.js
immosquare-cleaner-0.1.63 node_modules/string.prototype.trimstart/test/tests.js
rapid_stack-0.2.0 templates/frontend/node_modules/string.prototype.trimstart/test/tests.js
rapid_stack-0.1.1 templates/FrontEnd/node_modules/string.prototype.trimstart/test/tests.js
rapid_stack-0.1.0 templates/FrontEnd/node_modules/string.prototype.trimstart/test/tests.js
immosquare-cleaner-0.1.62 node_modules/string.prototype.trimstart/test/tests.js
immosquare-cleaner-0.1.61 node_modules/string.prototype.trimstart/test/tests.js
immosquare-cleaner-0.1.60 node_modules/string.prototype.trimstart/test/tests.js
immosquare-cleaner-0.1.59 node_modules/string.prototype.trimstart/test/tests.js
immosquare-cleaner-0.1.58 node_modules/string.prototype.trimstart/test/tests.js
immosquare-cleaner-0.1.57 node_modules/string.prototype.trimstart/test/tests.js
immosquare-cleaner-0.1.56 node_modules/string.prototype.trimstart/test/tests.js
immosquare-cleaner-0.1.55 node_modules/string.prototype.trimstart/test/tests.js
immosquare-cleaner-0.1.54 node_modules/string.prototype.trimstart/test/tests.js
immosquare-cleaner-0.1.53 node_modules/string.prototype.trimstart/test/tests.js
immosquare-cleaner-0.1.52 node_modules/string.prototype.trimstart/test/tests.js