77 lines
2.3 KiB
Go
77 lines
2.3 KiB
Go
package eventcatalog
|
|
|
|
import (
|
|
"fmt"
|
|
"testing"
|
|
)
|
|
|
|
func TestValidateImportRequiresThreePastAndTwoFutureJalaliYears(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
input := validCoveredImport()
|
|
if err := ValidateImport(input, 1405); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
input.CoverageStartJalaliYear = 1403
|
|
if err := ValidateImport(input, 1405); err == nil {
|
|
t.Fatal("expected insufficient past coverage")
|
|
}
|
|
}
|
|
|
|
func TestValidateImportRejectsMisleadingDeclaredCoverage(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
input := validCoveredImport()
|
|
input.Events = input.Events[:len(input.Events)-1]
|
|
if err := ValidateImport(input, 1405); err == nil {
|
|
t.Fatal("expected missing declared coverage year error")
|
|
}
|
|
}
|
|
|
|
func TestValidateImportRequiresExplicitOccasionKey(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
input := validCoveredImport()
|
|
input.Events[0].OccasionKey = ""
|
|
if err := ValidateImport(input, 1405); err == nil {
|
|
t.Fatal("expected missing occasion key error")
|
|
}
|
|
}
|
|
|
|
func TestValidateReviewableChecksumRejectsPlaceholder(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
for _, checksum := range []string{"review-required-before-activation-1405-v2", "pending-review", "placeholder"} {
|
|
if err := ValidateReviewableChecksum(checksum); err == nil {
|
|
t.Errorf("expected placeholder checksum %q to be rejected", checksum)
|
|
}
|
|
}
|
|
if err := ValidateReviewableChecksum("sha256:5f70bf18a086007016e948b04aed3b82103a36be3a0ab2aeeabe46d778b8bdc0"); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
}
|
|
|
|
func TestValidateApprovalRequiresIndependentReviewer(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
if err := ValidateApproval("operator-a", "operator-a"); err == nil {
|
|
t.Fatal("expected independent reviewer error")
|
|
}
|
|
if err := ValidateApproval("operator-a", "operator-b"); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
}
|
|
|
|
func validCoveredImport() Import {
|
|
events := make([]Event, 0, 6)
|
|
for year := 1402; year <= 1407; year++ {
|
|
gregorianYear := year + 621
|
|
event := validCatalogEvent(fmt.Sprintf("education-enrollment-%d", year), fmt.Sprintf("%d-09-01", gregorianYear), year)
|
|
event.OccasionKey = "education-enrollment"
|
|
event.Variant = "CAMPAIGN_WINDOW"
|
|
events = append(events, event)
|
|
}
|
|
return Import{Version: "1402-1407-v2", CoverageStartJalaliYear: 1402, CoverageEndJalaliYear: 1407, SourceURI: "https://calendar.ut.ac.ir/", SourceVersion: "reviewed", SourceChecksum: "abc", ImportedBy: "operator-a", Events: events}
|
|
}
|