Files
lodash/test/trim-methods.spec.js
tison bd518dd906 test: partially fix broken tests (#5733)
* test: fix throttle.spec.js

Signed-off-by: tison <wander4096@gmail.com>

* test: fix pickBy.spec.js

Signed-off-by: tison <wander4096@gmail.com>

* test: fix isBuffer.spec.js

Signed-off-by: tison <wander4096@gmail.com>

* test: partially fix attempt.spec.js

Signed-off-by: tison <wander4096@gmail.com>

* test: partially fix dropRightWhile.spec.js

Signed-off-by: tison <wander4096@gmail.com>

* test: fix defer.spec.js and rest.spec.js

Signed-off-by: tison <wander4096@gmail.com>

* test: fix invoke.spec.js

Signed-off-by: tison <wander4096@gmail.com>

* test: fix isArray.spec.js

Signed-off-by: tison <wander4096@gmail.com>

* test: partially fix iteration-methods.spec.js

Signed-off-by: tison <wander4096@gmail.com>

* test: fix xor-methods.spec.js

Signed-off-by: tison <wander4096@gmail.com>

* test: fix property.spec.js

Signed-off-by: tison <wander4096@gmail.com>

* test: fix ary.spec.js

Signed-off-by: tison <wander4096@gmail.com>

* test: fix omit-methods.spec.js

Signed-off-by: tison <wander4096@gmail.com>

* test: fix debounce-and-throttle.spec.js

Signed-off-by: tison <wander4096@gmail.com>

* test: fix unzip-and-zip.spec.js

Signed-off-by: tison <wander4096@gmail.com>

* test: fix toPairs-methods.spec.js

Signed-off-by: tison <wander4096@gmail.com>

* test: fix exit-early.spec.js

Signed-off-by: tison <wander4096@gmail.com>

* test: temporarily comment out takeWhile and dropWhile tests

Signed-off-by: tison <wander4096@gmail.com>

* test: partially fix union*.spec.js

Signed-off-by: tison <wander4096@gmail.com>

* test: fix startsWith-and-endsWith.spec.js

Signed-off-by: tison <wander4096@gmail.com>

* test: fix isNil.spec.js

Signed-off-by: tison <wander4096@gmail.com>

* test: fix some of syntax errors

Signed-off-by: tison <wander4096@gmail.com>

---------

Signed-off-by: tison <wander4096@gmail.com>
2023-09-21 07:40:27 -07:00

91 lines
3.5 KiB
JavaScript

import lodashStable from 'lodash';
import { _, whitespace } from './utils';
describe('trim methods', () => {
lodashStable.each(['trim', 'trimStart', 'trimEnd'], (methodName, index) => {
const func = _[methodName];
let parts = [];
if (index !== 2) {
parts.push('leading');
}
if (index !== 1) {
parts.push('trailing');
}
parts = parts.join(' and ');
it(`\`_.${methodName}\` should remove ${parts} whitespace`, () => {
const string = `${whitespace}a b c${whitespace}`;
const expected = `${index === 2 ? whitespace : ''}a b c${
index === 1 ? whitespace : ''
}`;
expect(func(string)).toBe(expected);
});
it(`\`_.${methodName}\` should coerce \`string\` to a string`, () => {
const object = { toString: lodashStable.constant(`${whitespace}a b c${whitespace}`) };
const expected = `${index === 2 ? whitespace : ''}a b c${
index === 1 ? whitespace : ''
}`;
expect(func(object)).toBe(expected);
});
it(`\`_.${methodName}\` should remove ${parts} \`chars\``, () => {
const string = '-_-a-b-c-_-';
const expected = `${index === 2 ? '-_-' : ''}a-b-c${index === 1 ? '-_-' : ''}`;
expect(func(string, '_-')).toBe(expected);
});
it(`\`_.${methodName}\` should coerce \`chars\` to a string`, () => {
const object = { toString: lodashStable.constant('_-') };
const string = '-_-a-b-c-_-';
const expected = `${index === 2 ? '-_-' : ''}a-b-c${index === 1 ? '-_-' : ''}`;
expect(func(string, object)).toBe(expected);
});
it(`\`_.${methodName}\` should return an empty string for empty values and \`chars\``, () => {
lodashStable.each([null, '_-'], (chars) => {
expect(func(null, chars)).toBe('');
expect(func(undefined, chars)).toBe('');
expect(func('', chars)).toBe('');
});
});
it(`\`_.${methodName}\` should work with \`undefined\` or empty string values for \`chars\``, () => {
const string = `${whitespace}a b c${whitespace}`;
const expected = `${index === 2 ? whitespace : ''}a b c${
index === 1 ? whitespace : ''
}`;
expect(func(string, undefined)).toBe(expected);
expect(func(string, '')).toBe(string);
});
it(`\`_.${methodName}\` should work as an iteratee for methods like \`_.map\``, () => {
const string = Object(`${whitespace}a b c${whitespace}`);
const trimmed = `${index === 2 ? whitespace : ''}a b c${index === 1 ? whitespace : ''}`;
const actual = lodashStable.map([string, string, string], func);
expect(actual).toEqual([trimmed, trimmed, trimmed]);
});
it(`\`_.${methodName}\` should return an unwrapped value when implicitly chaining`, () => {
const string = `${whitespace}a b c${whitespace}`;
const expected = `${index === 2 ? whitespace : ''}a b c${
index === 1 ? whitespace : ''
}`;
expect(_(string)[methodName]()).toBe(expected);
});
it(`\`_.${methodName}\` should return a wrapped value when explicitly chaining`, () => {
const string = `${whitespace}a b c${whitespace}`;
expect(_(string).chain()[methodName]() instanceof _).toBeTruthy();
});
});
});