From 21fbf617860eca34430962716c9474798dd98488 Mon Sep 17 00:00:00 2001 From: CatchZeng <891793848@qq.com> Date: Fri, 21 Jan 2022 18:15:07 +0800 Subject: [PATCH] fix: unit test --- Makefile | 2 +- README.md | 4 ++-- READMEEN.md | 4 ++-- cmd/dingtalk/actionCard.go | 6 ++++++ cmd/dingtalk/actionCard_test.go | 5 +++++ cmd/dingtalk/feedCard.go | 3 +++ cmd/dingtalk/feedCard_test.go | 6 ++++++ cmd/dingtalk/link.go | 4 ++++ cmd/dingtalk/link_test.go | 6 ++++++ cmd/dingtalk/markdown.go | 3 +++ cmd/dingtalk/markdown_test.go | 6 ++++++ cmd/dingtalk/root_test.go | 8 ++++++++ cmd/dingtalk/text.go | 2 ++ cmd/dingtalk/text_test.go | 5 +++++ cmd/dingtalk/version.go | 2 +- 15 files changed, 60 insertions(+), 6 deletions(-) diff --git a/Makefile b/Makefile index 08c4e54..01e3778 100644 --- a/Makefile +++ b/Makefile @@ -2,7 +2,7 @@ SHELL := /bin/bash BASEDIR = $(shell pwd) APP_NAME=dingtalk -APP_VERSION=1.3.2 +APP_VERSION=1.3.3 IMAGE_NAME="catchzeng/${APP_NAME}:${APP_VERSION}" IMAGE_LATEST="catchzeng/${APP_NAME}:latest" diff --git a/README.md b/README.md index d84189a..073ef07 100644 --- a/README.md +++ b/README.md @@ -70,10 +70,10 @@ docker pull catchzeng/dingtalk ```sh # Go 1.16+ -go install github.com/CatchZeng/dingtalk@v1.3.2 +go install github.com/CatchZeng/dingtalk@v1.3.3 # Go version < 1.16 -go get -u github.com/CatchZeng/dingtalk@v1.3.2 +go get -u github.com/CatchZeng/dingtalk@v1.3.3 ``` ## 使用方法 diff --git a/READMEEN.md b/READMEEN.md index 097b002..20a6e37 100644 --- a/READMEEN.md +++ b/READMEEN.md @@ -68,10 +68,10 @@ Go to [releases](https://github.com/CatchZeng/dingtalk/releases/) to download th ```sh # Go 1.16+ -go install github.com/CatchZeng/dingtalk@v1.3.2 +go install github.com/CatchZeng/dingtalk@v1.3.3 # Go version < 1.16 -go get -u github.com/CatchZeng/dingtalk@v1.3.2 +go get -u github.com/CatchZeng/dingtalk@v1.3.3 ``` ## Usage diff --git a/cmd/dingtalk/actionCard.go b/cmd/dingtalk/actionCard.go index 2c0a9c8..feee9ed 100644 --- a/cmd/dingtalk/actionCard.go +++ b/cmd/dingtalk/actionCard.go @@ -18,27 +18,32 @@ var actionCardCmd = &cobra.Command{ func runActionCardCmd(_ *cobra.Command, args []string) { if len(actionCardVars.Title) < 1 { log.Fatal("title can not be empty") + return } if len(actionCardVars.Text) < 1 { log.Fatal("text can not be empty") + return } var isOverallJump = false if len(actionCardVars.SingleTitle) < 1 { if len(btnTitles) < 1 { log.Fatal("btns can not be empty when singleTitle is empty") + return } } else { isOverallJump = true if len(actionCardVars.SingleURL) < 1 { log.Fatal("singleURL can not be empty") + return } } client, err := newClient() if err != nil { log.Fatal(err.Error()) + return } msg := dingtalk.NewActionCardMessage() @@ -53,6 +58,7 @@ func runActionCardCmd(_ *cobra.Command, args []string) { } else { if len(btnTitles) != len(btnActionURLs) { log.Fatal("btnTitles & btnActionURLs count must be equal") + return } for i := 0; i < len(btnTitles); i++ { diff --git a/cmd/dingtalk/actionCard_test.go b/cmd/dingtalk/actionCard_test.go index 7118a33..0821424 100644 --- a/cmd/dingtalk/actionCard_test.go +++ b/cmd/dingtalk/actionCard_test.go @@ -14,6 +14,11 @@ import ( ) func Test_runActionCardCmd(t *testing.T) { + fakeExit := func(int) { + log.Print("fake exit") + } + patch := monkey.Patch(os.Exit, fakeExit) + defer patch.Unpatch() t.Run("title is empty", func(t *testing.T) { var buf bytes.Buffer diff --git a/cmd/dingtalk/feedCard.go b/cmd/dingtalk/feedCard.go index 5dd5a65..647a8e6 100644 --- a/cmd/dingtalk/feedCard.go +++ b/cmd/dingtalk/feedCard.go @@ -18,12 +18,14 @@ var feedCardCmd = &cobra.Command{ func runFeedCardCmd(_ *cobra.Command, args []string) { if len(feedCardVars.titles) < 1 || len(feedCardVars.picURLs) < 1 || len(feedCardVars.messageURLs) < 1 { log.Fatal("titles & picURLs & messageURLs can not be empty") + return } if len(feedCardVars.titles) == len(feedCardVars.picURLs) && len(feedCardVars.picURLs) == len(feedCardVars.messageURLs) { client, err := newClient() if err != nil { log.Fatal(err.Error()) + return } msg := dingtalk.NewFeedCardMessage() @@ -36,6 +38,7 @@ func runFeedCardCmd(_ *cobra.Command, args []string) { } if err != nil { log.Fatal(err.Error()) + return } } else { log.Fatal("titles & picURLs & messageURLs count must be equal") diff --git a/cmd/dingtalk/feedCard_test.go b/cmd/dingtalk/feedCard_test.go index 0bba8b9..f30d5e8 100644 --- a/cmd/dingtalk/feedCard_test.go +++ b/cmd/dingtalk/feedCard_test.go @@ -14,6 +14,12 @@ import ( ) func Test_runFeedCardCmd(t *testing.T) { + fakeExit := func(int) { + log.Print("fake exit") + } + patch := monkey.Patch(os.Exit, fakeExit) + defer patch.Unpatch() + const emptyMsg = "titles & picURLs & messageURLs can not be empty" const differentCountMsg = "titles & picURLs & messageURLs count must be equal" diff --git a/cmd/dingtalk/link.go b/cmd/dingtalk/link.go index 4e3a363..3a646b9 100644 --- a/cmd/dingtalk/link.go +++ b/cmd/dingtalk/link.go @@ -18,19 +18,23 @@ var linkCmd = &cobra.Command{ func runLinkCmd(_ *cobra.Command, args []string) { if len(linkVars.title) < 1 { log.Fatal("title can not be empty") + return } if len(linkVars.text) < 1 { log.Fatal("text can not be empty") + return } if len(linkVars.messageURL) < 1 { log.Fatal("messageURL can not be empty") + return } client, err := newClient() if err != nil { log.Fatal(err.Error()) + return } msg := dingtalk.NewLinkMessage(). diff --git a/cmd/dingtalk/link_test.go b/cmd/dingtalk/link_test.go index cfb9c3c..856439c 100644 --- a/cmd/dingtalk/link_test.go +++ b/cmd/dingtalk/link_test.go @@ -14,6 +14,12 @@ import ( ) func Test_runLinkCmd(t *testing.T) { + fakeExit := func(int) { + log.Print("fake exit") + } + patch := monkey.Patch(os.Exit, fakeExit) + defer patch.Unpatch() + t.Run("title is empty", func(t *testing.T) { var buf bytes.Buffer log.SetOutput(&buf) diff --git a/cmd/dingtalk/markdown.go b/cmd/dingtalk/markdown.go index cb5dc83..b2ae73a 100644 --- a/cmd/dingtalk/markdown.go +++ b/cmd/dingtalk/markdown.go @@ -18,15 +18,18 @@ var markdownCmd = &cobra.Command{ func runMarkdownCmd(_ *cobra.Command, args []string) { if len(markdownVars.title) < 1 { log.Fatal("title can not be empty") + return } if len(markdownVars.text) < 1 { log.Fatal("text can not be empty") + return } client, err := newClient() if err != nil { log.Fatal(err.Error()) + return } msg := dingtalk.NewMarkdownMessage(). diff --git a/cmd/dingtalk/markdown_test.go b/cmd/dingtalk/markdown_test.go index 278ede4..5eb1ca1 100644 --- a/cmd/dingtalk/markdown_test.go +++ b/cmd/dingtalk/markdown_test.go @@ -14,6 +14,12 @@ import ( ) func Test_runMarkdownCmd(t *testing.T) { + fakeExit := func(int) { + log.Print("fake exit") + } + patch := monkey.Patch(os.Exit, fakeExit) + defer patch.Unpatch() + t.Run("title is empty", func(t *testing.T) { var buf bytes.Buffer log.SetOutput(&buf) diff --git a/cmd/dingtalk/root_test.go b/cmd/dingtalk/root_test.go index 508629c..7388ae0 100644 --- a/cmd/dingtalk/root_test.go +++ b/cmd/dingtalk/root_test.go @@ -2,6 +2,8 @@ package dingtalk import ( "errors" + "log" + "os" "testing" "bou.ke/monkey" @@ -9,6 +11,12 @@ import ( ) func Test_newClient(t *testing.T) { + fakeExit := func(int) { + log.Print("fake exit") + } + patch := monkey.Patch(os.Exit, fakeExit) + defer patch.Unpatch() + t.Run("getAccessToken return empty", func(t *testing.T) { accessToken = "" _, err := newClient() diff --git a/cmd/dingtalk/text.go b/cmd/dingtalk/text.go index d80db5a..161c431 100644 --- a/cmd/dingtalk/text.go +++ b/cmd/dingtalk/text.go @@ -18,11 +18,13 @@ var textCmd = &cobra.Command{ func runTextCmd(_ *cobra.Command, _ []string) { if len(textVars.content) < 1 { log.Fatal("content can not be empty") + return } client, err := newClient() if err != nil { log.Fatal(err.Error()) + return } msg := dingtalk.NewTextMessage(). diff --git a/cmd/dingtalk/text_test.go b/cmd/dingtalk/text_test.go index 4519603..9b67493 100644 --- a/cmd/dingtalk/text_test.go +++ b/cmd/dingtalk/text_test.go @@ -14,6 +14,11 @@ import ( ) func Test_runTextCmd(t *testing.T) { + fakeExit := func(int) { + log.Print("fake exit") + } + patch := monkey.Patch(os.Exit, fakeExit) + defer patch.Unpatch() t.Run("content is empty", func(t *testing.T) { var buf bytes.Buffer diff --git a/cmd/dingtalk/version.go b/cmd/dingtalk/version.go index b793b90..f624ce9 100644 --- a/cmd/dingtalk/version.go +++ b/cmd/dingtalk/version.go @@ -8,7 +8,7 @@ import ( ) const ( - version = "1.3.2" + version = "1.3.3" buildTime = "2022/01/21" )