Skip to content

Commit f32cd34

Browse files
committed
feat(eo): switch to request
Setup request from user input and pass down request data to Boilerplate object so that it can be created. Assemble all in EoDocs including CLI and filesystem. Execute the correct operation depending on request. Add integration tests.
1 parent bae31da commit f32cd34

File tree

2 files changed

+40
-28
lines changed

2 files changed

+40
-28
lines changed

hack/generator/eoDocs.go

Lines changed: 11 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,22 @@
11
package generator
22

3-
func EoDocsCreate(targetPath string) error {
4-
filesystem := NewFilesystem()
5-
config := Config{
6-
To: targetPath,
7-
From: "../boilerplate/docs.gotmpl",
3+
func EoDocs(rootDir string, cli InputSource) error {
4+
request, err := NewRequest(cli)
5+
if err != nil {
6+
return err
87
}
8+
filesystem := NewFilesystem()
9+
tmplSourcePath := "../boilerplate/docs.gotmpl"
910

1011
docsBoilerplate := NewDocsBoilerplate(
11-
config.To,
12-
NewDocsTemplate(config.From, filesystem),
13-
NewDocsTemplateData("Missing Number"),
12+
request.TargetPath(rootDir),
13+
NewDocsTemplate(tmplSourcePath, filesystem),
14+
request.TemplateData(),
1415
)
1516

16-
return docsBoilerplate.Save(filesystem)
17-
}
18-
19-
func EoDocsDelete(targetPath string) error {
20-
filesystem := NewFilesystem()
21-
config := Config{
22-
To: targetPath,
23-
From: "../boilerplate/docs.gotmpl",
17+
if request.Create() {
18+
return docsBoilerplate.Save(filesystem)
2419
}
2520

26-
docsBoilerplate := NewDocsBoilerplate(
27-
config.To,
28-
NewDocsTemplate(config.From, filesystem),
29-
NewDocsTemplateData("Missing Number"),
30-
)
31-
3221
return docsBoilerplate.Delete(filesystem)
3322
}

hack/generator/eoDocs_test.go

Lines changed: 29 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,38 @@ import (
55
"testing"
66
)
77

8-
func Test_CreateAndDeleteDocsBoilerplateInTemp(t *testing.T) {
9-
targetPath := t.TempDir()
8+
type CommandLineStub struct {
9+
args []string
10+
}
11+
12+
func (c CommandLineStub) Args() []string {
13+
return c.args
14+
}
1015

11-
if err := generator.EoDocsCreate(targetPath); err != nil {
12-
t.Errorf("unexpected error: %v", err)
16+
func Test_Integration_EoDocsBoilerplate(t *testing.T) {
17+
var testCases = []struct {
18+
name string
19+
args []string
20+
}{
21+
{
22+
"create docs boilerplate in temp directory",
23+
[]string{"create", "arrays", "easy", "Missing Number"},
24+
},
25+
{
26+
"delete docs boilerplate from temp directory",
27+
[]string{"delete", "arrays", "easy", "Missing Number"},
28+
},
1329
}
1430

15-
if err := generator.EoDocsDelete(targetPath); err != nil {
16-
t.Errorf("unexpected error: %v", err)
31+
for _, tc := range testCases {
32+
t.Run(tc.name, func(t *testing.T) {
33+
rootDir := "../../temp"
34+
stub := CommandLineStub{tc.args}
35+
36+
if err := generator.EoDocs(rootDir, stub); err != nil {
37+
t.Errorf("unexpected error: %v", err)
38+
}
39+
})
1740
}
1841
}
1942

0 commit comments

Comments
 (0)