// SPDX-FileCopyrightText: 2023 Olivier Charvin // SPDX-License-Identifier: CC0-1.0 package main import ( "io" "net/http" "net/http/httptest" "testing" "github.com/sethvargo/go-githubactions" ) func TestRun(t *testing.T) { s := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { switch r.URL.Path { default: t.Errorf("unexpected request on %s", r.URL.Path) case "/auth/time": case "/domain/zone/FAKEVALUE-INPUT_DOMAIN/record/FAKEVALUE-INPUT_RECORD-ID": buf, err := io.ReadAll(r.Body) if err != nil { t.Errorf("could not read request body: %v", err) } if string(buf) != `{"subDomain":"FAKEVALUE-INPUT_SUBDOMAIN","target":"\"FAKEVALUE-INPUT_VALUE\""}` { t.Errorf("unexpected body: %s", string(buf)) } } })) t.Cleanup(s.Close) action := githubactions.New(githubactions.WithGetenv(func(key string) string { switch key { case "INPUT_OVH-ENDPOINT": return "http://" + s.Listener.Addr().String() } return "FAKEVALUE-" + key })) err := run(action) if err != nil { t.Fatal(err) } }