package proxytest
import "golang.org/x/pkgsite/internal/proxy/proxytest"
Package proxytest supports testing with the proxy.
Index ¶
- Variables
- func NewClientForServer(s *Server) (*proxy.Client, func(), error)
- func SetupTestClient(t *testing.T, modules []*Module) (*proxy.Client, func())
- type Module
- func FindModule(mods []*Module, path, version string) *Module
- func LoadTestModules(dir string) []*Module
- func (m *Module) AddFile(filename, contents string) *Module
- func (m *Module) ChangePath(modulePath string) *Module
- func (m *Module) ChangeVersion(version string) *Module
- func (m *Module) DeleteFile(filename string) *Module
- func (m *Module) ReplaceFile(filename, contents string) *Module
- func (m *Module) TidyVersion() string
- type Server
Variables ¶
CommitTime is the time returned by all calls to the .info endpoint.
Functions ¶
func NewClientForServer ¶
NewClientForServer starts serving proxyMux locally. It returns a client to the server and a function to shut down the server.
func SetupTestClient ¶
SetupTestClient creates a fake module proxy for testing using the given test version information.
It returns a function for tearing down the proxy after the test is completed and a Client for interacting with the test proxy.
Types ¶
type Module ¶
type Module struct { ModulePath string Version string Files map[string]string NotCached bool // if true, behaves like it's uncached // contains filtered or unexported fields }
Module represents a module version used by the proxy server.
func FindModule ¶
FindModule returns the module in mods with the given path and version, or nil if there isn't one. An empty version argument matches any version.
func LoadTestModules ¶
LoadTestModules reads the modules in the given directory. Each file in that directory with a .txtar extension should be named "path@version" and should be in txtar format (golang.org/x/tools/txtar). The path part of the filename will be preceded by "example.com/" and colons will be replaced by slashes to form a full module path. The file contents are used verbatim except that some variables beginning with "$" are substituted with predefined strings.
LoadTestModules panics if there is an error reading any of the files.
func (*Module) AddFile ¶
AddFile returns a copy of m with an additional file. It panics if the filename is already present.
func (*Module) ChangePath ¶
ChangePath returns a copy of m with a different module path.
func (*Module) ChangeVersion ¶
ChangeVersion returns a copy of m with a different version.
func (*Module) DeleteFile ¶
DeleteFile returns a copy of m with filename removed. It panics if filename is not present.
func (*Module) ReplaceFile ¶
ReplaceFile returns a copy of m with different contents for filename. It panics if filename is not present.
func (*Module) TidyVersion ¶
Some module proxies incorrectly return a space after the version. Tests may simulate that that behavior by giving m.Version a space suffix. This function will always, however, return the correct form for the version.
type Server ¶
type Server struct {
// contains filtered or unexported fields
}
Server represents a proxy server containing the specified modules.
func NewServer ¶
NewServer returns a proxy Server that serves the provided modules.
func (*Server) AddModule ¶
AddModule adds an additional module to the server.
func (*Server) AddModuleNoVersions ¶
AddModuleNoVersions adds a module to the server, but the @v/list endpoint will return nothing and @latest endpoint will serve a 410. For testing the unusual case where a module exists but there is no version information.
func (*Server) AddRoute ¶
AddRoute adds an additional handler to the server.
func (*Server) ZipRequests ¶
Source Files ¶
module.go proxytest.go server.go
- Version
- v0.0.0-20250218150137-224a1368cf02 (latest)
- Published
- Feb 18, 2025
- Platform
- linux/amd64
- Imports
- 15 packages
- Last checked
- 2 months ago –
Tools for package owners.