mirror of
https://github.com/Abdulazizzn/n8n-enterprise-unlocked.git
synced 2025-12-17 18:12:04 +00:00
124 lines
3.3 KiB
TypeScript
124 lines
3.3 KiB
TypeScript
import { Container } from '@n8n/di';
|
|
|
|
import { GlobalConfig } from '../src/index';
|
|
|
|
beforeEach(() => {
|
|
Container.reset();
|
|
jest.clearAllMocks();
|
|
});
|
|
|
|
const originalEnv = process.env;
|
|
afterEach(() => {
|
|
process.env = originalEnv;
|
|
});
|
|
|
|
it('should strip double quotes from string values', () => {
|
|
process.env = {
|
|
GENERIC_TIMEZONE: '"America/Bogota"',
|
|
N8N_HOST: '"localhost"',
|
|
};
|
|
const config = Container.get(GlobalConfig);
|
|
expect(config.generic.timezone).toBe('America/Bogota');
|
|
expect(config.host).toBe('localhost');
|
|
});
|
|
|
|
it('should strip single quotes from string values', () => {
|
|
process.env = {
|
|
GENERIC_TIMEZONE: "'America/Bogota'",
|
|
N8N_HOST: "'localhost'",
|
|
};
|
|
const config = Container.get(GlobalConfig);
|
|
expect(config.generic.timezone).toBe('America/Bogota');
|
|
expect(config.host).toBe('localhost');
|
|
});
|
|
|
|
it('should trim whitespace from quoted values', () => {
|
|
process.env = {
|
|
GENERIC_TIMEZONE: ' "America/Bogota" ',
|
|
N8N_HOST: " 'localhost' ",
|
|
};
|
|
const config = Container.get(GlobalConfig);
|
|
expect(config.generic.timezone).toBe('America/Bogota');
|
|
expect(config.host).toBe('localhost');
|
|
});
|
|
|
|
it('should trim whitespace from unquoted values', () => {
|
|
process.env = {
|
|
GENERIC_TIMEZONE: ' America/Bogota ',
|
|
N8N_HOST: ' localhost ',
|
|
};
|
|
const config = Container.get(GlobalConfig);
|
|
expect(config.generic.timezone).toBe('America/Bogota');
|
|
expect(config.host).toBe('localhost');
|
|
});
|
|
|
|
it('should leave mismatched quotes unchanged', () => {
|
|
process.env = {
|
|
GENERIC_TIMEZONE: '"America/Bogota\'',
|
|
N8N_HOST: '\'localhost"',
|
|
};
|
|
const config = Container.get(GlobalConfig);
|
|
expect(config.generic.timezone).toBe('"America/Bogota\'');
|
|
expect(config.host).toBe('\'localhost"');
|
|
});
|
|
|
|
it('should handle empty quotes', () => {
|
|
process.env = {
|
|
GENERIC_TIMEZONE: '""',
|
|
N8N_HOST: "''",
|
|
};
|
|
const config = Container.get(GlobalConfig);
|
|
expect(config.generic.timezone).toBe('');
|
|
expect(config.host).toBe('');
|
|
});
|
|
|
|
it('should handle single character in quotes', () => {
|
|
process.env = {
|
|
GENERIC_TIMEZONE: '"A"',
|
|
N8N_HOST: "'B'",
|
|
};
|
|
const config = Container.get(GlobalConfig);
|
|
expect(config.generic.timezone).toBe('A');
|
|
expect(config.host).toBe('B');
|
|
});
|
|
|
|
it('should handle values with spaces in quotes', () => {
|
|
process.env = {
|
|
GENERIC_TIMEZONE: '"America/New York"',
|
|
N8N_HOST: "'my host name'",
|
|
};
|
|
const config = Container.get(GlobalConfig);
|
|
expect(config.generic.timezone).toBe('America/New York');
|
|
expect(config.host).toBe('my host name');
|
|
});
|
|
|
|
it('should handle nested quotes', () => {
|
|
process.env = {
|
|
GENERIC_TIMEZONE: '"America/\'Bogota\'"',
|
|
N8N_HOST: '\'"localhost"\'',
|
|
};
|
|
const config = Container.get(GlobalConfig);
|
|
expect(config.generic.timezone).toBe("America/'Bogota'");
|
|
expect(config.host).toBe('"localhost"');
|
|
});
|
|
|
|
it('should handle only opening or closing quotes', () => {
|
|
process.env = {
|
|
GENERIC_TIMEZONE: '"America/Bogota',
|
|
N8N_HOST: 'localhost"',
|
|
};
|
|
const config = Container.get(GlobalConfig);
|
|
expect(config.generic.timezone).toBe('"America/Bogota');
|
|
expect(config.host).toBe('localhost"');
|
|
});
|
|
|
|
it('should handle multiple quote pairs', () => {
|
|
process.env = {
|
|
GENERIC_TIMEZONE: '""America/Bogota""',
|
|
N8N_HOST: "''localhost''",
|
|
};
|
|
const config = Container.get(GlobalConfig);
|
|
expect(config.generic.timezone).toBe('"America/Bogota"'); // should strip only outer quotes
|
|
expect(config.host).toBe("'localhost'");
|
|
});
|