buildx: hasAttestationType and resolveAttestationAttrs funcs
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
This commit is contained in:
@@ -244,6 +244,41 @@ describe('hasDockerExporter', () => {
|
||||
});
|
||||
});
|
||||
|
||||
describe('hasAttestationType', () => {
|
||||
// prettier-ignore
|
||||
test.each([
|
||||
['type=provenance,mode=min', 'provenance', true],
|
||||
['type=sbom,true', 'sbom', true],
|
||||
['type=foo,bar', 'provenance', false],
|
||||
])('given %p for %p returns %p', async (attrs: string, name: string, expected: boolean) => {
|
||||
expect(Inputs.hasAttestationType(name, attrs)).toEqual(expected);
|
||||
});
|
||||
});
|
||||
|
||||
describe('resolveAttestationAttrs', () => {
|
||||
// prettier-ignore
|
||||
test.each([
|
||||
[
|
||||
'type=provenance,mode=min',
|
||||
'type=provenance,mode=min'
|
||||
],
|
||||
[
|
||||
'type=provenance,true',
|
||||
'type=provenance,disabled=false'
|
||||
],
|
||||
[
|
||||
'type=provenance,false',
|
||||
'type=provenance,disabled=true'
|
||||
],
|
||||
[
|
||||
'',
|
||||
''
|
||||
],
|
||||
])('given %p', async (input: string, expected: string) => {
|
||||
expect(Inputs.resolveAttestationAttrs(input)).toEqual(expected);
|
||||
});
|
||||
});
|
||||
|
||||
describe('hasGitAuthTokenSecret', () => {
|
||||
// prettier-ignore
|
||||
test.each([
|
||||
|
||||
@@ -279,6 +279,36 @@ describe('hash', () => {
|
||||
});
|
||||
});
|
||||
|
||||
// https://github.com/golang/go/blob/f6b93a4c358b28b350dd8fe1780c1f78e520c09c/src/strconv/atob_test.go#L36-L58
|
||||
describe('parseBool', () => {
|
||||
[
|
||||
{input: '', expected: false, throwsError: true},
|
||||
{input: 'asdf', expected: false, throwsError: true},
|
||||
{input: '0', expected: false, throwsError: false},
|
||||
{input: 'f', expected: false, throwsError: false},
|
||||
{input: 'F', expected: false, throwsError: false},
|
||||
{input: 'FALSE', expected: false, throwsError: false},
|
||||
{input: 'false', expected: false, throwsError: false},
|
||||
{input: 'False', expected: false, throwsError: false},
|
||||
{input: '1', expected: true, throwsError: false},
|
||||
{input: 't', expected: true, throwsError: false},
|
||||
{input: 'T', expected: true, throwsError: false},
|
||||
{input: 'TRUE', expected: true, throwsError: false},
|
||||
{input: 'true', expected: true, throwsError: false},
|
||||
{input: 'True', expected: true, throwsError: false}
|
||||
].forEach(({input, expected, throwsError}) => {
|
||||
test(`parseBool("${input}")`, () => {
|
||||
if (throwsError) {
|
||||
// eslint-disable-next-line jest/no-conditional-expect
|
||||
expect(() => Util.parseBool(input)).toThrow();
|
||||
} else {
|
||||
// eslint-disable-next-line jest/no-conditional-expect
|
||||
expect(Util.parseBool(input)).toBe(expected);
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
// See: https://github.com/actions/toolkit/blob/a1b068ec31a042ff1e10a522d8fdf0b8869d53ca/packages/core/src/core.ts#L89
|
||||
function getInputName(name: string): string {
|
||||
return `INPUT_${name.replace(/ /g, '_').toUpperCase()}`;
|
||||
|
||||
Reference in New Issue
Block a user