mirror of
https://github.com/n8n-io/n8n.git
synced 2026-06-02 01:37:07 +02:00
119 lines
4.8 KiB
TypeScript
119 lines
4.8 KiB
TypeScript
import { transformLegacyLangchainImport } from './Code.node';
|
|
|
|
describe('Code.node', () => {
|
|
describe('transformLegacyLangchainImport', () => {
|
|
describe('transforms legacy langchain imports to @langchain/classic', () => {
|
|
it('should transform langchain/chains to @langchain/classic/chains', () => {
|
|
const result = transformLegacyLangchainImport('langchain/chains');
|
|
expect(result).toBe('@langchain/classic/chains');
|
|
});
|
|
|
|
it('should transform langchain/agents to @langchain/classic/agents', () => {
|
|
const result = transformLegacyLangchainImport('langchain/agents');
|
|
expect(result).toBe('@langchain/classic/agents');
|
|
});
|
|
|
|
it('should transform langchain/memory to @langchain/classic/memory', () => {
|
|
const result = transformLegacyLangchainImport('langchain/memory');
|
|
expect(result).toBe('@langchain/classic/memory');
|
|
});
|
|
|
|
it('should transform langchain/retrievers to @langchain/classic/retrievers', () => {
|
|
const result = transformLegacyLangchainImport('langchain/retrievers');
|
|
expect(result).toBe('@langchain/classic/retrievers');
|
|
});
|
|
|
|
it('should transform langchain/tools to @langchain/classic/tools', () => {
|
|
const result = transformLegacyLangchainImport('langchain/tools');
|
|
expect(result).toBe('@langchain/classic/tools');
|
|
});
|
|
|
|
it('should transform langchain/output_parsers to @langchain/classic/output_parsers', () => {
|
|
const result = transformLegacyLangchainImport('langchain/output_parsers');
|
|
expect(result).toBe('@langchain/classic/output_parsers');
|
|
});
|
|
|
|
it('should transform nested paths like langchain/chains/combine_documents', () => {
|
|
const result = transformLegacyLangchainImport('langchain/chains/combine_documents');
|
|
expect(result).toBe('@langchain/classic/chains/combine_documents');
|
|
});
|
|
|
|
it('should transform langchain/embeddings/cache_backed', () => {
|
|
const result = transformLegacyLangchainImport('langchain/embeddings/cache_backed');
|
|
expect(result).toBe('@langchain/classic/embeddings/cache_backed');
|
|
});
|
|
|
|
it('should transform langchain/document_loaders/fs/text', () => {
|
|
const result = transformLegacyLangchainImport('langchain/document_loaders/fs/text');
|
|
expect(result).toBe('@langchain/classic/document_loaders/fs/text');
|
|
});
|
|
|
|
it('should transform langchain/text_splitter', () => {
|
|
const result = transformLegacyLangchainImport('langchain/text_splitter');
|
|
expect(result).toBe('@langchain/classic/text_splitter');
|
|
});
|
|
|
|
it('should transform langchain/experimental/autogpt', () => {
|
|
const result = transformLegacyLangchainImport('langchain/experimental/autogpt');
|
|
expect(result).toBe('@langchain/classic/experimental/autogpt');
|
|
});
|
|
});
|
|
|
|
describe('does not transform non-classic imports', () => {
|
|
it('should not transform @langchain/core imports', () => {
|
|
const result = transformLegacyLangchainImport('@langchain/core/prompts');
|
|
expect(result).toBe('@langchain/core/prompts');
|
|
});
|
|
|
|
it('should not transform @langchain/community imports', () => {
|
|
const result = transformLegacyLangchainImport(
|
|
'@langchain/community/tools/wikipedia_query_run',
|
|
);
|
|
expect(result).toBe('@langchain/community/tools/wikipedia_query_run');
|
|
});
|
|
|
|
it('should not transform @langchain/openai imports', () => {
|
|
const result = transformLegacyLangchainImport('@langchain/openai');
|
|
expect(result).toBe('@langchain/openai');
|
|
});
|
|
|
|
it('should not transform already correct @langchain/classic imports', () => {
|
|
const result = transformLegacyLangchainImport('@langchain/classic/chains');
|
|
expect(result).toBe('@langchain/classic/chains');
|
|
});
|
|
|
|
it('should return original module name for non-langchain imports', () => {
|
|
const result = transformLegacyLangchainImport('lodash');
|
|
expect(result).toBe('lodash');
|
|
});
|
|
});
|
|
|
|
describe('handles edge cases', () => {
|
|
it('should handle langchain/hub imports', () => {
|
|
const result = transformLegacyLangchainImport('langchain/hub');
|
|
expect(result).toBe('@langchain/classic/hub');
|
|
});
|
|
|
|
it('should handle langchain/indexes imports', () => {
|
|
const result = transformLegacyLangchainImport('langchain/indexes');
|
|
expect(result).toBe('@langchain/classic/indexes');
|
|
});
|
|
|
|
it('should handle langchain/sql_db imports', () => {
|
|
const result = transformLegacyLangchainImport('langchain/sql_db');
|
|
expect(result).toBe('@langchain/classic/sql_db');
|
|
});
|
|
|
|
it('should handle langchain/storage/in_memory', () => {
|
|
const result = transformLegacyLangchainImport('langchain/storage/in_memory');
|
|
expect(result).toBe('@langchain/classic/storage/in_memory');
|
|
});
|
|
|
|
it('should handle langchain/stores/message/in_memory', () => {
|
|
const result = transformLegacyLangchainImport('langchain/stores/message/in_memory');
|
|
expect(result).toBe('@langchain/classic/stores/message/in_memory');
|
|
});
|
|
});
|
|
});
|
|
});
|