Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

setectest: add a package to simplify testing #36

Merged
merged 1 commit into from
Aug 14, 2023
Merged

Conversation

creachadair
Copy link
Member

@creachadair creachadair commented Aug 14, 2023

This package contains a plug-compatible wrapper around server.Server and db.DB
for use with the httptest package to serve secrets in unit tests.

Pulls the unexported testDB wrapper out of the db_test package into an exported
type, and updates the existing tests to use the new thing. Add a Server wrapper
to do the same for the HTTP plumbing, and include some affordances for setup.

@creachadair creachadair changed the title mjf/setectest setectest: add package to simplify testing Aug 14, 2023
This package contains a plug-compatible wrapper around server.Server and db.DB
for use with the httptest package to serve secrets in unit tests.

Pulls the unexported testDB wrapper out of the db_test package into an exported
type, and updates the existing tests to use the new thing. Add a Server wrapper
to do the same for the HTTP plumbing, and include some affordances for setup.

Signed-off-by: M. J. Fromberger <fromberger@tailscale.com>
@creachadair creachadair changed the title setectest: add package to simplify testing setectest: add a package to simplify testing Aug 14, 2023
creachadair added a commit to tailscale/tailsql that referenced this pull request Aug 14, 2023
Extend the DBSpec type to allow specifying a secret name for the connection
string instead of a URL or file. Move URL resolution from the validation step
to the open step, so that validation is cheap and idempotent.

Add an Option to hold a setec.Store, and export the CheckSources method so the
caller can find out which secrets they need to include.

Enforce that a secret store is present during construction of the service, if
any of the sources requires it.

Add a test to exercise using the new secret field (requires tailscale/setec#36).

Signed-off-by: M. J. Fromberger <fromberger@tailscale.com>
setectest/server.go Show resolved Hide resolved
@creachadair creachadair merged commit 2dc1e0e into main Aug 14, 2023
1 check passed
@creachadair creachadair deleted the mjf/setectest branch August 14, 2023 18:49
creachadair added a commit to tailscale/tailsql that referenced this pull request Aug 14, 2023
Extend the DBSpec type to allow specifying a secret name for the connection
string instead of a URL or file. Move URL resolution from the validation step
to the open step, so that validation is cheap and idempotent.

Add an Option to hold a setec.Store, and export the CheckSources method so the
caller can find out which secrets they need to include.

Enforce that a secret store is present during construction of the service, if
any of the sources requires it.

Add a test to exercise using the new secret field (requires tailscale/setec#36).

Signed-off-by: M. J. Fromberger <fromberger@tailscale.com>
creachadair added a commit to tailscale/tailsql that referenced this pull request Aug 14, 2023
Extend the DBSpec type to allow specifying a secret name for the connection
string instead of a URL or file. Move URL resolution from the validation step
to the open step, so that validation is cheap and idempotent.

Add an Option to hold a setec.Store, and export the CheckSources method so the
caller can find out which secrets they need to include.

Enforce that a secret store is present during construction of the service, if
any of the sources requires it.

Add a test to exercise using the new secret field (requires tailscale/setec#36).

Signed-off-by: M. J. Fromberger <fromberger@tailscale.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
2 participants