diff --git a/internal/app/app_suite_test.go b/internal/app/app_suite_test.go new file mode 100644 index 0000000..3ee2699 --- /dev/null +++ b/internal/app/app_suite_test.go @@ -0,0 +1,13 @@ +package app_test + +import ( + "testing" + + . "github.com/onsi/ginkgo" + . "github.com/onsi/gomega" +) + +func TestApp(t *testing.T) { + RegisterFailHandler(Fail) + RunSpecs(t, "App Suite") +} diff --git a/internal/app/mirror.go b/internal/app/mirror.go new file mode 100644 index 0000000..59e5912 --- /dev/null +++ b/internal/app/mirror.go @@ -0,0 +1,7 @@ +package app + +import "github.com/jaedle/mirror-to-gitea/internal/config" + +type ConfigReader interface { + Read() (*config.Config, error) +} diff --git a/internal/app/mirror_test.go b/internal/app/mirror_test.go new file mode 100644 index 0000000..a54cca5 --- /dev/null +++ b/internal/app/mirror_test.go @@ -0,0 +1,9 @@ +package app_test + +import ( + . "github.com/onsi/ginkgo" +) + +var _ = Describe("Mirror", func() { + +}) diff --git a/internal/config/read.go b/internal/config/read.go index bd2e0e8..9cf5da0 100644 --- a/internal/config/read.go +++ b/internal/config/read.go @@ -25,29 +25,6 @@ type Github struct { Token *string } -func Read() (*Config, error) { - mirrorMode, err := readMirrorMode() - if err != nil { - return nil, err - } - - gitea, err := readGiteaConfig() - if err != nil { - return nil, err - } - - github, err := readGithubConfig() - if err != nil { - return nil, err - } - - return &Config{ - MirrorMode: mirrorMode, - Gitea: gitea, - Github: github, - }, nil -} - func readGiteaConfig() (Gitea, error) { url, a := os.LookupEnv("GITEA_URL") if !a { @@ -99,3 +76,33 @@ func readMirrorMode() (string, error) { } } + +type Reader struct { +} + +func (r Reader) Read() (*Config, error) { + mirrorMode, err := readMirrorMode() + if err != nil { + return nil, err + } + + gitea, err := readGiteaConfig() + if err != nil { + return nil, err + } + + github, err := readGithubConfig() + if err != nil { + return nil, err + } + + return &Config{ + MirrorMode: mirrorMode, + Gitea: gitea, + Github: github, + }, nil +} + +func NewReader() *Reader { + return &Reader{} +} diff --git a/internal/config/read_test.go b/internal/config/read_test.go index 752c4dd..071e862 100644 --- a/internal/config/read_test.go +++ b/internal/config/read_test.go @@ -23,14 +23,18 @@ const aGithubUsername = "a-github-user" const aGithubToken = "a-github-token" var _ = Describe("Read", func() { + + var reader *config.Reader + BeforeEach(func() { os.Clearenv() + reader = config.NewReader() }) It("parses valid configuration", func() { aValidEnv() - c, err := config.Read() + c, err := reader.Read() Expect(err).NotTo(HaveOccurred()) Expect(c).ToNot(BeNil()) }) @@ -41,7 +45,7 @@ var _ = Describe("Read", func() { setEnv(githubUsername, aGithubUsername) unsetEnv(githubToken) - c, err := config.Read() + c, err := reader.Read() Expect(err).NotTo(HaveOccurred()) Expect(c.Github.Username).To(Equal(aGithubUsername)) @@ -53,7 +57,7 @@ var _ = Describe("Read", func() { setEnv(githubUsername, aGithubUsername) setEnv(githubToken, aGithubToken) - c, err := config.Read() + c, err := reader.Read() Expect(err).NotTo(HaveOccurred()) Expect(c.Github.Username).To(Equal(aGithubUsername)) @@ -64,7 +68,7 @@ var _ = Describe("Read", func() { aValidEnv() unsetEnv(githubUsername) - c, err := config.Read() + c, err := reader.Read() Expect(err).To(HaveOccurred()) Expect(c).To(BeNil()) @@ -78,7 +82,7 @@ var _ = Describe("Read", func() { setEnv(giteaUrl, "https://gitea.url/api") setEnv(giteaToken, "a-gitea-token") - c, err := config.Read() + c, err := reader.Read() Expect(err).NotTo(HaveOccurred()) Expect(c.Gitea.Url).To(Equal("https://gitea.url/api")) @@ -89,7 +93,7 @@ var _ = Describe("Read", func() { aValidEnv() unsetEnv(giteaUrl) - c, err := config.Read() + c, err := reader.Read() Expect(err).To(HaveOccurred()) Expect(c).To(BeNil()) @@ -100,7 +104,7 @@ var _ = Describe("Read", func() { aValidEnv() unsetEnv(giteaToken) - c, err := config.Read() + c, err := reader.Read() Expect(err).To(HaveOccurred()) Expect(c).To(BeNil()) @@ -114,7 +118,7 @@ var _ = Describe("Read", func() { aValidEnv() unsetEnv(mirrorMode) - c, err := config.Read() + c, err := reader.Read() Expect(err).NotTo(HaveOccurred()) Expect(c.MirrorMode).To(Equal(config.MirrorModePublic)) @@ -124,7 +128,7 @@ var _ = Describe("Read", func() { aValidEnv() setEnv(mirrorMode, in) - c, err := config.Read() + c, err := reader.Read() Expect(err).NotTo(HaveOccurred()) Expect(c.MirrorMode).To(Equal(exp)) @@ -137,7 +141,7 @@ var _ = Describe("Read", func() { aValidEnv() setEnv(mirrorMode, unknownMirrorMode) - c, err := config.Read() + c, err := reader.Read() Expect(err).To(HaveOccurred()) Expect(c).To(BeNil())