refactor: Overhaul nodes-testing setup - Part 3 (no-changelog) (#14967)

This commit is contained in:
कारतोफ्फेलस्क्रिप्ट™
2025-04-29 17:42:21 +02:00
committed by GitHub
parent 3e43f9f8bc
commit 979f9e6327
241 changed files with 1868 additions and 2013 deletions

View File

@@ -0,0 +1,79 @@
import { NodeTestHarness } from '@nodes-testing/node-test-harness';
import { pick } from 'lodash';
import type { WorkflowTestData } from 'n8n-workflow';
import path from 'node:path';
describe('OpenAI Workflow', () => {
const baseUrl = 'https://api.openai.com/v1';
const credentials = {
openAiApi: { url: baseUrl },
};
const testHarness = new NodeTestHarness({
additionalPackagePaths: [path.dirname(require.resolve('n8n-nodes-base'))],
});
const assistants = [
{
id: 'asst_abc123',
object: 'assistant',
created_at: 1698982736,
name: 'Coding Tutor',
description: null,
model: 'gpt-4o',
tools: [],
tool_resources: {},
metadata: {},
top_p: 1.0,
temperature: 1.0,
response_format: 'auto',
},
{
id: 'asst_abc456',
object: 'assistant',
created_at: 1698982718,
name: 'My Assistant',
description: null,
model: 'gpt-4o',
tools: [],
tool_resources: {},
metadata: {},
top_p: 1.0,
temperature: 1.0,
response_format: 'auto',
},
];
const testData: WorkflowTestData = {
description: 'List Assistants',
input: {
workflowData: testHarness.readWorkflowJSON('list-assistants.workflow.json'),
},
output: {
nodeExecutionOrder: ['When clicking Test workflow', 'OpenAI'],
nodeData: {
OpenAI: [
assistants.map((assistant) => ({
json: pick(assistant, ['id', 'model', 'name']),
})),
],
},
},
nock: {
baseUrl,
mocks: [
{
method: 'get',
path: '/assistants?limit=100',
statusCode: 200,
responseBody: {
object: 'list',
data: assistants,
},
},
],
},
};
testHarness.setupTest(testData, { credentials });
});

View File

@@ -0,0 +1,43 @@
{
"nodes": [
{
"parameters": {},
"type": "n8n-nodes-base.manualTrigger",
"typeVersion": 1,
"position": [0, 0],
"id": "ce6133c3-2eb6-4262-8e0c-54015ed0f795",
"name": "When clicking Test workflow"
},
{
"parameters": {
"resource": "assistant",
"operation": "list"
},
"type": "@n8n/n8n-nodes-langchain.openAi",
"typeVersion": 1.8,
"position": [220, 0],
"id": "070d2fcc-032c-4c3f-ae33-80a5352785f8",
"name": "OpenAI",
"credentials": {
"openAiApi": {
"id": "123",
"name": "OpenAi account"
}
}
}
],
"connections": {
"When clicking Test workflow": {
"main": [
[
{
"node": "OpenAI",
"type": "main",
"index": 0
}
]
]
}
},
"pinData": {}
}