From 2b788b0e9c4a5d6277356c630d876f39df7b0084 Mon Sep 17 00:00:00 2001 From: "Miroslav V. Vasilev" Date: Tue, 18 Mar 2025 22:33:44 +0200 Subject: [PATCH] Move errors to new common package, improve test coverage script --- bin/test_coverage.sh | 5 +++-- internal/{pilgrim_conf => pilgrim_common}/error.go | 6 +++++- internal/pilgrim_conf/context.go | 4 +++- internal/pilgrim_conf/url_parts.go | 4 +++- 4 files changed, 14 insertions(+), 5 deletions(-) rename internal/{pilgrim_conf => pilgrim_common}/error.go (81%) diff --git a/bin/test_coverage.sh b/bin/test_coverage.sh index a3035c1..f019bc1 100755 --- a/bin/test_coverage.sh +++ b/bin/test_coverage.sh @@ -1,11 +1,12 @@ pushd $(dirname "$0")/.. # run from root dir -set -e +rm -rf ./coverage +mkdir ./coverage/ go build -cover -o target/pilgrim_coverage main.go chmod 777 ./target/pilgrim_coverage -GOCOVERDIR=coverage ./target/pilgrim +GOCOVERDIR=coverage ./target/pilgrim_coverage go tool covdata percent -i=coverage diff --git a/internal/pilgrim_conf/error.go b/internal/pilgrim_common/error.go similarity index 81% rename from internal/pilgrim_conf/error.go rename to internal/pilgrim_common/error.go index 5576fd4..0ff9d45 100644 --- a/internal/pilgrim_conf/error.go +++ b/internal/pilgrim_common/error.go @@ -1,4 +1,8 @@ -package pilgrim_conf +package pilgrim_common + +type PilgrimError interface { + error +} type pilgrimValidationError struct { validationError string diff --git a/internal/pilgrim_conf/context.go b/internal/pilgrim_conf/context.go index 0dd80f6..3a65843 100644 --- a/internal/pilgrim_conf/context.go +++ b/internal/pilgrim_conf/context.go @@ -2,6 +2,8 @@ package pilgrim_conf import ( "log" + + "mvvasilev.dev/pilgrim/internal/pilgrim_common" ) const DefaultMigrationDirectory = "./migrations" @@ -143,7 +145,7 @@ func determineMigrationPhaseAndScript(cli MigrationPhaseRetriever) (phase Migrat _, isDownProvided := cli.IsDown() if (!isUpProvided && !isDownProvided) || (isUpProvided && isDownProvided) { - return MigrationPhase_Down, EmptyString, PilgrimInvalidError("Must provide either --up or --down, but not both.") + return MigrationPhase_Down, EmptyString, pilgrim_common.PilgrimInvalidError("Must provide either --up or --down, but not both.") } if isUp { diff --git a/internal/pilgrim_conf/url_parts.go b/internal/pilgrim_conf/url_parts.go index e2a00ad..01c6aca 100644 --- a/internal/pilgrim_conf/url_parts.go +++ b/internal/pilgrim_conf/url_parts.go @@ -6,6 +6,8 @@ import ( "regexp" "slices" "strings" + + "mvvasilev.dev/pilgrim/internal/pilgrim_common" ) const EmptyString = "" @@ -135,7 +137,7 @@ func ParseArguments(arguments string) map[string]string { // Returns true if valid, with nil error, or false if invalid, with the validation error func (urlParts *UrlParts) Validate() (bool, error) { if !slices.Contains(AvailableDbDrivers, DbDriver(urlParts.Driver)) { - return false, PilgrimInvalidError(fmt.Sprintf("URLParts invalid: Provided driver %v is not currently supported ( must be one of %v )", urlParts.Driver, AvailableDbDrivers)) + return false, pilgrim_common.PilgrimInvalidError(fmt.Sprintf("URLParts invalid: Provided driver \"%v\" is not currently supported ( must be one of %v )", urlParts.Driver, AvailableDbDrivers)) } return true, nil