package domain_test import ( "testing" "gitea.dwysokinski.me/twhelp/corev3/internal/domain" "gitea.dwysokinski.me/twhelp/corev3/internal/domain/domaintest" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" ) func TestNewBaseServer(t *testing.T) { t.Parallel() validBaseServer := domaintest.NewBaseServer(t, domaintest.BaseServerConfig{}) type args struct { key string url string open bool } type test struct { name string args args expectedErr error } tests := []test{ { name: "OK", args: args{ key: validBaseServer.Key(), url: validBaseServer.URL().String(), open: validBaseServer.Open(), }, }, { name: "ERR: invalid URL", args: args{ key: validBaseServer.Key(), url: " ", open: validBaseServer.Open(), }, expectedErr: domain.ValidationError{ Err: domain.InvalidURLError{URL: " "}, Field: "url", }, }, } for _, serverKeyTest := range newServerKeyValidationTests() { tests = append(tests, test{ name: serverKeyTest.name, args: args{ key: serverKeyTest.key, url: validBaseServer.URL().String(), open: validBaseServer.Open(), }, expectedErr: domain.ValidationError{ Err: serverKeyTest.expectedErr, Field: "key", }, }) } for _, tt := range tests { tt := tt t.Run(tt.name, func(t *testing.T) { t.Parallel() res, err := domain.NewBaseServer(tt.args.key, tt.args.url, tt.args.open) require.ErrorIs(t, err, tt.expectedErr) if tt.expectedErr != nil { return } assert.Equal(t, tt.args.key, res.Key()) assert.Equal(t, tt.args.url, res.URL().String()) assert.Equal(t, tt.args.open, res.Open()) }) } }