From e08c6dc618b3ad07d82f4a0d8238c6e73112cb2e Mon Sep 17 00:00:00 2001 From: yangyq Date: Mon, 1 Aug 2022 18:48:12 -0400 Subject: [PATCH 1/2] add lock for parallel tests --- internal/usecase/translation_test.go | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/internal/usecase/translation_test.go b/internal/usecase/translation_test.go index ad6d7743..df74fe99 100644 --- a/internal/usecase/translation_test.go +++ b/internal/usecase/translation_test.go @@ -3,6 +3,7 @@ package usecase_test import ( "context" "errors" + "sync" "testing" "github.com/golang/mock/gomock" @@ -40,6 +41,8 @@ func TestHistory(t *testing.T) { translation, repo, _ := translation(t) + var mu sync.Mutex + tests := []test{ { name: "empty result", @@ -65,9 +68,11 @@ func TestHistory(t *testing.T) { t.Run(tc.name, func(t *testing.T) { t.Parallel() + mu.Lock() tc.mock() res, err := translation.History(context.Background()) + mu.Unlock() require.Equal(t, res, tc.res) require.ErrorIs(t, err, tc.err) @@ -80,6 +85,8 @@ func TestTranslate(t *testing.T) { translation, repo, webAPI := translation(t) + var mu sync.Mutex + tests := []test{ { name: "empty result", @@ -115,9 +122,11 @@ func TestTranslate(t *testing.T) { t.Run(tc.name, func(t *testing.T) { t.Parallel() + mu.Lock() tc.mock() res, err := translation.Translate(context.Background(), entity.Translation{}) + mu.Unlock() require.EqualValues(t, res, tc.res) require.ErrorIs(t, err, tc.err) From 348191a20f4b4c8c6da7f49ba504cb032a1331ad Mon Sep 17 00:00:00 2001 From: yangyq Date: Mon, 1 Aug 2022 23:02:27 -0400 Subject: [PATCH 2/2] use defer --- internal/usecase/translation_test.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/internal/usecase/translation_test.go b/internal/usecase/translation_test.go index df74fe99..cc310f23 100644 --- a/internal/usecase/translation_test.go +++ b/internal/usecase/translation_test.go @@ -67,12 +67,12 @@ func TestHistory(t *testing.T) { t.Run(tc.name, func(t *testing.T) { t.Parallel() - mu.Lock() + defer mu.Unlock() + tc.mock() res, err := translation.History(context.Background()) - mu.Unlock() require.Equal(t, res, tc.res) require.ErrorIs(t, err, tc.err) @@ -121,12 +121,12 @@ func TestTranslate(t *testing.T) { t.Run(tc.name, func(t *testing.T) { t.Parallel() - mu.Lock() + defer mu.Unlock() + tc.mock() res, err := translation.Translate(context.Background(), entity.Translation{}) - mu.Unlock() require.EqualValues(t, res, tc.res) require.ErrorIs(t, err, tc.err)