Skip to content

Commit

Permalink
Merge pull request #123 from cmars/fix/godoc-generated-embed
Browse files Browse the repository at this point in the history
fix: add godoc comment to generated embed.FS
  • Loading branch information
cmars committed Jan 14, 2022
2 parents 25fb58e + e514427 commit 5ea660d
Show file tree
Hide file tree
Showing 11 changed files with 48 additions and 13 deletions.
1 change: 1 addition & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ update-deps:
.PHONY: lint
lint:
golangci-lint run -v ./...
(cd versionware/example; golangci-lint run -v ./...)

.PHONY: lint-docker
lint-docker:
Expand Down
3 changes: 2 additions & 1 deletion internal/compiler/compiler.go
Original file line number Diff line number Diff line change
Expand Up @@ -375,8 +375,9 @@ import "embed"
{{ range .VersionSpecFiles -}}
//go:embed {{ . }}
{{ end -}}
// Versions contains OpenAPI specs for each distinct release version.
var Versions embed.FS
`))
`[1:]))

// BuildAll builds all APIs in the project.
func (c *Compiler) BuildAll(ctx context.Context) error {
Expand Down
2 changes: 1 addition & 1 deletion testdata/output/embed.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

9 changes: 6 additions & 3 deletions versionware/example/chi/example_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,9 @@ import (
metrics "github.com/slok/go-http-metrics/metrics/prometheus"
promware "github.com/slok/go-http-metrics/middleware"
promware_std "github.com/slok/go-http-metrics/middleware/std"

"github.com/snyk/vervet"
"github.com/snyk/vervet/versionware"

. "github.com/snyk/vervet/versionware/example"
"github.com/snyk/vervet/versionware/example/releases"
release_2021_11_01 "github.com/snyk/vervet/versionware/example/resources/things/2021-11-01"
Expand All @@ -25,7 +25,7 @@ import (
"github.com/snyk/vervet/versionware/example/store"
)

func ExampleChi() {
func Example() {
// Set up a test HTTP server
var h http.Handler
srv := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
Expand Down Expand Up @@ -100,7 +100,10 @@ func ExampleChi() {
// Observability stuff at the top-level, not part of the API
root.Get("/metrics", promhttp.Handler().ServeHTTP)
root.Get("/healthcheck", func(w http.ResponseWriter, r *http.Request) {
w.Write([]byte("OK"))
_, err := w.Write([]byte("OK"))
if err != nil {
panic(err)
}
})

// Do a health check
Expand Down
29 changes: 29 additions & 0 deletions versionware/example/embed_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
package example

import (
"testing"

qt "github.com/frankban/quicktest"

"github.com/snyk/vervet"
"github.com/snyk/vervet/versionware/example/releases"
)

func TestEmbedding(t *testing.T) {
c := qt.New(t)

specs, err := vervet.LoadVersions(releases.Versions)
c.Assert(err, qt.IsNil)
c.Assert(specs, qt.HasLen, 3)
var versions []string
for i := range specs {
version, err := vervet.ExtensionString(specs[i].ExtensionProps, vervet.ExtSnykApiVersion)
c.Assert(err, qt.IsNil)
versions = append(versions, version)
}
c.Assert(versions, qt.ContentEquals, []string{
"2021-11-01~experimental",
"2021-11-08~experimental",
"2021-11-20~experimental",
})
}
1 change: 1 addition & 0 deletions versionware/example/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ module github.com/snyk/vervet/versionware/example
go 1.16

require (
github.com/frankban/quicktest v1.13.0 // indirect
github.com/getkin/kin-openapi v0.87.0
github.com/go-chi/chi/v5 v5.0.7
github.com/gorilla/mux v1.8.0
Expand Down
9 changes: 6 additions & 3 deletions versionware/example/gorilla/example_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,9 @@ import (
metrics "github.com/slok/go-http-metrics/metrics/prometheus"
promware "github.com/slok/go-http-metrics/middleware"
promware_std "github.com/slok/go-http-metrics/middleware/std"

"github.com/snyk/vervet"
"github.com/snyk/vervet/versionware"

. "github.com/snyk/vervet/versionware/example"
"github.com/snyk/vervet/versionware/example/releases"
release_2021_11_01 "github.com/snyk/vervet/versionware/example/resources/things/2021-11-01"
Expand All @@ -23,7 +23,7 @@ import (
"github.com/snyk/vervet/versionware/example/store"
)

func ExampleGorilla() {
func Example() {
// Set up a test HTTP server
var h http.Handler
srv := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
Expand Down Expand Up @@ -86,7 +86,10 @@ func ExampleGorilla() {
// Observability stuff at the top-level, not part of the API
root.Handle("/metrics", promhttp.Handler())
root.HandleFunc("/healthcheck", func(w http.ResponseWriter, r *http.Request) {
w.Write([]byte("OK"))
_, err := w.Write([]byte("OK"))
if err != nil {
panic(err)
}
})

// Do a health check
Expand Down
2 changes: 1 addition & 1 deletion versionware/example/releases/embed.go
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@

package releases

import "embed"
Expand All @@ -11,4 +10,5 @@ import "embed"
//go:embed 2021-11-08~experimental/spec.yaml
//go:embed 2021-11-20~experimental/spec.json
//go:embed 2021-11-20~experimental/spec.yaml
// Versions contains OpenAPI specs for each distinct release version.
var Versions embed.FS
3 changes: 1 addition & 2 deletions versionware/example/resources/things/2021-11-01/handlers.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,15 +7,14 @@ import (
"path"

"github.com/snyk/vervet"

"github.com/snyk/vervet/versionware/example/resources/things"
"github.com/snyk/vervet/versionware/example/store"
)

// Version is the resource release version of handlers in this package.
var Version = vervet.MustParseVersion("2021-11-01~experimental")

// GetThing returns a request handler that uses the given data store.
// CreateThing returns a request handler that uses the given data store.
// It creates a new thing.
func CreateThing(s *store.Store) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ import (
"net/http"

"github.com/snyk/vervet"

"github.com/snyk/vervet/versionware/example/resources/things"
"github.com/snyk/vervet/versionware/example/store"
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ import (
"path"

"github.com/snyk/vervet"

"github.com/snyk/vervet/versionware/example/store"
)

Expand Down

0 comments on commit 5ea660d

Please sign in to comment.