improved checksum parsing (#280)
Signed-off-by: Brian DeHamer <[email protected]>
This commit is contained in:
@@ -473,6 +473,13 @@ badline
|
|||||||
'187dcd1506a170337415589ff00c8743f19d41cc31fca246c2739dfd450d0b9d'
|
'187dcd1506a170337415589ff00c8743f19d41cc31fca246c2739dfd450d0b9d'
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
expect(subjects).toContainEqual({
|
||||||
|
name: 'demo_0.0.1_darwin_arm64',
|
||||||
|
digest: {
|
||||||
|
sha512:
|
||||||
|
'5d8b4751ef31f9440d843fcfa4e53ca2e25b1cb1f13fd355fdc7c24b41fe645293291ea9297ba3989078abb77ebbaac66be073618a9e4974dbd0361881d4c718'
|
||||||
|
}
|
||||||
|
})
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
@@ -480,8 +487,8 @@ badline
|
|||||||
describe('when specifying a subject checksums string', () => {
|
describe('when specifying a subject checksums string', () => {
|
||||||
const checksums = `
|
const checksums = `
|
||||||
f861e68a080799ca83104630b56abb90d8dbcc5f8b5a8639cb691e269838f29e demo_0.0.1_linux_386
|
f861e68a080799ca83104630b56abb90d8dbcc5f8b5a8639cb691e269838f29e demo_0.0.1_linux_386
|
||||||
187dcd1506a170337415589ff00c8743f19d41cc31fca246c2739dfd450d0b9d demo_0.0.1_linux_amd64
|
187dcd1506a170337415589ff00c8743f19d41cc31fca246c2739dfd450d0b9d *demo_0.0.1_linux_amd64
|
||||||
9ecbf449e286a8a8748c161c52aa28b6b2fc64ab86f94161c5d1b3abc18156c5 demo_0.0.1_linux_arm64`
|
9ecbf449e286a8a8748c161c52aa28b6b2fc64ab86f94161c5d1b3abc18156c5 demo_0.0.1_linux_arm64`
|
||||||
|
|
||||||
it('returns the multiple subjects', async () => {
|
it('returns the multiple subjects', async () => {
|
||||||
const inputs: SubjectInputs = {
|
const inputs: SubjectInputs = {
|
||||||
@@ -500,6 +507,20 @@ f861e68a080799ca83104630b56abb90d8dbcc5f8b5a8639cb691e269838f29e demo_0.0.1_lin
|
|||||||
'f861e68a080799ca83104630b56abb90d8dbcc5f8b5a8639cb691e269838f29e'
|
'f861e68a080799ca83104630b56abb90d8dbcc5f8b5a8639cb691e269838f29e'
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
expect(subjects).toContainEqual({
|
||||||
|
name: 'demo_0.0.1_linux_amd64',
|
||||||
|
digest: {
|
||||||
|
sha256:
|
||||||
|
'187dcd1506a170337415589ff00c8743f19d41cc31fca246c2739dfd450d0b9d'
|
||||||
|
}
|
||||||
|
})
|
||||||
|
expect(subjects).toContainEqual({
|
||||||
|
name: 'demo_0.0.1_linux_arm64',
|
||||||
|
digest: {
|
||||||
|
sha256:
|
||||||
|
'9ecbf449e286a8a8748c161c52aa28b6b2fc64ab86f94161c5d1b3abc18156c5'
|
||||||
|
}
|
||||||
|
})
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|||||||
+6
-2
@@ -74225,8 +74225,12 @@ const getSubjectFromChecksumsString = (checksums) => {
|
|||||||
if (delimIndex === -1) {
|
if (delimIndex === -1) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
// Swallow the type identifier character at the beginning of the name
|
// It's common for checksum records to have a leading flag character before
|
||||||
const name = record.slice(delimIndex + 2);
|
// the artifact name. It will be either a '*' or a space.
|
||||||
|
const flag_and_name = record.slice(delimIndex + 1);
|
||||||
|
const name = flag_and_name.startsWith('*') || flag_and_name.startsWith(' ')
|
||||||
|
? flag_and_name.slice(1)
|
||||||
|
: flag_and_name;
|
||||||
const digest = record.slice(0, delimIndex);
|
const digest = record.slice(0, delimIndex);
|
||||||
if (!HEX_STRING_RE.test(digest)) {
|
if (!HEX_STRING_RE.test(digest)) {
|
||||||
throw new Error(`Invalid digest: ${digest}`);
|
throw new Error(`Invalid digest: ${digest}`);
|
||||||
|
|||||||
+8
-2
@@ -181,8 +181,14 @@ const getSubjectFromChecksumsString = (checksums: string): Subject[] => {
|
|||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
// Swallow the type identifier character at the beginning of the name
|
// It's common for checksum records to have a leading flag character before
|
||||||
const name = record.slice(delimIndex + 2)
|
// the artifact name. It will be either a '*' or a space.
|
||||||
|
const flag_and_name = record.slice(delimIndex + 1)
|
||||||
|
const name =
|
||||||
|
flag_and_name.startsWith('*') || flag_and_name.startsWith(' ')
|
||||||
|
? flag_and_name.slice(1)
|
||||||
|
: flag_and_name
|
||||||
|
|
||||||
const digest = record.slice(0, delimIndex)
|
const digest = record.slice(0, delimIndex)
|
||||||
|
|
||||||
if (!HEX_STRING_RE.test(digest)) {
|
if (!HEX_STRING_RE.test(digest)) {
|
||||||
|
|||||||
Reference in New Issue
Block a user