UNPKG

@apistudio/apim-cli

Version:

CLI for API Management Products

75 lines (62 loc) 3.09 kB
import validateEndpoint from './endpoint-validator'; import { INVALID_ENDPOINT } from "../constants/message-constants.js"; import { showError } from "../helpers/common/message-helper.js"; jest.mock('../helpers/common/message-helper.js', () => ({ showError: jest.fn(), })); describe('validateEndpoint', () => { beforeEach(() => { jest.clearAllMocks(); }); it('should return valid endpoints for valid HTTP and HTTPS URLs', async () => { const input = 'http://valid.com, https://secure.com'; const result = await validateEndpoint(input); expect(result).toEqual(['http://valid.com', 'https://secure.com']); }); it('should call showError with the correct message for invalid URLs', async () => { const input = 'gchhjv://ftp.example.com'; const result = await validateEndpoint(input); expect(showError).toHaveBeenCalledWith(INVALID_ENDPOINT('gchhjv://ftp.example.com')); expect(result).toBe(false); }); it('should return false if no valid endpoints are provided', async () => { const input = 'gchhjv://invalid.com, ftp://another.com'; const result = await validateEndpoint(input); expect(showError).toHaveBeenCalledTimes(2); expect(result).toBe(false); }); it('should ignore invalid URLs and return valid ones', async () => { const input = 'http://valid.com, gchhjv://invalid.com'; const result = await validateEndpoint(input); expect(result).toEqual(['http://valid.com']); expect(showError).toHaveBeenCalledWith(INVALID_ENDPOINT('gchhjv://invalid.com')); }); it('should handle a single valid endpoint correctly', async () => { const input = 'https://single-valid.com'; const result = await validateEndpoint(input); expect(result).toEqual(['https://single-valid.com']); }); it('should return false if all endpoints are invalid', async () => { const input = 'invalid-url, gchhjv://another-invalid.com'; const result = await validateEndpoint(input); expect(showError).toHaveBeenCalledTimes(2); expect(result).toBe(false); }); it('should trim spaces around URLs', async () => { const input = ' http://valid.com , https://secure.com '; const result = await validateEndpoint(input); expect(result).toEqual(['http://valid.com', 'https://secure.com']); }); it('should return false for a single invalid URL', async () => { const input = 'gchhjv://invalid-url.com'; const result = await validateEndpoint(input); expect(showError).toHaveBeenCalledWith(INVALID_ENDPOINT('gchhjv://invalid-url.com')); expect(result).toBe(false); }); it('should call showError for a single invalid URL with unsupported protocol', async () => { const input = 'ftp://invalid-url.com'; const result = await validateEndpoint(input); expect(showError).toHaveBeenCalledWith(INVALID_ENDPOINT('ftp://invalid-url.com')); expect(result).toBe(false); }); });