30 lines
844 B
Go
30 lines
844 B
Go
package httpserver
|
|
|
|
import (
|
|
"net/http"
|
|
"net/http/httptest"
|
|
"testing"
|
|
)
|
|
|
|
func TestHandleServiceWorkerServesJavaScript(t *testing.T) {
|
|
server := &Server{}
|
|
req := httptest.NewRequest(http.MethodGet, "/sw.js", nil)
|
|
recorder := httptest.NewRecorder()
|
|
|
|
server.handleServiceWorker(recorder, req)
|
|
|
|
response := recorder.Result()
|
|
if response.StatusCode != http.StatusOK {
|
|
t.Fatalf("status = %d, want %d", response.StatusCode, http.StatusOK)
|
|
}
|
|
if got := response.Header.Get("Content-Type"); got != "application/javascript; charset=utf-8" {
|
|
t.Fatalf("Content-Type = %q, want application/javascript; charset=utf-8", got)
|
|
}
|
|
if got := response.Header.Get("Service-Worker-Allowed"); got != "/" {
|
|
t.Fatalf("Service-Worker-Allowed = %q, want /", got)
|
|
}
|
|
if recorder.Body.Len() == 0 {
|
|
t.Fatal("expected non-empty service worker body")
|
|
}
|
|
}
|