first commit
Security: Sync from Public / sync-from-public (push) Has been cancelled
Test: Benchmark Nightly / build (push) Has been cancelled
Test: Benchmark Nightly / Notify Cats on failure (push) Has been cancelled
CI: Python / Checks (push) Has been cancelled
Test: Evals Python / Workflow Comparison Python (push) Has been cancelled
Util: Check Docs URLs / check-docs-urls (push) Has been cancelled
Test: Visual Storybook / Cloudflare Pages (push) Has been cancelled
Test: E2E Performance / build-and-test-performance (push) Has been cancelled
Test: Workflows Nightly / Run Workflow Tests (push) Has been cancelled
Util: Cleanup CI Docker Images / Delete stale CI images (push) Has been cancelled
Test: Benchmark Destroy Env / build (push) Has been cancelled
Util: Update Node Popularity / update-popularity (push) Has been cancelled
Test: E2E Coverage Weekly / Coverage Tests (push) Has been cancelled

This commit is contained in:
2026-03-17 16:22:57 +03:30
commit 3d5eaf9445
15349 changed files with 2847338 additions and 0 deletions
@@ -0,0 +1 @@
export * as listSearch from './listSearch';
@@ -0,0 +1,61 @@
import { mock } from 'jest-mock-extended';
import type { ILoadOptionsFunctions } from 'n8n-workflow';
import { modelSearch } from './listSearch';
import * as transport from '../transport';
const mockResponse = {
data: [
{
id: 'claude-opus-4-20250514',
},
{
id: 'claude-sonnet-4-20250514',
},
],
};
describe('Anthropic -> listSearch', () => {
const mockExecuteFunctions = mock<ILoadOptionsFunctions>();
const apiRequestMock = jest.spyOn(transport, 'apiRequest');
beforeEach(() => {
jest.clearAllMocks();
});
describe('modelSearch', () => {
it('should return all models', async () => {
apiRequestMock.mockResolvedValue(mockResponse);
const result = await modelSearch.call(mockExecuteFunctions);
expect(result).toEqual({
results: [
{
name: 'claude-opus-4-20250514',
value: 'claude-opus-4-20250514',
},
{
name: 'claude-sonnet-4-20250514',
value: 'claude-sonnet-4-20250514',
},
],
});
});
it('should return filtered models', async () => {
apiRequestMock.mockResolvedValue(mockResponse);
const result = await modelSearch.call(mockExecuteFunctions, 'sonnet');
expect(result).toEqual({
results: [
{
name: 'claude-sonnet-4-20250514',
value: 'claude-sonnet-4-20250514',
},
],
});
});
});
});
@@ -0,0 +1,24 @@
import type { ILoadOptionsFunctions, INodeListSearchResult } from 'n8n-workflow';
import { apiRequest } from '../transport';
export async function modelSearch(
this: ILoadOptionsFunctions,
filter?: string,
): Promise<INodeListSearchResult> {
const response = (await apiRequest.call(this, 'GET', '/v1/models')) as {
data: Array<{ id: string }>;
};
let models = response.data;
if (filter) {
models = models.filter((model) => model.id.toLowerCase().includes(filter.toLowerCase()));
}
return {
results: models.map((model) => ({
name: model.id,
value: model.id,
})),
};
}