blob: 7d939421c948578615a3c21382b629ab142157a1 [file] [log] [blame]
// Copyright 2022 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
//go:build go1.18
// +build go1.18
package vulntest
import (
"context"
"encoding/json"
"testing"
)
func TestNewDatabase(t *testing.T) {
ctx := context.Background()
in := []byte(`
-- GO-2020-0001.yaml --
modules:
- module: github.com/gin-gonic/gin
versions:
- fixed: 1.6.0
packages:
- package: github.com/gin-gonic/gin
symbols:
- defaultLogFormatter
description: |
Something.
published: 2021-04-14T20:04:52Z
references:
- fix: https://github.com/gin-gonic/gin/pull/2237
`)
db, err := NewDatabase(ctx, in)
if err != nil {
t.Fatal(err)
}
defer db.Clean()
cli, err := NewClient(db)
if err != nil {
t.Fatal(err)
}
got, err := cli.GetByID(ctx, "GO-2020-0001")
if err != nil {
t.Fatal(err)
}
if got.ID != "GO-2020-0001" {
m, _ := json.Marshal(got)
t.Errorf("got %s\nwant GO-2020-0001 entry", m)
}
gotAll, err := cli.GetByModule(ctx, "github.com/gin-gonic/gin")
if err != nil {
t.Fatal(err)
}
if len(gotAll) != 1 || gotAll[0].ID != "GO-2020-0001" {
m, _ := json.Marshal(got)
t.Errorf("got %s\nwant GO-2020-0001 entry", m)
}
}