fluentnode
Version:
Fluent apis for node (based on the concepts used in C#'s FluentSharp
290 lines (285 loc) • 11.6 kB
JavaScript
// Generated by CoffeeScript 1.12.7
(function() {
var expect;
require('../../src/fluentnode');
expect = require('chai').expect;
describe('| js-native | String', function() {
var value;
value = "abc123";
it('append', function() {
return using(value, function() {
this.append().assert_Is(value);
this.append('').assert_Is(value);
this.append(null).assert_Is(value);
this.append('a').assert_Is(value + 'a');
this.append('abc').assert_Is(value + 'abc');
this.append('abc123').assert_Is(value + 'abc123');
return this.append.assert_Is(this.add);
});
});
it('after', function() {
value.after.assert_Is_Function();
value.after('3').assert_Is('');
value.after('2').assert_Is('3');
value.after('123').assert_Is('');
value.after('b').assert_Is('c123');
value.after('bc1').assert_Is('23');
value.after('xxx').assert_Is('');
value.after(null).assert_Is('');
value.after('').assert_Is('abc123');
'abb'.after('b').assert_Is('b');
'a.b'.after('.').assert_Is('b');
return 'a.b.c'.after('.').assert_Is('b.c');
});
it('after_Last', function() {
value.after_Last.assert_Is_Function();
value.after_Last('3').assert_Is('');
value.after_Last('2').assert_Is('3');
value.after_Last('123').assert_Is('');
value.after_Last('b').assert_Is('c123');
value.after_Last('bc1').assert_Is('23');
value.after_Last('xxx').assert_Is('');
value.after_Last(null).assert_Is('');
value.after_Last('').assert_Is('');
'abb'.after_Last('b').assert_Is('');
'a.b'.after_Last('.').assert_Is('b');
return 'a.b.c'.after_Last('.').assert_Is('c');
});
it('before', function() {
value.before.assert_Is_Function();
value.before('3').assert_Is('abc12');
value.before('2').assert_Is('abc1');
value.before('123').assert_Is('abc');
value.before('b').assert_Is('a');
value.before('bc1').assert_Is('a');
value.before('xxx').assert_Is('');
value.before('').assert_Is('');
value.before(null).assert_Is('');
'abb'.before('b').assert_Is('a');
'a.b'.before('.').assert_Is('a');
return 'a.b.c'.before('.').assert_Is('a');
});
it('before_Last', function() {
value.before_Last.assert_Is_Function();
value.before_Last('3').assert_Is('abc12');
value.before_Last('2').assert_Is('abc1');
value.before_Last('123').assert_Is('abc');
value.before_Last('b').assert_Is('a');
value.before_Last('bc1').assert_Is('a');
value.before_Last('xxx').assert_Is('');
value.before_Last(null).assert_Is('');
value.before_Last('').assert_Is('abc123');
'abb'.before_Last('b').assert_Is('ab');
'a.b'.before_Last('.').assert_Is('a');
return 'a.b.c'.before_Last('.').assert_Is('a.b');
});
it('contains', function() {
value.contains.assert_Is_Function();
value.contains('3').assert_Is_True();
value.contains('2').assert_Is_True();
value.contains('123').assert_Is_True();
value.contains(value).assert_Is_True();
value.contains(value + '1').assert_Is_False();
value.contains('1' + value).assert_Is_False();
value.contains(['1']).assert_Is_True();
value.contains(['1', '2']).assert_Is_True();
value.contains(['1', 'abc1']).assert_Is_True();
value.contains(['d', 'abc1']).assert_Is_False();
value.contains(/a.c/).assert_Is_True();
value.contains(/1.3/).assert_Is_True();
value.contains(/a.*3/).assert_Is_True();
value.contains(/ab.1/).assert_Is_True();
return value.contains(/ac.2/).assert_Is_False();
});
it('ends_With', function() {
return using(value, function() {
this.ends_With.assert_Is_Function();
this.ends_With('3').assert_Is_True();
this.ends_With('2').assert_Is_False();
this.ends_With('123').assert_Is_True();
this.ends_With(value).assert_Is_True();
this.ends_With(value + '1').assert_Is_False();
this.ends_With('1' + value).assert_Is_False();
this.ends_With('').assert_Is_False();
this.ends_With(null).assert_Is_False();
this.ends_With(void 0).assert_Is_False();
return this.assert_Is(value);
});
});
it('is', function() {
'a'.is('a').assert_True();
'a'.is('b').assert_False();
'b'.is('a').assert_False();
''.is('').assert_True();
return ''.is('a').assert_False();
});
it('isnt, is_Not', function() {
'a'.is_Not('a').assert_False();
'a'.is_Not('b').assert_True();
'b'.is_Not('a').assert_True();
''.is_Not('').assert_False();
''.is_Not('a').assert_True();
return ''.is_Not.assert_Is(''.isnt);
});
it('line', function() {
return "abcdefgf".line().assert_Is(['abcdefgf\n']);
});
it('lines', function() {
"abcdefgf".lines().assert_Is(['abcdefgf']);
"a\nd\ngf".lines().assert_Is(['a', 'd', 'gf']);
"a\r\n_gf".lines().assert_Is(['a', '_gf']);
"a\n\r_gf".lines().assert_Is(['a', '', '_gf']);
"a\u2028f".lines().assert_Is(['a', 'f']);
"a\u2029f".lines().assert_Is(['a', 'f']);
"".lines().assert_Is(['']);
"\r\n\n\r\u2028\u2029".lines().assert_Is(['', '', '', '', '', '']);
"1\r\n2\n3\r4\u20285\u20296".lines().assert_Is(['1', '2', '3', '4', '5', '6']);
return ''.lines.assert_Is(''.split_Lines);
});
it('lower', function() {
expect(value.lower).to.be.an('Function');
expect(value.lower()).to.equal(value.toLowerCase());
return expect(value.lower().upper()).to.equal(value.toUpperCase());
});
it('not_Contains', function() {
value.not_Contains.assert_Is_Function();
value.not_Contains('3').assert_Is_False();
value.not_Contains('2').assert_Is_False();
value.not_Contains('123').assert_Is_False();
value.not_Contains(value).assert_Is_False();
value.not_Contains(value + '1').assert_Is_True();
return value.not_Contains('1' + value).assert_Is_True();
});
it('not_Starts_With', function() {
return using(value, function() {
this.not_Starts_With.assert_Is_Function();
this.not_Starts_With('a').assert_Is_False();
this.not_Starts_With('b').assert_Is_True();
this.not_Starts_With('abc').assert_Is_False();
this.not_Starts_With(value).assert_Is_False();
this.not_Starts_With(this + 'a').assert_Is_True();
this.not_Starts_With('a' + this).assert_Is_True();
this.not_Starts_With('').assert_Is_True();
return this.assert_Is(this);
});
});
it('only_Letters', function() {
'aaa'.only_Letters().assert_Is('aaa');
'aAa'.only_Letters().assert_Is('aAa');
'aaa'.only_Letters().assert_Is_Not('bbb');
'a 1'.only_Letters().assert_Is('a--');
'A!"'.only_Letters().assert_Is('A--');
'/<>'.only_Letters().assert_Is('---');
'abcd-ABCD_1234.<h1>*!@{}[]'.only_Letters().assert_Is('abcd-ABCD-------h---------');
return '!@£$%^&*(){}:"|<>?[];\'\,/'.only_Letters().assert_Is('-'.repeat(24));
});
it('only_Numbers', function() {
'1aa'.only_Numbers().assert_Is('1--');
'2Aa'.only_Numbers().assert_Is('2--');
'123'.only_Numbers().assert_Is('123');
'aaa'.only_Numbers().assert_Is_Not('bbb');
'1 '.only_Numbers().assert_Is('1--');
'A1"'.only_Numbers().assert_Is('-1-');
'/<>'.only_Numbers().assert_Is('---');
'abcd-ABCD_1234.<h1>*!@{}[]'.only_Numbers().assert_Is('----------1234---1--------');
return '!@£$%^&*(){}:"|<>?[];\'\,/'.only_Numbers().assert_Is('-'.repeat(24));
});
it('remove', function() {
return using(value, function() {
this.remove('a').assert_Is('bc123');
this.remove('b').assert_Is('ac123');
this.remove('abc').assert_Is('123');
this.remove('123').assert_Is('abc');
(this + this).remove('a').assert_Is('bc123'.twice());
return (this + this).remove('bc12').assert_Is('a3'.twice());
});
});
it('repeat', function() {
'a'.repeat(0).assert_Is('');
'a'.repeat(1).assert_Is('a');
'a'.repeat(2).assert_Is('aa');
'a'.repeat(5).assert_Is('aaaaa');
'ab'.repeat(5).assert_Is('ababababab');
''.repeat(5).assert_Is('');
'a'.repeat('a').assert_Is('');
return 'a'.repeat(null).assert_Is('');
});
it('size', function() {
expect(value.size).to.be.an('Function');
expect(''.size()).to.equal(0);
expect(value.size()).to.equal(6);
return expect(value.append('abc').size()).to.equal(9);
});
it('starts_With', function() {
return using(value, function() {
this.starts_With.assert_Is_Function();
this.starts_With('a').assert_Is_True();
this.starts_With('b').assert_Is_False();
this.starts_With('abc').assert_Is_True();
this.starts_With(value).assert_Is_True();
this.starts_With(this + 'a').assert_Is_False();
this.starts_With('a' + this).assert_Is_False();
this.starts_With('').assert_Is_False();
return this.assert_Is(this);
});
});
it('to_Safe_String', function() {
'aaa'.to_Safe_String().assert_Is('aaa');
'aaa'.to_Safe_String().assert_Is_Not('bbb');
'a '.to_Safe_String().assert_Is('a--');
'a!"'.to_Safe_String().assert_Is('a--');
'/<>'.to_Safe_String().assert_Is('---');
'abcd-ABCD_1234.<h1>*!@{}[]'.to_Safe_String().assert_Is('abcd-abcd_1234.-h1--------');
return '!@£$%^&*(){}:"|<>?[];\'\,/'.to_Safe_String().assert_Is('-'.repeat(24));
});
it('trim', function() {
value.trim.assert_Is_Function();
value.trim().assert_Is(value);
'a 1'.trim().assert_Is('a 1');
'a1 '.trim().assert_Is('a1');
' 1 '.trim().assert_Is('1');
' '.trim().assert_Is('');
'a1 '.trim().assert_Is_Not('a 1');
' 1 '.trim().assert_Is_Not('a 1');
return ' '.trim().assert_Is_Not('a 1');
});
it('twice', function() {
return using(value, function() {
this.twice().assert_Is(this + this);
'a'.twice().assert_Is('aa');
return ''.twice().assert_Is('');
});
});
it('json_Parse', function() {
'{ "a" : 42 }'.json_Parse().assert_Is({
a: '42'
});
"{}".json_Parse().assert_Is({});
''.json_Parse().assert_Is({});
'aaaa'.json_Parse().assert_Is({});
return '{a:12}'.json_Parse().assert_Is({});
});
it('json_Valid', function() {
'{ "a" : 42 }'.json_Valid().assert_True;
"{}".json_Valid().assert_True;
''.json_Valid().assert_False;
'aaaa'.json_Valid().assert_False;
return '{a:12}'.json_Valid().assert_False;
});
return it('is_Local_Url', function() {
''.is_Local_Url().assert_Is_False();
'//a/..'.is_Local_Url().assert_Is_False();
'//a'.is_Local_Url().assert_Is_False();
'/\\abc'.is_Local_Url().assert_Is_False();
'https://foo/bar'.is_Local_Url().assert_Is_False();
'http://foo/bar'.is_Local_Url().assert_Is_False();
'foo/bar'.is_Local_Url().assert_Is_False();
'file:///c:/path/to/the%20f.txt'.is_Local_Url().assert_Is_False();
'////host/share/dir/file.txt'.is_Local_Url().assert_Is_False();
'null'.is_Local_Url().assert_Is_False();
'%2fAccount%2fChangePassword%2f'.is_Local_Url().assert_Is_True();
'~/foo/bar'.is_Local_Url().assert_Is_True();
return '/foo/bar'.is_Local_Url().assert_Is_True();
});
});
}).call(this);