Files
yaklang-chrome-extension/src/features/deep-capture/function-parameters.test.ts
T

19 lines
833 B
TypeScript

import { describe, expect, it } from 'vitest';
import { parseFunctionParameterNames } from './function-parameters';
describe('deep-capture function parameter parser', () => {
it.each([
['async function buildLoginEnvelope(password, account = "analyst") {}', ['password', 'account']],
['encrypt(value, options = { mode: "CBC", fields: ["a", "b"] }) {}', ['value', 'options']],
['(payload, ...rest) => payload', ['payload', 'rest']],
['async value => value', ['value']],
['function transform({ value }, [key]) {}', ['arg0', 'arg1']],
])('reads runtime source parameters from %s', (source, expected) => {
expect(parseFunctionParameterNames(source)).toEqual(expected);
});
it('keeps the parser bounded', () => {
expect(parseFunctionParameterNames('(a, b, c) => a', 2)).toEqual(['a', 'b']);
});
});