From 8d21bb92db9cd0b5e84de4db1748228a468c3bd4 Mon Sep 17 00:00:00 2001 From: Alexander Neumann Date: Mon, 14 May 2018 22:56:20 +0200 Subject: [PATCH] Add tests for invalid configs --- internal/ui/config/config_test.go | 43 +++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/internal/ui/config/config_test.go b/internal/ui/config/config_test.go index fe8734bdf..19493d668 100644 --- a/internal/ui/config/config_test.go +++ b/internal/ui/config/config_test.go @@ -73,6 +73,49 @@ func TestConfigLoad(t *testing.T) { } } +func TestInvalidConfigs(t *testing.T) { + var tests = []struct { + config string + err string + }{ + { + config: `backend ""`, + err: "expected start of object", + }, + { + config: `backend "" {}`, + err: "name is empty", + }, + { + config: `backend "foo" { + type = "" + user = "xxx" + }`, + err: `unknown option "user"`, + }, + { + config: `backend "foo" { + type = "local" + user = "xxx" + }`, + err: `unknown option "user"`, + }, + } + + for _, test := range tests { + t.Run("", func(t *testing.T) { + _, err := Parse([]byte(test.config)) + if err == nil { + t.Fatalf("expected error not found, got nil") + } + + if !strings.Contains(err.Error(), test.err) { + t.Fatalf("returned error does not contain substring %q: %q", test.err, err.Error()) + } + }) + } +} + func TestConfigApplyFlags(t *testing.T) { var tests = []struct { filename string