func (f *FakeReporter) LogViolation(ctx context.Context, baseURL, summary, fullURL, details string) {
	f.Violations <- Report{
		BaseURL: baseURL,
		Summary: summary,
		FullURL: fullURL,
		Details: details,
	}
}
LogViolation sends an incident report to the FakeReporter's Violations channel.
package testonly
import (
	"context"
	"fmt"
)
type Report struct {
	BaseURL string
	Summary string
	FullURL string
	Details string
}
type FakeReporter struct {
	Updates    chan Report
	Violations chan Report
}
func (f *FakeReporter) LogUpdate(ctx context.Context, baseURL, summary, fullURL, details string) {
	f.Updates <- Report{
		BaseURL: baseURL,
		Summary: summary,
		FullURL: fullURL,
		Details: details,
	}
}
func (f *FakeReporter) LogUpdatef(ctx context.Context, baseURL, summary, fullURL, detailsFmt string, args ...interface{}) {
	f.LogUpdate(ctx, baseURL, summary, fullURL, fmt.Sprintf(detailsFmt, args...))
}