Fix config-file tests

This commit is contained in:
cnagadya
2022-11-08 09:53:36 +00:00
parent 13455c7175
commit 3c73a622ba
4 changed files with 74 additions and 76 deletions

View File

@@ -1,5 +1,5 @@
import {expect, test, beforeEach} from '@jest/globals'
import {readConfig, parseConfigFile} from '../src/config'
import {readConfig} from '../src/config'
import {getRefs} from '../src/git-refs'
import * as Utils from '../src/utils'
@@ -96,14 +96,17 @@ test('it raises an error when no refs are provided and the event is not a pull r
).toThrow()
})
test.skip('it reads an external config file', async () => {
let options = parseConfigFile('./__tests__/fixtures/config-allow-sample.yml')
expect(options.fail_on_severity).toEqual('critical')
expect(options.allow_licenses).toEqual(['BSD', 'GPL 2'])
test('it reads an external config file', async () => {
setInput('config-file', './__tests__/fixtures/config-allow-sample.yml')
const config = await readConfig()
expect(config.fail_on_severity).toEqual('critical')
expect(config.allow_licenses).toEqual(['BSD', 'GPL 2'])
})
test.skip('raises an error when the the config file was not found', () => {
expect(() => parseConfigFile('fixtures/i-dont-exist')).toThrow()
test('raises an error when the the config file was not found', async () => {
setInput('config-file', 'fixtures/i-dont-exist')
await expect(readConfig()).rejects.toThrow(/Unable to fetch config file/)
})
test('it parses options from both sources', async () => {

55
dist/index.js generated vendored
View File

@@ -27440,7 +27440,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.parseConfigFile = exports.readConfigFile = exports.readInlineConfig = exports.readConfig = void 0;
exports.readConfig = void 0;
const fs = __importStar(__nccwpck_require__(7147));
const path_1 = __importDefault(__nccwpck_require__(1017));
const yaml_1 = __importDefault(__nccwpck_require__(4083));
@@ -27448,31 +27448,6 @@ const core = __importStar(__nccwpck_require__(2186));
const z = __importStar(__nccwpck_require__(3301));
const schemas_1 = __nccwpck_require__(1129);
const utils_1 = __nccwpck_require__(1314);
function getOptionalBoolean(name) {
const value = core.getInput(name);
return value.length > 0 ? core.getBooleanInput(name) : undefined;
}
function getOptionalInput(name) {
const value = core.getInput(name);
return value.length > 0 ? value : undefined;
}
function parseList(list) {
if (list === undefined) {
return list;
}
else {
return list.split(',').map(x => x.trim());
}
}
function validateLicenses(key, licenses) {
if (licenses === undefined) {
return;
}
const invalid_licenses = licenses.filter(license => !(0, utils_1.isSPDXValid)(license));
if (invalid_licenses.length > 0) {
throw new Error(`Invalid license(s) in ${key}: ${invalid_licenses.join(', ')}`);
}
}
function readConfig() {
return __awaiter(this, void 0, void 0, function* () {
const inlineConfig = readInlineConfig();
@@ -27511,7 +27486,31 @@ function readInlineConfig() {
};
return Object.fromEntries(Object.entries(data).filter(([_, value]) => value !== undefined));
}
exports.readInlineConfig = readInlineConfig;
function getOptionalBoolean(name) {
const value = core.getInput(name);
return value.length > 0 ? core.getBooleanInput(name) : undefined;
}
function getOptionalInput(name) {
const value = core.getInput(name);
return value.length > 0 ? value : undefined;
}
function parseList(list) {
if (list === undefined) {
return list;
}
else {
return list.split(',').map(x => x.trim());
}
}
function validateLicenses(key, licenses) {
if (licenses === undefined) {
return;
}
const invalid_licenses = licenses.filter(license => !(0, utils_1.isSPDXValid)(license));
if (invalid_licenses.length > 0) {
throw new Error(`Invalid license(s) in ${key}: ${invalid_licenses.join(', ')}`);
}
}
function readConfigFile(filePath) {
return __awaiter(this, void 0, void 0, function* () {
const format = new RegExp('(?<owner>[^/]+)/(?<repo>[^/]+)/(?<path>[^@]+)@(?<ref>.*)');
@@ -27537,7 +27536,6 @@ function readConfigFile(filePath) {
}
});
}
exports.readConfigFile = readConfigFile;
function parseConfigFile(configData) {
try {
const data = yaml_1.default.parse(configData);
@@ -27557,7 +27555,6 @@ function parseConfigFile(configData) {
throw error;
}
}
exports.parseConfigFile = parseConfigFile;
function getRemoteConfig(configOpts) {
return __awaiter(this, void 0, void 0, function* () {
try {

2
dist/index.js.map generated vendored

File diff suppressed because one or more lines are too long

View File

@@ -8,40 +8,6 @@ import {isSPDXValid, octokitClient} from './utils'
type ConfigurationOptionsPartial = Partial<ConfigurationOptions>
function getOptionalBoolean(name: string): boolean | undefined {
const value = core.getInput(name)
return value.length > 0 ? core.getBooleanInput(name) : undefined
}
function getOptionalInput(name: string): string | undefined {
const value = core.getInput(name)
return value.length > 0 ? value : undefined
}
function parseList(list: string | undefined): string[] | undefined {
if (list === undefined) {
return list
} else {
return list.split(',').map(x => x.trim())
}
}
function validateLicenses(
key: 'allow-licenses' | 'deny-licenses',
licenses: string[] | undefined
): void {
if (licenses === undefined) {
return
}
const invalid_licenses = licenses.filter(license => !isSPDXValid(license))
if (invalid_licenses.length > 0) {
throw new Error(
`Invalid license(s) in ${key}: ${invalid_licenses.join(', ')}`
)
}
}
export async function readConfig(): Promise<ConfigurationOptions> {
const inlineConfig = readInlineConfig()
@@ -55,7 +21,7 @@ export async function readConfig(): Promise<ConfigurationOptions> {
return ConfigurationOptionsSchema.parse(inlineConfig)
}
export function readInlineConfig(): ConfigurationOptionsPartial {
function readInlineConfig(): ConfigurationOptionsPartial {
const fail_on_severity = getOptionalInput('fail-on-severity')
const fail_on_scopes = parseList(getOptionalInput('fail-on-scopes'))
@@ -91,7 +57,41 @@ export function readInlineConfig(): ConfigurationOptionsPartial {
)
}
export async function readConfigFile(
function getOptionalBoolean(name: string): boolean | undefined {
const value = core.getInput(name)
return value.length > 0 ? core.getBooleanInput(name) : undefined
}
function getOptionalInput(name: string): string | undefined {
const value = core.getInput(name)
return value.length > 0 ? value : undefined
}
function parseList(list: string | undefined): string[] | undefined {
if (list === undefined) {
return list
} else {
return list.split(',').map(x => x.trim())
}
}
function validateLicenses(
key: 'allow-licenses' | 'deny-licenses',
licenses: string[] | undefined
): void {
if (licenses === undefined) {
return
}
const invalid_licenses = licenses.filter(license => !isSPDXValid(license))
if (invalid_licenses.length > 0) {
throw new Error(
`Invalid license(s) in ${key}: ${invalid_licenses.join(', ')}`
)
}
}
async function readConfigFile(
filePath: string
): Promise<ConfigurationOptionsPartial> {
const format = new RegExp(
@@ -118,9 +118,7 @@ export async function readConfigFile(
}
}
export function parseConfigFile(
configData: string
): ConfigurationOptionsPartial {
function parseConfigFile(configData: string): ConfigurationOptionsPartial {
try {
const data = YAML.parse(configData)
for (const key of Object.keys(data)) {