Fix config-file tests
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
import {expect, test, beforeEach} from '@jest/globals'
|
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 {getRefs} from '../src/git-refs'
|
||||||
import * as Utils from '../src/utils'
|
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()
|
).toThrow()
|
||||||
})
|
})
|
||||||
|
|
||||||
test.skip('it reads an external config file', async () => {
|
test('it reads an external config file', async () => {
|
||||||
let options = parseConfigFile('./__tests__/fixtures/config-allow-sample.yml')
|
setInput('config-file', './__tests__/fixtures/config-allow-sample.yml')
|
||||||
expect(options.fail_on_severity).toEqual('critical')
|
|
||||||
expect(options.allow_licenses).toEqual(['BSD', 'GPL 2'])
|
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', () => {
|
test('raises an error when the the config file was not found', async () => {
|
||||||
expect(() => parseConfigFile('fixtures/i-dont-exist')).toThrow()
|
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 () => {
|
test('it parses options from both sources', async () => {
|
||||||
|
|||||||
+26
-29
@@ -27440,7 +27440,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|||||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||||
};
|
};
|
||||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
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 fs = __importStar(__nccwpck_require__(7147));
|
||||||
const path_1 = __importDefault(__nccwpck_require__(1017));
|
const path_1 = __importDefault(__nccwpck_require__(1017));
|
||||||
const yaml_1 = __importDefault(__nccwpck_require__(4083));
|
const yaml_1 = __importDefault(__nccwpck_require__(4083));
|
||||||
@@ -27448,31 +27448,6 @@ const core = __importStar(__nccwpck_require__(2186));
|
|||||||
const z = __importStar(__nccwpck_require__(3301));
|
const z = __importStar(__nccwpck_require__(3301));
|
||||||
const schemas_1 = __nccwpck_require__(1129);
|
const schemas_1 = __nccwpck_require__(1129);
|
||||||
const utils_1 = __nccwpck_require__(1314);
|
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() {
|
function readConfig() {
|
||||||
return __awaiter(this, void 0, void 0, function* () {
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
const inlineConfig = readInlineConfig();
|
const inlineConfig = readInlineConfig();
|
||||||
@@ -27511,7 +27486,31 @@ function readInlineConfig() {
|
|||||||
};
|
};
|
||||||
return Object.fromEntries(Object.entries(data).filter(([_, value]) => value !== undefined));
|
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) {
|
function readConfigFile(filePath) {
|
||||||
return __awaiter(this, void 0, void 0, function* () {
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
const format = new RegExp('(?<owner>[^/]+)/(?<repo>[^/]+)/(?<path>[^@]+)@(?<ref>.*)');
|
const format = new RegExp('(?<owner>[^/]+)/(?<repo>[^/]+)/(?<path>[^@]+)@(?<ref>.*)');
|
||||||
@@ -27537,7 +27536,6 @@ function readConfigFile(filePath) {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
exports.readConfigFile = readConfigFile;
|
|
||||||
function parseConfigFile(configData) {
|
function parseConfigFile(configData) {
|
||||||
try {
|
try {
|
||||||
const data = yaml_1.default.parse(configData);
|
const data = yaml_1.default.parse(configData);
|
||||||
@@ -27557,7 +27555,6 @@ function parseConfigFile(configData) {
|
|||||||
throw error;
|
throw error;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
exports.parseConfigFile = parseConfigFile;
|
|
||||||
function getRemoteConfig(configOpts) {
|
function getRemoteConfig(configOpts) {
|
||||||
return __awaiter(this, void 0, void 0, function* () {
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
try {
|
try {
|
||||||
|
|||||||
+1
-1
File diff suppressed because one or more lines are too long
+37
-39
@@ -8,40 +8,6 @@ import {isSPDXValid, octokitClient} from './utils'
|
|||||||
|
|
||||||
type ConfigurationOptionsPartial = Partial<ConfigurationOptions>
|
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> {
|
export async function readConfig(): Promise<ConfigurationOptions> {
|
||||||
const inlineConfig = readInlineConfig()
|
const inlineConfig = readInlineConfig()
|
||||||
|
|
||||||
@@ -55,7 +21,7 @@ export async function readConfig(): Promise<ConfigurationOptions> {
|
|||||||
return ConfigurationOptionsSchema.parse(inlineConfig)
|
return ConfigurationOptionsSchema.parse(inlineConfig)
|
||||||
}
|
}
|
||||||
|
|
||||||
export function readInlineConfig(): ConfigurationOptionsPartial {
|
function readInlineConfig(): ConfigurationOptionsPartial {
|
||||||
const fail_on_severity = getOptionalInput('fail-on-severity')
|
const fail_on_severity = getOptionalInput('fail-on-severity')
|
||||||
|
|
||||||
const fail_on_scopes = parseList(getOptionalInput('fail-on-scopes'))
|
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
|
filePath: string
|
||||||
): Promise<ConfigurationOptionsPartial> {
|
): Promise<ConfigurationOptionsPartial> {
|
||||||
const format = new RegExp(
|
const format = new RegExp(
|
||||||
@@ -118,9 +118,7 @@ export async function readConfigFile(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export function parseConfigFile(
|
function parseConfigFile(configData: string): ConfigurationOptionsPartial {
|
||||||
configData: string
|
|
||||||
): ConfigurationOptionsPartial {
|
|
||||||
try {
|
try {
|
||||||
const data = YAML.parse(configData)
|
const data = YAML.parse(configData)
|
||||||
for (const key of Object.keys(data)) {
|
for (const key of Object.keys(data)) {
|
||||||
|
|||||||
Reference in New Issue
Block a user