diff --git a/main_test.go b/main_test.go new file mode 100644 index 0000000..8474b6c --- /dev/null +++ b/main_test.go @@ -0,0 +1,44 @@ +// 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) + s.Listener.Addr() + 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) + } +}