package fetch import ( "github.com/jarcoal/httpmock" "net/http" "testing" ) func TestGetHTMLWithClient(t *testing.T) { client := &http.Client{} httpmock.ActivateNonDefault(client) type args struct { url string statusCode int method string } tests := []struct { name string args args want string wantErr bool }{ { name: "Test GetHTML with status code 200", args: args{ url: "https://stundenplan.htwk-leipzig.de/ss/Berichte/Text-Listen;Studenten-Sets;name;1-1?template=sws_semgrp&weeks=1-65", method: "GET", statusCode: 200, }, want: "", wantErr: false, }, { name: "Test GetHTML with status code 404", args: args{ url: "https://stundenplan.htwk-leipzig.de/ss/Berichte/Text-Lists;Studenten-Sets;name;1-1?template=sws_semgrp&weeks=1-65", method: "GET", statusCode: 404, }, want: "", wantErr: true, }, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { httpmock.RegisterResponder(tt.args.method, tt.args.url, httpmock.NewStringResponder(tt.args.statusCode, tt.want)) got, err := GetHTMLWithClient(tt.args.url, client) if (err != nil) != tt.wantErr { t.Errorf("GetHTML() error = %v, wantNoErr %v", err, tt.wantErr) return } if got != tt.want { t.Errorf("GetHTML() got = %v, want %v", got, tt.want) } }) } httpmock.DeactivateAndReset() }