mirror of
https://github.com/Abdulazizzn/n8n-enterprise-unlocked.git
synced 2025-12-17 18:12:04 +00:00
110 lines
2.4 KiB
TypeScript
110 lines
2.4 KiB
TypeScript
import { NodeTestHarness } from '@nodes-testing/node-test-harness';
|
|
import nock from 'nock';
|
|
|
|
import deepResearchResult from './fixtures/deepResearch.json';
|
|
import readResult from './fixtures/read.json';
|
|
import searchResult from './fixtures/search.json';
|
|
|
|
describe('JinaAI Node', () => {
|
|
const credentials = {
|
|
jinaAiApi: {
|
|
apiKey: 'API-KEY',
|
|
},
|
|
};
|
|
|
|
describe('Reader -> Read', () => {
|
|
const jinaAiNock = nock('https://r.jina.ai');
|
|
|
|
beforeAll(() => {
|
|
jinaAiNock.get('/https://first.com/some/path').times(2).reply(200, readResult);
|
|
jinaAiNock
|
|
.get('/https://second.com/other')
|
|
.query({
|
|
foo: 'bar',
|
|
})
|
|
.matchHeader('X-Return-Format', 'markdown')
|
|
.matchHeader('X-Target-Selector', 'article')
|
|
.matchHeader('X-Remove-Selector', '.ad')
|
|
.matchHeader('X-With-Generated-Alt', 'true')
|
|
.matchHeader('X-Wait-For-Selector', '#posts')
|
|
.reply(200, readResult);
|
|
});
|
|
|
|
afterAll(() => jinaAiNock.done());
|
|
|
|
new NodeTestHarness().setupTests({
|
|
credentials,
|
|
workflowFiles: ['read.workflow.json'],
|
|
});
|
|
});
|
|
|
|
describe('Reader -> Search', () => {
|
|
const jinaAiNock = nock('https://s.jina.ai');
|
|
|
|
beforeAll(() => {
|
|
jinaAiNock
|
|
.get('/')
|
|
.query({
|
|
q: 'Jina AI',
|
|
})
|
|
.times(2)
|
|
.reply(200, searchResult);
|
|
jinaAiNock
|
|
.get('/')
|
|
.query({
|
|
q: 'Jina AI',
|
|
page: 2,
|
|
})
|
|
.matchHeader('X-Return-Format', 'markdown')
|
|
.matchHeader('X-Site', 'jina.ai')
|
|
.reply(200, searchResult);
|
|
});
|
|
|
|
afterAll(() => jinaAiNock.done());
|
|
|
|
new NodeTestHarness().setupTests({
|
|
credentials,
|
|
workflowFiles: ['search.workflow.json'],
|
|
});
|
|
});
|
|
|
|
describe('Research -> Deep Research', () => {
|
|
const jinaAiNock = nock('https://deepsearch.jina.ai');
|
|
|
|
beforeAll(() => {
|
|
jinaAiNock
|
|
.post('/v1/chat/completions', {
|
|
messages: [
|
|
{
|
|
role: 'user',
|
|
content: 'Describe the latest features in Jina AI',
|
|
},
|
|
],
|
|
})
|
|
.times(2)
|
|
.reply(200, deepResearchResult);
|
|
jinaAiNock
|
|
.post('/v1/chat/completions', {
|
|
messages: [
|
|
{
|
|
role: 'user',
|
|
content: 'Describe the latest features in Jina AI',
|
|
},
|
|
],
|
|
max_returned_urls: 5,
|
|
boost_hostnames: ['jina.ai'],
|
|
bad_hostnames: ['medium.com'],
|
|
only_hostnames: ['jina.ai', 'github.com'],
|
|
})
|
|
.reply(200, deepResearchResult);
|
|
});
|
|
|
|
afterAll(() => jinaAiNock.done());
|
|
|
|
new NodeTestHarness().setupTests({
|
|
credentials,
|
|
workflowFiles: ['deepResearch.workflow.json'],
|
|
});
|
|
});
|
|
});
|