From 8bf9fc0c9c733f0b3e35fefa0ba91b0e90b6955a Mon Sep 17 00:00:00 2001 From: Pasha Sviderski Date: Mon, 18 Aug 2025 18:50:47 +1000 Subject: [PATCH] chore: introduce mockery for generating mocks, generate for CaddyfileValidator --- .mise.lock | 7 ++ .mise.toml | 1 + .mockery.yml | 4 + Makefile | 4 + go.mod | 1 + go.sum | 1 + internal/machine/caddyconfig/mocks_test.go | 87 ++++++++++++++++++++++ 7 files changed, 105 insertions(+) create mode 100644 .mockery.yml create mode 100644 internal/machine/caddyconfig/mocks_test.go diff --git a/.mise.lock b/.mise.lock index 314684e6..0d408c17 100644 --- a/.mise.lock +++ b/.mise.lock @@ -1,3 +1,10 @@ +[tools."aqua:vektra/mockery"] +version = "3.5.3" +backend = "aqua:vektra/mockery" + +[tools."aqua:vektra/mockery".checksums] +"mockery_3.5.3_Darwin_arm64.tar.gz" = "sha256:a3a94b14c7414e148f2252199ffc4a0108d311358f3d336cbe05bb73cb203704" + [tools.go] version = "1.23.10" backend = "core:go" diff --git a/.mise.toml b/.mise.toml index dd06c592..d8b1d004 100644 --- a/.mise.toml +++ b/.mise.toml @@ -2,6 +2,7 @@ experimental = true [tools] +"aqua:vektra/mockery" = "3.5.3" go = "1.23" golangci-lint = "2.2.2" protoc = "27.3" diff --git a/.mockery.yml b/.mockery.yml new file mode 100644 index 00000000..2d192628 --- /dev/null +++ b/.mockery.yml @@ -0,0 +1,4 @@ +packages: + github.com/psviderski/uncloud/internal/machine/caddyconfig: + interfaces: + CaddyfileValidator: diff --git a/Makefile b/Makefile index 9114aa08..b3859825 100644 --- a/Makefile +++ b/Makefile @@ -66,6 +66,10 @@ ucind-image: ucind-multiarch-image-push: docker buildx build --push --platform linux/amd64,linux/arm64 -t "$(UCIND_IMAGE)" --target ucind . +.PHONY: mocks +mocks: + @mockery + .PHONY: test test: ifeq ($(TEST_NAME),) diff --git a/go.mod b/go.mod index fa706a07..f7ae1f86 100644 --- a/go.mod +++ b/go.mod @@ -265,6 +265,7 @@ require ( github.com/spf13/cast v1.7.0 // indirect github.com/spf13/pflag v1.0.5 // indirect github.com/stoewer/go-strcase v1.2.0 // indirect + github.com/stretchr/objx v0.5.2 // indirect github.com/tailscale/tscert v0.0.0-20240517230440-bbccfbf48933 // indirect github.com/theupdateframework/notary v0.7.0 // indirect github.com/tonistiigi/dchapes-mode v0.0.0-20241001053921-ca0759fec205 // indirect diff --git a/go.sum b/go.sum index 70399144..32bee10a 100644 --- a/go.sum +++ b/go.sum @@ -1039,6 +1039,7 @@ github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+ github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= +github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY= github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= diff --git a/internal/machine/caddyconfig/mocks_test.go b/internal/machine/caddyconfig/mocks_test.go new file mode 100644 index 00000000..bdb2ccdc --- /dev/null +++ b/internal/machine/caddyconfig/mocks_test.go @@ -0,0 +1,87 @@ +// Code generated by mockery; DO NOT EDIT. +// github.com/vektra/mockery +// template: testify + +package caddyconfig + +import ( + mock "github.com/stretchr/testify/mock" +) + +// NewMockCaddyfileValidator creates a new instance of MockCaddyfileValidator. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. +// The first argument is typically a *testing.T value. +func NewMockCaddyfileValidator(t interface { + mock.TestingT + Cleanup(func()) +}) *MockCaddyfileValidator { + mock := &MockCaddyfileValidator{} + mock.Mock.Test(t) + + t.Cleanup(func() { mock.AssertExpectations(t) }) + + return mock +} + +// MockCaddyfileValidator is an autogenerated mock type for the CaddyfileValidator type +type MockCaddyfileValidator struct { + mock.Mock +} + +type MockCaddyfileValidator_Expecter struct { + mock *mock.Mock +} + +func (_m *MockCaddyfileValidator) EXPECT() *MockCaddyfileValidator_Expecter { + return &MockCaddyfileValidator_Expecter{mock: &_m.Mock} +} + +// Validate provides a mock function for the type MockCaddyfileValidator +func (_mock *MockCaddyfileValidator) Validate(caddyfile string) error { + ret := _mock.Called(caddyfile) + + if len(ret) == 0 { + panic("no return value specified for Validate") + } + + var r0 error + if returnFunc, ok := ret.Get(0).(func(string) error); ok { + r0 = returnFunc(caddyfile) + } else { + r0 = ret.Error(0) + } + return r0 +} + +// MockCaddyfileValidator_Validate_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'Validate' +type MockCaddyfileValidator_Validate_Call struct { + *mock.Call +} + +// Validate is a helper method to define mock.On call +// - caddyfile string +func (_e *MockCaddyfileValidator_Expecter) Validate(caddyfile interface{}) *MockCaddyfileValidator_Validate_Call { + return &MockCaddyfileValidator_Validate_Call{Call: _e.mock.On("Validate", caddyfile)} +} + +func (_c *MockCaddyfileValidator_Validate_Call) Run(run func(caddyfile string)) *MockCaddyfileValidator_Validate_Call { + _c.Call.Run(func(args mock.Arguments) { + var arg0 string + if args[0] != nil { + arg0 = args[0].(string) + } + run( + arg0, + ) + }) + return _c +} + +func (_c *MockCaddyfileValidator_Validate_Call) Return(err error) *MockCaddyfileValidator_Validate_Call { + _c.Call.Return(err) + return _c +} + +func (_c *MockCaddyfileValidator_Validate_Call) RunAndReturn(run func(caddyfile string) error) *MockCaddyfileValidator_Validate_Call { + _c.Call.Return(run) + return _c +}