From 452668c893a27006e4a602914b087258532b6e86 Mon Sep 17 00:00:00 2001 From: Dean Sheather Date: Wed, 29 Nov 2023 03:04:25 +1000 Subject: [PATCH] chore: avoid dbmock test errors in dbgen (#10923) --- coderd/database/generate.sh | 5 +++-- coderd/database/gentest/doc.go | 8 ++++++++ coderd/database/{ => gentest}/models_test.go | 2 +- 3 files changed, 12 insertions(+), 3 deletions(-) create mode 100644 coderd/database/gentest/doc.go rename coderd/database/{ => gentest}/models_test.go (99%) diff --git a/coderd/database/generate.sh b/coderd/database/generate.sh index c5c9c0c12e..3fc5111a2b 100755 --- a/coderd/database/generate.sh +++ b/coderd/database/generate.sh @@ -58,6 +58,7 @@ SCRIPT_DIR=$(dirname "${BASH_SOURCE[0]}") go run golang.org/x/tools/cmd/goimports@latest -w queries.sql.go go run ../../scripts/dbgen - # This will error if a view is broken. - go test -run=TestViewSubset + # This will error if a view is broken. This is in it's own package to avoid + # stuff like dbmock breaking builds if it's out of date from the interface. + go test ./gentest ) diff --git a/coderd/database/gentest/doc.go b/coderd/database/gentest/doc.go new file mode 100644 index 0000000000..ed0629b708 --- /dev/null +++ b/coderd/database/gentest/doc.go @@ -0,0 +1,8 @@ +// Package gentest contains tests that are run at db generate time. These tests +// need to exist in their own package to avoid importing stuff that gets +// generated after the DB. +// +// E.g. if we put these tests in coderd/database, then we'd be importing dbmock +// which is generated after the DB and can cause type problems when building +// the tests. +package gentest diff --git a/coderd/database/models_test.go b/coderd/database/gentest/models_test.go similarity index 99% rename from coderd/database/models_test.go rename to coderd/database/gentest/models_test.go index a3c37683ac..4882c77c17 100644 --- a/coderd/database/models_test.go +++ b/coderd/database/gentest/models_test.go @@ -1,4 +1,4 @@ -package database_test +package gentest_test import ( "reflect"