Initialize the repository with the core Go backend architecture and a frontend mockup for warpbox.dev, a self-hosted file-sharing application. - Set up Go backend modules for configuration, HTTP server, middleware, handlers, and templates. - Add local development scripts, environment templates, and basic project configuration. - Include a React-based frontend mockup under the docs directory.
27 lines
772 B
Go
27 lines
772 B
Go
package handlers
|
|
|
|
import (
|
|
"net/http/httptest"
|
|
"testing"
|
|
)
|
|
|
|
func TestSetStaticCacheHeaders(t *testing.T) {
|
|
tests := map[string]string{
|
|
"/static/css/app.css": "public, max-age=86400",
|
|
"/static/js/app.js": "public, max-age=86400",
|
|
"/static/img/preview.webp": "public, max-age=31536000, immutable",
|
|
"/static/fonts/ui.woff2": "public, max-age=31536000, immutable",
|
|
"/static/videos/intro.mp4": "public, max-age=31536000, immutable",
|
|
"/static/uploads/file.data": "public, max-age=3600",
|
|
}
|
|
|
|
for path, want := range tests {
|
|
response := httptest.NewRecorder()
|
|
setStaticCacheHeaders(response, path)
|
|
|
|
if got := response.Header().Get("Cache-Control"); got != want {
|
|
t.Fatalf("Cache-Control for %s = %q, want %q", path, got, want)
|
|
}
|
|
}
|
|
}
|