package resolver import ( "testing" "github.com/stretchr/testify/assert" ) // TestClassifyResponse sets a nameserver's status from the results of // its queries, built here. One that answered some record types, even // with no records, has not failed when its query for another type timed // out; one whose every query timed out has. func TestClassifyResponse(t *testing.T) { t.Parallel() tests := []struct { name string results queryState wantStatus string wantError string }{ { "some types answered with no records, another timed out", queryState{answered: true, gotTimeout: true}, StatusNoData, "", }, { "every query timed out", queryState{gotTimeout: true}, StatusTimeout, "all queries timed out", }, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { t.Parallel() resp := &NameserverResponse{Status: StatusOK} classifyResponse(resp, tt.results) assert.Equal(t, tt.wantStatus, resp.Status) assert.Equal(t, tt.wantError, resp.Error) }) } }