tc-ui-toolkit
Version:
React components used to develop tools for the desktop app translationCore
196 lines (188 loc) • 16.8 kB
JavaScript
;
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
var stringHelpers = _interopRequireWildcard(require("../stringHelpers"));
describe('stringHelpers.isDeepNestedChild', function () {
it('Returns true with a nested array as argument', function () {
expect(stringHelpers.isDeepNestedChild(deepNestedChild)).toBeTruthy();
});
it('Returns false without a nested array as argument', function () {
expect(stringHelpers.isDeepNestedChild([])).toBeFalsy();
});
});
describe('stringHelpers.punctuationWordSpacing', function () {
var tests = [{
test: '',
expected: ' '
}, {
test: ' .\'',
expected: ''
}, // last character APOSTROPHE - no space
{
test: ' ," ',
expected: ' '
}, {
test: ':” ',
expected: ' '
}, // last character SPACE - should add space
{
test: ' ;"',
expected: ''
}, // last character QUOTATION MARK - no space
{
test: '" ; \'',
expected: ''
}, // last character APOSTROPHE - no space
{
test: ' “',
expected: ''
}, // last character LEFT DOUBLE QUOTATION MARK - no space
{
test: ' ”',
expected: ' '
}, // last character RIGHT DOUBLE QUOTATION MARK - should add space
{
test: ' , ‘',
expected: ''
}, // last character LEFT SINGLE QUOTATION MARK - no space
{
test: ' ’',
expected: ' '
} // last character RIGHT SINGLE QUOTATION MARK - should add space
];
var _loop = function _loop() {
var test = _tests[_i];
it('test: "' + test.test + '"', function () {
expect(stringHelpers.punctuationWordSpacing({
text: test.test
})).toEqual(test.expected);
});
};
for (var _i = 0, _tests = tests; _i < _tests.length; _i++) {
_loop();
}
});
describe('stringHelpers.isIsolatedLeftQuote', function () {
var tests = [{
test: '',
expected: false
}, {
test: ' .\'',
expected: false
}, {
test: ' ," ',
expected: false
}, {
test: ':” ',
expected: false
}, {
test: ' ;"',
expected: false
}, // last character QUOTATION MARK - false
{
test: '"',
expected: false
}, // single QUOTATION MARK - false
{
test: '" ; \'',
expected: false
}, // last character APOSTROPHE - false
{
test: '\'',
expected: false
}, // single APOSTROPHE - false
{
test: ' “',
expected: false
}, // last character LEFT DOUBLE QUOTATION MARK - false
{
test: '“',
expected: true
}, // single LEFT DOUBLE QUOTATION MARK - true
{
test: ' ”',
expected: false
}, // last character RIGHT DOUBLE QUOTATION MARK - false
{
test: '”',
expected: false
}, // single RIGHT DOUBLE QUOTATION MARK - false
{
test: ' , ‘',
expected: false
}, // last character LEFT SINGLE QUOTATION MARK - false
{
test: '‘',
expected: true
}, // single LEFT SINGLE QUOTATION MARK - true
{
test: ' ’',
expected: false
}, // last character RIGHT SINGLE QUOTATION MARK - false
{
test: '’',
expected: false
} // single RIGHT SINGLE QUOTATION MARK - false
];
var _loop2 = function _loop2() {
var test = _tests2[_i2];
it('test: "' + test.test + '"', function () {
expect(stringHelpers.isIsolatedLeftQuote(test.test)).toEqual(test.expected);
});
};
for (var _i2 = 0, _tests2 = tests; _i2 < _tests2.length; _i2++) {
_loop2();
}
}); // test data
var deepNestedChild = [[{
content: [{
children: [{
content: [{}],
occurrence: 1,
occurrences: 2,
tag: 'w',
text: 'this',
type: 'word'
}, {
content: [{}],
occurrence: 1,
occurrences: 1,
tag: 'w',
text: 'message',
type: 'word'
}],
content: 'αὐτοῦ',
lemma: 'αὐτός',
morph: 'Gr,RP,,,3GMS,',
occurrence: 1,
occurrences: 1,
strong: 'G08460',
tag: 'zaln',
type: 'milestone'
}, {
children: [{
children: [{}],
content: 'αὐτοῦ',
lemma: 'αὐτός',
morph: 'Gr,RP,,,3GMS,',
occurrence: 1,
occurrences: 1,
strong: 'G08460',
tag: 'zaln',
type: 'milestone'
}],
content: 'λόγον',
lemma: 'λόγος',
morph: 'Gr,N,,,,,AMS,',
occurrence: 1,
occurrences: 1,
strong: 'G30560',
tag: 'zaln',
type: 'milestone'
}],
occurrence: 1,
occurrences: 2,
tag: 'w',
text: 'this',
type: 'word'
}]];
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9TY3JpcHR1cmVQYW5lL2hlbHBlcnMvX190ZXN0X18vc3RyaW5nSGVscGVycy50ZXN0LmpzIl0sIm5hbWVzIjpbImRlc2NyaWJlIiwiaXQiLCJleHBlY3QiLCJzdHJpbmdIZWxwZXJzIiwiaXNEZWVwTmVzdGVkQ2hpbGQiLCJkZWVwTmVzdGVkQ2hpbGQiLCJ0b0JlVHJ1dGh5IiwidG9CZUZhbHN5IiwidGVzdHMiLCJ0ZXN0IiwiZXhwZWN0ZWQiLCJwdW5jdHVhdGlvbldvcmRTcGFjaW5nIiwidGV4dCIsInRvRXF1YWwiLCJpc0lzb2xhdGVkTGVmdFF1b3RlIiwiY29udGVudCIsImNoaWxkcmVuIiwib2NjdXJyZW5jZSIsIm9jY3VycmVuY2VzIiwidGFnIiwidHlwZSIsImxlbW1hIiwibW9ycGgiLCJzdHJvbmciXSwibWFwcGluZ3MiOiI7Ozs7QUFBQTs7QUFFQUEsUUFBUSxDQUFDLGlDQUFELEVBQW9DLFlBQU07QUFDaERDLEVBQUFBLEVBQUUsQ0FBQyw4Q0FBRCxFQUFpRCxZQUFNO0FBQ3ZEQyxJQUFBQSxNQUFNLENBQUNDLGFBQWEsQ0FBQ0MsaUJBQWQsQ0FBZ0NDLGVBQWhDLENBQUQsQ0FBTixDQUF5REMsVUFBekQ7QUFDRCxHQUZDLENBQUY7QUFJQUwsRUFBQUEsRUFBRSxDQUFDLGtEQUFELEVBQXFELFlBQU07QUFDM0RDLElBQUFBLE1BQU0sQ0FBQ0MsYUFBYSxDQUFDQyxpQkFBZCxDQUFnQyxFQUFoQyxDQUFELENBQU4sQ0FBNENHLFNBQTVDO0FBQ0QsR0FGQyxDQUFGO0FBR0QsQ0FSTyxDQUFSO0FBVUFQLFFBQVEsQ0FBQyxzQ0FBRCxFQUF5QyxZQUFNO0FBQ3JELE1BQU1RLEtBQUssR0FBRyxDQUNaO0FBQUVDLElBQUFBLElBQUksRUFBRSxFQUFSO0FBQVlDLElBQUFBLFFBQVEsRUFBRTtBQUF0QixHQURZLEVBRVo7QUFBRUQsSUFBQUEsSUFBSSxFQUFFLE1BQVI7QUFBZ0JDLElBQUFBLFFBQVEsRUFBRTtBQUExQixH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QUFBLElBQUksRUFBRTtBQXJCUixHQTdCTyxDQURYO0FBc0RFSCxFQUFBQSxVQUFVLEVBQUUsQ0F0RGQ7QUF1REVDLEVBQUFBLFdBQVcsRUFBRSxDQXZEZjtBQXdERUMsRUFBQUEsR0FBRyxFQUFFLEdBeERQO0FBeURFUCxFQUFBQSxJQUFJLEVBQUUsTUF6RFI7QUEwREVRLEVBQUFBLElBQUksRUFBRTtBQTFEUixDQURGLENBRHNCLENBQXhCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgc3RyaW5nSGVscGVycyBmcm9tICcuLi9zdHJpbmdIZWxwZXJzJztcblxuZGVzY3JpYmUoJ3N0cmluZ0hlbHBlcnMuaXNEZWVwTmVzdGVkQ2hpbGQnLCAoKSA9PiB7XG4gIGl0KCdSZXR1cm5zIHRydWUgd2l0aCBhIG5lc3RlZCBhcnJheSBhcyBhcmd1bWVudCcsICgpID0+IHtcbiAgICBleHBlY3Qoc3RyaW5nSGVscGVycy5pc0RlZXBOZXN0ZWRDaGlsZChkZWVwTmVzdGVkQ2hpbGQpKS50b0JlVHJ1dGh5KCk7XG4gIH0pO1xuXG4gIGl0KCdSZXR1cm5zIGZhbHNlIHdpdGhvdXQgYSBuZXN0ZWQgYXJyYXkgYXMgYXJndW1lbnQnLCAoKSA9PiB7XG4gICAgZXhwZWN0KHN0cmluZ0hlbHBlcnMuaXNEZWVwTmVzdGVkQ2hpbGQoW10pKS50b0JlRmFsc3koKTtcbiAgfSk7XG59KTtcblxuZGVzY3JpYmUoJ3N0cmluZ0hlbHBlcnMucHVuY3R1YXRpb25Xb3JkU3BhY2luZycsICgpID0+IHtcbiAgY29uc3QgdGVzdHMgPSBbXG4gICAgeyB0ZXN0OiAnJywgZXhwZWN0ZWQ6ICcgJyB9LFxuICAgIHsgdGVzdDogJyAuXFwnJywgZXhwZWN0ZWQ6ICcnIH0sIC8vIGxhc3QgY2hhcmFjdGVyIEFQT1NUUk9QSEUgLSBubyBzcGFjZVxuICAgIHsgdGVzdDogJyAsXCIgICcsIGV4cGVjdGVkOiAnICcgfSxcbiAgICB7IHRlc3Q6ICc64oCdICAnLCBleHBlY3RlZDogJyAnIH0sIC8vIGxhc3QgY2hhcmFjdGVyIFNQQUNFIC0gc2hvdWxkIGFkZCBzcGFjZVxuICAgIHsgdGVzdDogJyAgO1wiJywgZXhwZWN0ZWQ6ICcnIH0sIC8vIGxhc3QgY2hhcmFjdGVyIFFVT1RBVElPTiBNQVJLIC0gbm8gc3BhY2VcbiAgICB7IHRlc3Q6ICdcIiA7IFxcJycsIGV4cGVjdGVkOiAnJyB9LCAvLyBsYXN0IGNoYXJhY3RlciBBUE9TVFJPUEhFIC0gbm8gc3BhY2VcbiAgICB7IHRlc3Q6ICcgICDigJwnLCBleHBlY3RlZDogJycgfSwgLy8gbGFzdCBjaGFyYWN0ZXIgTEVGVCBET1VCTEUgUVVPVEFUSU9OIE1BUksgLSBubyBzcGFjZVxuICAgIHsgdGVzdDogJyAgIOKAnScsIGV4cGVjdGVkOiAnICcgfSwgLy8gbGFzdCBjaGFyYWN0ZXIgUklHSFQgRE9VQkxFIFFVT1RBVElPTiBNQVJLIC0gc2hvdWxkIGFkZCBzcGFjZVxuICAgIHsgdGVzdDogJyAgICAsIOKAmCcsIGV4cGVjdGVkOiAnJyB9LCAvLyBsYXN0IGNoYXJhY3RlciBMRUZUIFNJTkdMRSBRVU9UQVRJT04gTUFSSyAtIG5vIHNwYWNlXG4gICAgeyB0ZXN0OiAnICAg4oCZJywgZXhwZWN0ZWQ6ICcgJyB9LCAvLyBsYXN0IGNoYXJhY3RlciBSSUdIVCBTSU5HTEUgUVVPVEFUSU9OIE1BUksgLSBzaG91bGQgYWRkIHNwYWNlXG4gIF07XG5cbiAgZm9yIChsZXQgdGVzdCBvZiB0ZXN0cykge1xuICAgIGl0KCd0ZXN0OiBcIicgKyB0ZXN0LnRlc3QgKyAnXCInLCAoKSA9PiB7XG4gICAgICBleHBlY3Qoc3RyaW5nSGVscGVycy5wdW5jdHVhdGlvbldvcmRTcGFjaW5nKHsgdGV4dDogdGVzdC50ZXN0IH0pKS50b0VxdWFsKHRlc3QuZXhwZWN0ZWQpO1xuICAgIH0pO1xuICB9XG59KTtcblxuZGVzY3JpYmUoJ3N0cmluZ0hlbHBlcnMuaXNJc29sYXRlZExlZnRRdW90ZScsICgpID0+IHtcbiAgY29uc3QgdGVzdHMgPSBbXG4gICAgeyB0ZXN0OiAnJywgZXhwZWN0ZWQ6IGZhbHNlIH0sXG4gICAgeyB0ZXN0OiAnIC5cXCcnLCBleHBlY3RlZDogZmFsc2UgfSxcbiAgICB7IHRlc3Q6ICcgLFwiICAnLCBleHBlY3RlZDogZmFsc2UgfSxcbiAgICB7IHRlc3Q6ICc64oCdICAnLCBleHBlY3RlZDogZmFsc2UgfSxcbiAgICB7IHRlc3Q6ICcgIDtcIicsIGV4cGVjdGVkOiBmYWxzZSB9LCAvLyBsYXN0IGNoYXJhY3RlciBRVU9UQVRJT04gTUFSSyAtIGZhbHNlXG4gICAgeyB0ZXN0OiAnXCInLCBleHBlY3RlZDogZmFsc2UgfSwgLy8gc2luZ2xlIFFVT1RBVElPTiBNQVJLIC0gZmFsc2VcbiAgICB7IHRlc3Q6ICdcIiA7IFxcJycsIGV4cGVjdGVkOiBmYWxzZSB9LCAvLyBsYXN0IGNoYXJhY3RlciBBUE9TVFJPUEhFIC0gZmFsc2VcbiAgICB7IHRlc3Q6ICdcXCcnLCBleHBlY3RlZDogZmFsc2UgfSwgLy8gc2luZ2xlIEFQT1NUUk9QSEUgLSBmYWxzZVxuICAgIHsgdGVzdDogJyAgIOKAnCcsIGV4cGVjdGVkOiBmYWxzZSB9LCAvLyBsYXN0IGNoYXJhY3RlciBMRUZUIERPVUJMRSBRVU9UQVRJT04gTUFSSyAtIGZhbHNlXG4gICAgeyB0ZXN0OiAn4oCcJywgZXhwZWN0ZWQ6IHRydWUgfSwgLy8gc2luZ2xlIExFRlQgRE9VQkxFIFFVT1RBVElPTiBNQVJLIC0gdHJ1ZVxuICAgIHsgdGVzdDogJyAgIOKAnScsIGV4cGVjdGVkOiBmYWxzZSB9LCAvLyBsYXN0IGNoYXJhY3RlciBSSUdIVCBET1VCTEUgUVVPVEFUSU9OIE1BUksgLSBmYWxzZVxuICAgIHsgdGVzdDogJ+KAnScsIGV4cGVjdGVkOiBmYWxzZSB9LCAvLyBzaW5nbGUgUklHSFQgRE9VQkxFIFFVT1RBVElPTiBNQVJLIC0gZmFsc2VcbiAgICB7IHRlc3Q6ICcgICAgLCDigJgnLCBleHBlY3RlZDogZmFsc2UgfSwgLy8gbGFzdCBjaGFyYWN0ZXIgTEVGVCBTSU5HTEUgUVVPVEFUSU9OIE1BUksgLSBmYWxzZVxuICAgIHsgdGVzdDogJ+KAmCcsIGV4cGVjdGVkOiB0cnVlIH0sIC8vIHNpbmdsZSBMRUZUIFNJTkdMRSBRVU9UQVRJT04gTUFSSyAtIHRydWVcbiAgICB7IHRlc3Q6ICcgICDigJknLCBleHBlY3RlZDogZmFsc2UgfSwgLy8gbGFzdCBjaGFyYWN0ZXIgUklHSFQgU0lOR0xFIFFVT1RBVElPTiBNQVJLIC0gZmFsc2VcbiAgICB7IHRlc3Q6ICfigJknLCBleHBlY3RlZDogZmFsc2UgfSwgLy8gc2luZ2xlIFJJR0hUIFNJTkdMRSBRVU9UQVRJT04gTUFSSyAtIGZhbHNlXG4gIF07XG5cbiAgZm9yIChsZXQgdGVzdCBvZiB0ZXN0cykge1xuICAgIGl0KCd0ZXN0OiBcIicgKyB0ZXN0LnRlc3QgKyAnXCInLCAoKSA9PiB7XG4gICAgICBleHBlY3Qoc3RyaW5nSGVscGVycy5pc0lzb2xhdGVkTGVmdFF1b3RlKHRlc3QudGVzdCkpLnRvRXF1YWwodGVzdC5leHBlY3RlZCk7XG4gICAgfSk7XG4gIH1cbn0pO1xuXG4vLyB0ZXN0IGRhdGFcbmNvbnN0IGRlZXBOZXN0ZWRDaGlsZCA9IFtcbiAgW1xuICAgIHtcbiAgICAgIGNvbnRlbnQ6IFtcbiAgICAgICAge1xuICAgICAgICAgIGNoaWxkcmVuOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGNvbnRlbnQ6IFt7fV0sXG4gICAgICAgICAgICAgIG9jY3VycmVuY2U6IDEsXG4gICAgICAgICAgICAgIG9jY3VycmVuY2VzOiAyLFxuICAgICAgICAgICAgICB0YWc6ICd3JyxcbiAgICAgICAgICAgICAgdGV4dDogJ3RoaXMnLFxuICAgICAgICAgICAgICB0eXBlOiAnd29yZCcsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBjb250ZW50OiBbe31dLFxuICAgICAgICAgICAgICBvY2N1cnJlbmNlOiAxLFxuICAgICAgICAgICAgICBvY2N1cnJlbmNlczogMSxcbiAgICAgICAgICAgICAgdGFnOiAndycsXG4gICAgICAgICAgICAgIHRleHQ6ICdtZXNzYWdlJyxcbiAgICAgICAgICAgICAgdHlwZTogJ3dvcmQnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICAgIGNvbnRlbnQ6ICfOseG9kM+Ezr/hv6YnLFxuICAgICAgICAgIGxlbW1hOiAnzrHhvZDPhM+Mz4InLFxuICAgICAgICAgIG1vcnBoOiAnR3IsUlAsLCwzR01TLCcsXG4gICAgICAgICAgb2NjdXJyZW5jZTogMSxcbiAgICAgICAgICBvY2N1cnJlbmNlczogMSxcbiAgICAgICAgICBzdHJvbmc6ICdHMDg0NjAnLFxuICAgICAgICAgIHRhZzogJ3phbG4nLFxuICAgICAgICAgIHR5cGU6ICdtaWxlc3RvbmUnLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgY2hpbGRyZW46IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgY2hpbGRyZW46IFt7fV0sXG4gICAgICAgICAgICAgIGNvbnRlbnQ6ICfOseG9kM+Ezr/hv6YnLFxuICAgICAgICAgICAgICBsZW1tYTogJ86x4b2Qz4TPjM+CJyxcbiAgICAgICAgICAgICAgbW9ycGg6ICdHcixSUCwsLDNHTVMsJyxcbiAgICAgICAgICAgICAgb2NjdXJyZW5jZTogMSxcbiAgICAgICAgICAgICAgb2NjdXJyZW5jZXM6IDEsXG4gICAgICAgICAgICAgIHN0cm9uZzogJ0cwODQ2MCcsXG4gICAgICAgICAgICAgIHRhZzogJ3phbG4nLFxuICAgICAgICAgICAgICB0eXBlOiAnbWlsZXN0b25lJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgICBjb250ZW50OiAnzrvPjM6zzr/OvScsXG4gICAgICAgICAgbGVtbWE6ICfOu8+MzrPOv8+CJyxcbiAgICAgICAgICBtb3JwaDogJ0dyLE4sLCwsLEFNUywnLFxuICAgICAgICAgIG9jY3VycmVuY2U6IDEsXG4gICAgICAgICAgb2NjdXJyZW5jZXM6IDEsXG4gICAgICAgICAgc3Ryb25nOiAnRzMwNTYwJyxcbiAgICAgICAgICB0YWc6ICd6YWxuJyxcbiAgICAgICAgICB0eXBlOiAnbWlsZXN0b25lJyxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgICBvY2N1cnJlbmNlOiAxLFxuICAgICAgb2NjdXJyZW5jZXM6IDIsXG4gICAgICB0YWc6ICd3JyxcbiAgICAgIHRleHQ6ICd0aGlzJyxcbiAgICAgIHR5cGU6ICd3b3JkJyxcbiAgICB9LFxuICBdLFxuXTtcbiJdfQ==