UNPKG

@redocly/openapi-core

Version:

See https://github.com/Redocly/openapi-cli

77 lines (72 loc) 2.66 kB
import { loadConfig, findConfig } from '../load'; import { RedoclyClient } from '../../redocly'; const fs = require('fs'); const path = require('path'); describe('loadConfig', () => { it('should resolve config http header by US region', async () => { jest .spyOn(RedoclyClient.prototype, 'getTokens') .mockImplementation(() => Promise.resolve([{ region: 'us', token: 'accessToken', valid: true }]), ); const config = await loadConfig(); expect(config.resolve.http.headers).toStrictEqual([ { matches: 'https://api.redocly.com/registry/**', name: 'Authorization', envVariable: undefined, value: 'accessToken', }, { matches: 'https://api.redoc.ly/registry/**', name: 'Authorization', envVariable: undefined, value: 'accessToken', }, ]); }); it('should resolve config http header by EU region', async () => { jest .spyOn(RedoclyClient.prototype, 'getTokens') .mockImplementation(() => Promise.resolve([{ region: 'eu', token: 'accessToken', valid: true }]), ); const config = await loadConfig(); expect(config.resolve.http.headers).toStrictEqual([ { matches: 'https://api.eu.redocly.com/registry/**', name: 'Authorization', envVariable: undefined, value: 'accessToken', }, ]); }); }); describe('findConfig', () => { it('should find redocly.yaml', async () => { jest.spyOn(fs, 'existsSync').mockImplementation((name) => name === 'redocly.yaml'); const configName = findConfig(); expect(configName).toStrictEqual('redocly.yaml'); }); it('should find .redocly.yaml', async () => { jest.spyOn(fs, 'existsSync').mockImplementation((name) => name === '.redocly.yaml'); const configName = findConfig(); expect(configName).toStrictEqual('.redocly.yaml'); }); it('should throw an error when found multiple config files', async () => { jest .spyOn(fs, 'existsSync') .mockImplementation((name) => name === 'redocly.yaml' || name === '.redocly.yaml'); expect(findConfig).toThrow(` Multiple configuration files are not allowed. Found the following files: redocly.yaml, .redocly.yaml. Please use 'redocly.yaml' instead. `); }); it('should find a nested config ', async () => { jest.spyOn(fs, 'existsSync').mockImplementation((name) => name === 'dir/redocly.yaml'); jest.spyOn(path, 'resolve').mockImplementationOnce((dir, name) => `${dir}/${name}`); const configName = findConfig('dir'); expect(configName).toStrictEqual('dir/redocly.yaml'); }); });