compare-by
Version:
A versatile utility library for sorting arrays of objects by one or multiple keys with customizable sort directions.
49 lines (45 loc) • 1.68 kB
text/typescript
import { compareStrings } from './compare-strings';
describe('compare strings', () => {
describe('default order', () => {
test('same values', () => {
expect(compareStrings('hello', 'hello')).toBe(0);
});
test('different casing', () => {
expect(compareStrings('hello', 'Hello')).toBe(-1);
expect(compareStrings('Hello', 'hello')).toBe(1);
});
test('different values', () => {
expect(compareStrings('Hello', 'World')).toBe(-1);
expect(compareStrings('Hello', 'world')).toBe(-1);
expect(compareStrings('hello', 'World')).toBe(-1);
});
});
describe('ascending order', () => {
test('same values', () => {
expect(compareStrings('hello', 'hello', 'asc')).toBe(0);
});
test('different casing', () => {
expect(compareStrings('hello', 'Hello', 'asc')).toBe(-1);
expect(compareStrings('Hello', 'hello', 'asc')).toBe(1);
});
test('different values', () => {
expect(compareStrings('Hello', 'World', 'asc')).toBe(-1);
expect(compareStrings('Hello', 'world', 'asc')).toBe(-1);
expect(compareStrings('hello', 'World', 'asc')).toBe(-1);
});
});
describe('descending order', () => {
test('same values', () => {
expect(compareStrings('hello', 'hello', 'desc')).toBe(0);
});
test('different casing', () => {
expect(compareStrings('hello', 'Hello', 'desc')).toBe(1);
expect(compareStrings('Hello', 'hello', 'desc')).toBe(-1);
});
test('different values', () => {
expect(compareStrings('Hello', 'World', 'desc')).toBe(1);
expect(compareStrings('Hello', 'world', 'desc')).toBe(1);
expect(compareStrings('hello', 'World', 'desc')).toBe(1);
});
});
});