package api import ( "encoding/json" "strings" "testing" "git.golem15.com/jakub/sm-bm-plugin/models" ) // TestReadingJSONCarriesMeetingID checks that meeting_id is always present // in a reading, as a number or as null. func TestReadingJSONCarriesMeetingID(t *testing.T) { id := uint(4) for _, tc := range []struct { meeting *uint want string }{ {&id, `"meeting_id":4`}, {nil, `"meeting_id":null`}, } { b, err := json.Marshal(readingJSON{ID: 1, Title: "Lektura", MeetingID: tc.meeting}) if err != nil { t.Fatal(err) } if !strings.Contains(string(b), tc.want) { t.Errorf("reading JSON %s does not contain %s", b, tc.want) } } } // TestMaterialJSONCarriesMeetingID checks that meeting_id is always present // in a material, as a number or as null. func TestMaterialJSONCarriesMeetingID(t *testing.T) { id := uint(4) for _, tc := range []struct { meeting *uint want string }{ {&id, `"meeting_id":4`}, {nil, `"meeting_id":null`}, } { b, err := json.Marshal(newMaterialListJSON(models.Material{ID: 1, Title: "MateriaƂ", Type: "pdf", MeetingID: tc.meeting}, 0)) if err != nil { t.Fatal(err) } if !strings.Contains(string(b), tc.want) { t.Errorf("material JSON %s does not contain %s", b, tc.want) } } }