Correctly identify dependency versions chosen by Go
This commit is contained in:
+78
-9
@@ -1,17 +1,86 @@
|
||||
import { processGoGraph, processGoBuildTarget } from './process'
|
||||
import {
|
||||
processGoGraph,
|
||||
processGoDirectDependencies,
|
||||
processGoIndirectDependencies
|
||||
} from './process'
|
||||
|
||||
// NOTE: these tests all require "go" to be installed and available on the PATH!
|
||||
//
|
||||
describe('processGoGraph', () => {
|
||||
describe('processGoDirectDependencies', () => {
|
||||
test('run in go-example', async () => {
|
||||
const cache = await processGoGraph('go-example')
|
||||
expect(cache.countPackages()).toEqual(8)
|
||||
const manifest = await processGoBuildTarget(
|
||||
const purls = await processGoDirectDependencies(
|
||||
'go-example',
|
||||
'cmd/octocat.go',
|
||||
cache
|
||||
'cmd/octocat.go'
|
||||
)
|
||||
expect(manifest.directDependencies()).toHaveLength(4)
|
||||
expect(manifest.indirectDependencies()).toHaveLength(2)
|
||||
expect(purls).toHaveLength(1)
|
||||
expect(purls).toEqual([
|
||||
{
|
||||
type: 'golang',
|
||||
name: 'color',
|
||||
namespace: 'github.com/fatih',
|
||||
version: 'v1.13.0',
|
||||
qualifiers: null,
|
||||
subpath: null
|
||||
}
|
||||
])
|
||||
})
|
||||
})
|
||||
|
||||
describe('processGoIndirectDependencies', () => {
|
||||
test('run in go-example', async () => {
|
||||
const purls = await processGoIndirectDependencies(
|
||||
'go-example',
|
||||
'cmd/octocat.go'
|
||||
)
|
||||
expect(purls).toHaveLength(3)
|
||||
expect(purls).toEqual([
|
||||
{
|
||||
type: 'golang',
|
||||
name: 'sys',
|
||||
namespace: 'golang.org/x',
|
||||
version: 'v0.0.0-20210630005230-0f9fa26af87c',
|
||||
qualifiers: null,
|
||||
subpath: null
|
||||
},
|
||||
{
|
||||
type: 'golang',
|
||||
name: 'go-isatty',
|
||||
namespace: 'github.com/mattn',
|
||||
version: 'v0.0.14',
|
||||
qualifiers: null,
|
||||
subpath: null
|
||||
},
|
||||
{
|
||||
type: 'golang',
|
||||
name: 'go-colorable',
|
||||
namespace: 'github.com/mattn',
|
||||
version: 'v0.1.9',
|
||||
qualifiers: null,
|
||||
subpath: null
|
||||
}
|
||||
])
|
||||
})
|
||||
})
|
||||
|
||||
describe('processGoGraph', () => {
|
||||
test.only('run in go-example', async () => {
|
||||
const directDeps = await processGoDirectDependencies(
|
||||
'go-example',
|
||||
'cmd/octocat.go'
|
||||
)
|
||||
const indirectDeps = await processGoIndirectDependencies(
|
||||
'go-example',
|
||||
'cmd/octocat.go'
|
||||
)
|
||||
const cache = await processGoGraph('go-example', directDeps, indirectDeps)
|
||||
|
||||
// we expect the number of direct dependencies + indirect
|
||||
expect(cache.countPackages()).toEqual(4)
|
||||
|
||||
const colorDep = cache.lookupPackage(
|
||||
'pkg:golang/github.com/fatih/[email protected]'
|
||||
)
|
||||
expect(colorDep).not.toBeUndefined()
|
||||
if (colorDep) expect(colorDep.dependencies).toHaveLength(2)
|
||||
})
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user