aboutsummaryrefslogtreecommitdiff
path: root/gopls/internal/vulncheck/vulntest/db_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'gopls/internal/vulncheck/vulntest/db_test.go')
-rw-r--r--gopls/internal/vulncheck/vulntest/db_test.go61
1 files changed, 61 insertions, 0 deletions
diff --git a/gopls/internal/vulncheck/vulntest/db_test.go b/gopls/internal/vulncheck/vulntest/db_test.go
new file mode 100644
index 000000000..7d939421c
--- /dev/null
+++ b/gopls/internal/vulncheck/vulntest/db_test.go
@@ -0,0 +1,61 @@
+// 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)
+ }
+}