diff options
Diffstat (limited to 'internal/calfeed/json_test.go')
| -rw-r--r-- | internal/calfeed/json_test.go | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/internal/calfeed/json_test.go b/internal/calfeed/json_test.go index d2bc856..aec3d14 100644 --- a/internal/calfeed/json_test.go +++ b/internal/calfeed/json_test.go @@ -3,6 +3,8 @@ package calfeed import ( "encoding/json" "testing" + + "github.com/lukaszkasprzak/lectio/internal/config" ) func TestJSONShape(t *testing.T) { @@ -33,3 +35,28 @@ func TestJSONShape(t *testing.T) { t.Fatalf("bad day: %s", b) } } + +// TestJSONCarriesSourceOffer pins the AGPL-3.0 ยง13 offer into the envelope. +// A consumer of /api/calendar.json may never load a single HTML page, so the +// footer link does not reach them -- the feed itself has to say where the +// source is. Dropping these fields is a licence-compliance regression, not a +// cosmetic one, which is why it is asserted rather than left to review. +func TestJSONCarriesSourceOffer(t *testing.T) { + b, err := JSON("new", nil) + if err != nil { + t.Fatal(err) + } + var out struct { + Source string `json:"source"` + License string `json:"license"` + } + if err := json.Unmarshal(b, &out); err != nil { + t.Fatal(err) + } + if out.Source != config.SourceURL { + t.Errorf("source = %q, want %q", out.Source, config.SourceURL) + } + if out.License != config.License { + t.Errorf("license = %q, want %q", out.License, config.License) + } +} |
