Documentation ¶
Index ¶
- Variables
- func AGPLRoutes(a *AuthTester) (map[string]string, map[string]RouteCheck)
- func AwaitTemplateVersionJob(t *testing.T, client *codersdk.Client, version uuid.UUID) codersdk.TemplateVersion
- func AwaitWorkspaceAgents(t *testing.T, client *codersdk.Client, workspaceID uuid.UUID) []codersdk.WorkspaceResource
- func AwaitWorkspaceBuildJob(t *testing.T, client *codersdk.Client, build uuid.UUID) codersdk.WorkspaceBuild
- func CreateAnotherUser(t *testing.T, client *codersdk.Client, organizationID uuid.UUID, ...) *codersdk.Client
- func CreateAnotherUserWithUser(t *testing.T, client *codersdk.Client, organizationID uuid.UUID, ...) (*codersdk.Client, codersdk.User)
- func CreateFirstUser(t *testing.T, client *codersdk.Client) codersdk.CreateFirstUserResponse
- func CreateTemplate(t *testing.T, client *codersdk.Client, organization uuid.UUID, ...) codersdk.Template
- func CreateTemplateVersion(t *testing.T, client *codersdk.Client, organizationID uuid.UUID, ...) codersdk.TemplateVersion
- func CreateWorkspace(t *testing.T, client *codersdk.Client, organization uuid.UUID, ...) codersdk.Workspace
- func CreateWorkspaceBuild(t *testing.T, client *codersdk.Client, workspace codersdk.Workspace, ...) codersdk.WorkspaceBuild
- func DeploymentConfig(t *testing.T) *codersdk.DeploymentConfig
- func MustTransitionWorkspace(t *testing.T, client *codersdk.Client, workspaceID uuid.UUID, ...) codersdk.Workspace
- func MustWorkspace(t *testing.T, client *codersdk.Client, workspaceID uuid.UUID) codersdk.Workspace
- func New(t *testing.T, options *Options) *codersdk.Client
- func NewAWSInstanceIdentity(t *testing.T, instanceID string) (awsidentity.Certificates, *http.Client)
- func NewAzureInstanceIdentity(t *testing.T, instanceID string) (x509.VerifyOptions, *http.Client)
- func NewExternalProvisionerDaemon(t *testing.T, client *codersdk.Client, org uuid.UUID, tags map[string]string) io.Closer
- func NewGoogleInstanceIdentity(t *testing.T, instanceID string, expired bool) (*idtoken.Validator, *metadata.Client)
- func NewOptions(t *testing.T, options *Options) (func(http.Handler), context.CancelFunc, *coderd.Options)
- func NewProvisionerDaemon(t *testing.T, coderAPI *coderd.API) io.Closer
- func NewWithAPI(t *testing.T, options *Options) (*codersdk.Client, io.Closer, *coderd.API)
- func NewWithProvisionerCloser(t *testing.T, options *Options) (*codersdk.Client, io.Closer)
- func SDKError(t *testing.T, err error) *codersdk.Error
- func UpdateTemplateVersion(t *testing.T, client *codersdk.Client, organizationID uuid.UUID, ...) codersdk.TemplateVersion
- type AuthTester
- type OIDCConfig
- func (*OIDCConfig) AuthCodeURL(state string, _ ...oauth2.AuthCodeOption) string
- func (o *OIDCConfig) EncodeClaims(t *testing.T, claims jwt.MapClaims) string
- func (*OIDCConfig) Exchange(_ context.Context, code string, _ ...oauth2.AuthCodeOption) (*oauth2.Token, error)
- func (o *OIDCConfig) OIDCConfig() *coderd.OIDCConfig
- func (*OIDCConfig) TokenSource(context.Context, *oauth2.Token) oauth2.TokenSource
- type Options
- type RecordingAuthorizer
- func (r *RecordingAuthorizer) ByRoleName(_ context.Context, subjectID string, roleNames []string, scope rbac.Scope, ...) error
- func (r *RecordingAuthorizer) ByRoleNameSQL(_ context.Context, _ string, _ []string, _ rbac.Scope, _ []string, ...) error
- func (r *RecordingAuthorizer) PrepareByRoleName(_ context.Context, subjectID string, roles []string, scope rbac.Scope, ...) (rbac.PreparedAuthorized, error)
- type RouteCheck
Constants ¶
This section is empty.
Variables ¶
var FirstUserParams = codersdk.CreateFirstUserRequest{
Email: "testuser@coder.com",
Username: "testuser",
Password: "testpass",
}
Functions ¶
func AGPLRoutes ¶ added in v0.8.7
func AGPLRoutes(a *AuthTester) (map[string]string, map[string]RouteCheck)
func AwaitTemplateVersionJob ¶ added in v0.4.0
func AwaitTemplateVersionJob(t *testing.T, client *codersdk.Client, version uuid.UUID) codersdk.TemplateVersion
AwaitTemplateImportJob awaits for an import job to reach completed status.
func AwaitWorkspaceAgents ¶
func AwaitWorkspaceAgents(t *testing.T, client *codersdk.Client, workspaceID uuid.UUID) []codersdk.WorkspaceResource
AwaitWorkspaceAgents waits for all resources with agents to be connected.
func AwaitWorkspaceBuildJob ¶
func AwaitWorkspaceBuildJob(t *testing.T, client *codersdk.Client, build uuid.UUID) codersdk.WorkspaceBuild
AwaitWorkspaceBuildJob waits for a workspace provision job to reach completed status.
func CreateAnotherUser ¶
func CreateAnotherUser(t *testing.T, client *codersdk.Client, organizationID uuid.UUID, roles ...string) *codersdk.Client
CreateAnotherUser creates and authenticates a new user.
func CreateAnotherUserWithUser ¶ added in v0.8.5
func CreateFirstUser ¶
CreateFirstUser creates a user with preset credentials and authenticates with the passed in codersdk client.
func CreateTemplate ¶ added in v0.4.0
func CreateTemplate(t *testing.T, client *codersdk.Client, organization uuid.UUID, version uuid.UUID, mutators ...func(*codersdk.CreateTemplateRequest)) codersdk.Template
CreateTemplate creates a template with the "echo" provisioner for compatibility with testing. The name assigned is randomly generated.
func CreateTemplateVersion ¶ added in v0.4.0
func CreateTemplateVersion(t *testing.T, client *codersdk.Client, organizationID uuid.UUID, res *echo.Responses) codersdk.TemplateVersion
CreateTemplateVersion creates a template import provisioner job with the responses provided. It uses the "echo" provisioner for compatibility with testing.
func CreateWorkspace ¶
func CreateWorkspace(t *testing.T, client *codersdk.Client, organization uuid.UUID, templateID uuid.UUID, mutators ...func(*codersdk.CreateWorkspaceRequest)) codersdk.Workspace
CreateWorkspace creates a workspace for the user and template provided. A random name is generated for it. To customize the defaults, pass a mutator func.
func CreateWorkspaceBuild ¶ added in v0.6.0
func CreateWorkspaceBuild( t *testing.T, client *codersdk.Client, workspace codersdk.Workspace, transition database.WorkspaceTransition, ) codersdk.WorkspaceBuild
CreateWorkspaceBuild creates a workspace build for the given workspace and transition.
func DeploymentConfig ¶ added in v0.12.6
func DeploymentConfig(t *testing.T) *codersdk.DeploymentConfig
func MustTransitionWorkspace ¶ added in v0.6.3
func MustTransitionWorkspace(t *testing.T, client *codersdk.Client, workspaceID uuid.UUID, from, to database.WorkspaceTransition) codersdk.Workspace
TransitionWorkspace is a convenience method for transitioning a workspace from one state to another.
func MustWorkspace ¶ added in v0.6.3
MustWorkspace is a convenience method for fetching a workspace that should exist.
func NewAWSInstanceIdentity ¶
func NewAWSInstanceIdentity(t *testing.T, instanceID string) (awsidentity.Certificates, *http.Client)
NewAWSInstanceIdentity returns a metadata client and ID token validator for faking instance authentication for AWS.
func NewAzureInstanceIdentity ¶ added in v0.4.4
NewAzureInstanceIdentity returns a metadata client and ID token validator for faking instance authentication for Azure.
func NewExternalProvisionerDaemon ¶ added in v0.12.8
func NewGoogleInstanceIdentity ¶
func NewGoogleInstanceIdentity(t *testing.T, instanceID string, expired bool) (*idtoken.Validator, *metadata.Client)
NewGoogleInstanceIdentity returns a metadata client and ID token validator for faking instance authentication for Google Cloud. nolint:revive
func NewOptions ¶ added in v0.9.0
func NewProvisionerDaemon ¶
NewProvisionerDaemon launches a provisionerd instance configured to work well with coderd testing. It registers the "echo" provisioner for quick testing.
func NewWithAPI ¶ added in v0.6.1
NewWithAPI constructs an in-memory API instance and returns a client to talk to it. Most tests never need a reference to the API, but AuthorizationTest in this module uses it. Do not expose the API or wrath shall descend upon thee.
func NewWithProvisionerCloser ¶ added in v0.7.6
NewWithProvisionerCloser returns a client as well as a handle to close the provisioner. This is a temporary function while work is done to standardize how provisioners are registered with coderd. The option to include a provisioner is set to true for convenience.
func UpdateTemplateVersion ¶ added in v0.5.6
func UpdateTemplateVersion(t *testing.T, client *codersdk.Client, organizationID uuid.UUID, res *echo.Responses, templateID uuid.UUID) codersdk.TemplateVersion
UpdateTemplateVersion creates a new template version with the "echo" provisioner and associates it with the given templateID.
Types ¶
type AuthTester ¶ added in v0.8.7
type AuthTester struct { Client *codersdk.Client Workspace codersdk.Workspace Organization codersdk.Organization Admin codersdk.CreateFirstUserResponse Template codersdk.Template Version codersdk.TemplateVersion WorkspaceResource codersdk.WorkspaceResource File codersdk.UploadResponse TemplateVersionDryRun codersdk.ProvisionerJob TemplateParam codersdk.Parameter URLParams map[string]string // contains filtered or unexported fields }
func NewAuthTester ¶ added in v0.8.7
func (*AuthTester) Test ¶ added in v0.8.7
func (a *AuthTester) Test(ctx context.Context, assertRoute map[string]RouteCheck, skipRoutes map[string]string)
type OIDCConfig ¶ added in v0.10.2
type OIDCConfig struct {
// contains filtered or unexported fields
}
func NewOIDCConfig ¶ added in v0.10.2
func NewOIDCConfig(t *testing.T, issuer string) *OIDCConfig
func (*OIDCConfig) AuthCodeURL ¶ added in v0.10.2
func (*OIDCConfig) AuthCodeURL(state string, _ ...oauth2.AuthCodeOption) string
func (*OIDCConfig) EncodeClaims ¶ added in v0.10.2
func (*OIDCConfig) Exchange ¶ added in v0.10.2
func (*OIDCConfig) Exchange(_ context.Context, code string, _ ...oauth2.AuthCodeOption) (*oauth2.Token, error)
func (*OIDCConfig) OIDCConfig ¶ added in v0.10.2
func (o *OIDCConfig) OIDCConfig() *coderd.OIDCConfig
func (*OIDCConfig) TokenSource ¶ added in v0.10.2
func (*OIDCConfig) TokenSource(context.Context, *oauth2.Token) oauth2.TokenSource
type Options ¶
type Options struct { AppHostname string AWSCertificates awsidentity.Certificates Authorizer rbac.Authorizer Experimental bool AzureCertificates x509.VerifyOptions GithubOAuth2Config *coderd.GithubOAuth2Config RealIPConfig *httpmw.RealIPConfig OIDCConfig *coderd.OIDCConfig GoogleTokenValidator *idtoken.Validator SSHKeygenAlgorithm gitsshkey.Algorithm APIRateLimit int AutoImportTemplates []coderd.AutoImportTemplate AutobuildTicker <-chan time.Time AutobuildStats chan<- executor.Stats Auditor audit.Auditor TLSCertificates []tls.Certificate GitAuthConfigs []*gitauth.Config TrialGenerator func(context.Context, string) error // IncludeProvisionerDaemon when true means to start an in-memory provisionerD IncludeProvisionerDaemon bool MetricsCacheRefreshInterval time.Duration AgentStatsRefreshInterval time.Duration DeploymentConfig *codersdk.DeploymentConfig // Set update check options to enable update check. UpdateCheckOptions *updatecheck.Options // Overriding the database is heavily discouraged. // It should only be used in cases where multiple Coder // test instances are running against the same database. Database database.Store Pubsub database.Pubsub }
type RecordingAuthorizer ¶ added in v0.9.0
type RecordingAuthorizer struct { Called *authCall AlwaysReturn error }
func (*RecordingAuthorizer) ByRoleName ¶ added in v0.9.0
func (*RecordingAuthorizer) ByRoleNameSQL ¶ added in v0.9.3
func (r *RecordingAuthorizer) ByRoleNameSQL(_ context.Context, _ string, _ []string, _ rbac.Scope, _ []string, _ rbac.Action, _ rbac.Object) error
ByRoleNameSQL does not record the call. This matches the postgres behavior of not calling Authorize()