snapshot of https://github.com/TanStack/query.git (main, 2026-09-16; blobs > 131072B omitted)
This commit is contained in:
101
packages/eslint-plugin-query/src/__tests__/test-utils.test.ts
Normal file
101
packages/eslint-plugin-query/src/__tests__/test-utils.test.ts
Normal file
@@ -0,0 +1,101 @@
|
||||
import { describe, expect, it } from 'vitest'
|
||||
import {
|
||||
expectArrayEqualIgnoreOrder,
|
||||
generateInterleavedCombinations,
|
||||
generatePartialCombinations,
|
||||
generatePermutations,
|
||||
} from './test-utils'
|
||||
|
||||
describe('test-utils', () => {
|
||||
describe('generatePermutations', () => {
|
||||
const testCases = [
|
||||
{
|
||||
input: ['a', 'b', 'c'],
|
||||
expected: [
|
||||
['a', 'b', 'c'],
|
||||
['a', 'c', 'b'],
|
||||
['b', 'a', 'c'],
|
||||
['b', 'c', 'a'],
|
||||
['c', 'a', 'b'],
|
||||
['c', 'b', 'a'],
|
||||
],
|
||||
},
|
||||
{
|
||||
input: ['a', 'b'],
|
||||
expected: [
|
||||
['a', 'b'],
|
||||
['b', 'a'],
|
||||
],
|
||||
},
|
||||
{
|
||||
input: ['a'],
|
||||
expected: [['a']],
|
||||
},
|
||||
]
|
||||
it.each(testCases)('$input $expected', ({ input, expected }) => {
|
||||
const permutations = generatePermutations(input)
|
||||
expect(permutations).toEqual(expected)
|
||||
})
|
||||
})
|
||||
|
||||
describe('generatePartialCombinations', () => {
|
||||
const testCases = [
|
||||
{
|
||||
input: ['a', 'b', 'c'],
|
||||
minLength: 2,
|
||||
expected: [
|
||||
['a', 'b'],
|
||||
['a', 'c'],
|
||||
['b', 'c'],
|
||||
['a', 'b', 'c'],
|
||||
],
|
||||
},
|
||||
{
|
||||
input: ['a', 'b'],
|
||||
expected: [['a', 'b']],
|
||||
minLength: 2,
|
||||
},
|
||||
{
|
||||
input: ['a'],
|
||||
expected: [],
|
||||
minLength: 2,
|
||||
},
|
||||
{
|
||||
input: ['a'],
|
||||
expected: [['a']],
|
||||
minLength: 1,
|
||||
},
|
||||
{
|
||||
input: ['a'],
|
||||
expected: [[], ['a']],
|
||||
minLength: 0,
|
||||
},
|
||||
]
|
||||
it.each(testCases)(
|
||||
'$input $minLength $expected',
|
||||
({ input, minLength, expected }) => {
|
||||
const combinations = generatePartialCombinations(input, minLength)
|
||||
expectArrayEqualIgnoreOrder(combinations, expected)
|
||||
},
|
||||
)
|
||||
})
|
||||
|
||||
describe('generateInterleavedCombinations', () => {
|
||||
const testCases = [
|
||||
{
|
||||
data: ['a', 'b'],
|
||||
additional: ['x'],
|
||||
expected: [
|
||||
['a', 'b'],
|
||||
['x', 'a', 'b'],
|
||||
['a', 'x', 'b'],
|
||||
['a', 'b', 'x'],
|
||||
],
|
||||
},
|
||||
]
|
||||
it.each(testCases)('$input $expected', ({ data, additional, expected }) => {
|
||||
const combinations = generateInterleavedCombinations(data, additional)
|
||||
expectArrayEqualIgnoreOrder(combinations, expected)
|
||||
})
|
||||
})
|
||||
})
|
||||
Reference in New Issue
Block a user