internal/frontend: move TestGetNestedModules to unit_main_test.go
Pure code in motion.
Change-Id: I4b65460837aca32bb0cb59fcdd4f9bdbdc110617
Reviewed-on: https://go-review.googlesource.com/c/pkgsite/+/262001
Trust: Julie Qiu <julie@golang.org>
Run-TryBot: Julie Qiu <julie@golang.org>
TryBot-Result: kokoro <noreply+kokoro@google.com>
Reviewed-by: Jamal Carvalho <jamal@golang.org>
diff --git a/internal/frontend/unit_main_test.go b/internal/frontend/unit_main_test.go
new file mode 100644
index 0000000..72a744a
--- /dev/null
+++ b/internal/frontend/unit_main_test.go
@@ -0,0 +1,88 @@
+// Copyright 2020 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.
+
+package frontend
+
+import (
+ "context"
+ "testing"
+
+ "github.com/google/go-cmp/cmp"
+ "golang.org/x/pkgsite/internal"
+ "golang.org/x/pkgsite/internal/postgres"
+ "golang.org/x/pkgsite/internal/testing/sample"
+)
+
+func TestGetNestedModules(t *testing.T) {
+ ctx, cancel := context.WithTimeout(context.Background(), testTimeout)
+ defer cancel()
+ defer postgres.ResetTestDB(testDB, t)
+
+ for _, m := range []*internal.Module{
+ sample.LegacyModule("cloud.google.com/go", "v0.46.2", "storage", "spanner", "pubsub"),
+ sample.LegacyModule("cloud.google.com/go/pubsub", "v1.6.1", sample.Suffix),
+ sample.LegacyModule("cloud.google.com/go/spanner", "v1.9.0", sample.Suffix),
+ sample.LegacyModule("cloud.google.com/go/storage", "v1.10.0", sample.Suffix),
+ sample.LegacyModule("cloud.google.com/go/storage/v11", "v11.0.0", sample.Suffix),
+ sample.LegacyModule("cloud.google.com/go/storage/v9", "v9.0.0", sample.Suffix),
+ sample.LegacyModule("cloud.google.com/go/storage/module", "v1.10.0", sample.Suffix),
+ sample.LegacyModule("cloud.google.com/go/v2", "v2.0.0", "storage", "spanner", "pubsub"),
+ } {
+ if err := testDB.InsertModule(ctx, m); err != nil {
+ t.Fatal(err)
+ }
+ }
+
+ for _, tc := range []struct {
+ modulePath string
+ want []*NestedModule
+ }{
+ {
+ modulePath: "cloud.google.com/go",
+ want: []*NestedModule{
+ {
+ Suffix: "pubsub",
+ URL: "/cloud.google.com/go/pubsub",
+ },
+ {
+ Suffix: "spanner",
+ URL: "/cloud.google.com/go/spanner",
+ },
+ {
+ Suffix: "storage",
+ URL: "/cloud.google.com/go/storage/v11",
+ },
+ {
+ Suffix: "storage/module",
+ URL: "/cloud.google.com/go/storage/module",
+ },
+ },
+ },
+ {
+ modulePath: "cloud.google.com/go/spanner",
+ },
+ {
+ modulePath: "cloud.google.com/go/storage",
+ want: []*NestedModule{
+ {
+ Suffix: "module",
+ URL: "/cloud.google.com/go/storage/module",
+ },
+ },
+ },
+ } {
+ t.Run(tc.modulePath, func(t *testing.T) {
+ got, err := getNestedModules(ctx, testDB, &internal.UnitMeta{
+ Path: tc.modulePath,
+ ModulePath: tc.modulePath,
+ })
+ if err != nil {
+ t.Fatal(err)
+ }
+ if diff := cmp.Diff(tc.want, got); diff != "" {
+ t.Errorf("mismatch (-want +got):\n%s", diff)
+ }
+ })
+ }
+}