Skip to content

Commit

Permalink
refactor(fixer.go): rename rewrite to replaceLines for clarity
Browse files Browse the repository at this point in the history
feat(fixer.go): extract writeFile function for better code organization
test(main_test.go): rename TestGolden to TestMainGolden for specificity
refactor(main_test.go): use variable for file paths to reduce duplication
feat(main_test.go): add checkContent function to compare file contents directly
  • Loading branch information
yyoshiki41 committed May 5, 2024
1 parent be073f1 commit d71de91
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 12 deletions.
11 changes: 8 additions & 3 deletions fixer.go
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ func fix(filename, functionName string) error {
return err
}

if err := rewrite(filename, start, end); err != nil {
if err := replaceLines(filename, start, end); err != nil {
return err
}
return nil
Expand Down Expand Up @@ -74,7 +74,7 @@ func lookup(filename, functionName string) (int, int, error) {
return start, end, nil
}

func rewrite(filename string, start, end int) error {
func replaceLines(filename string, start, end int) error {
file, err := os.Open(filename)
if err != nil {
return err
Expand All @@ -100,12 +100,17 @@ func rewrite(filename string, start, end int) error {
if err != nil {
return err
}
// write to file
return writeFile(file, b)
}

func writeFile(file *os.File, b []byte) error {
// write to file
info, err := file.Stat()
if err != nil {
return err
}
if err := os.WriteFile(filename, b, info.Mode()); err != nil {
if err := os.WriteFile(file.Name(), b, info.Mode()); err != nil {
return err
}
return nil
Expand Down
29 changes: 20 additions & 9 deletions main_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,19 +8,18 @@ import (
"rsc.io/script"
)

func TestGolden(t *testing.T) {
func TestMainGolden(t *testing.T) {
ctx := context.Background()
state, err := script.NewState(ctx, "./", nil)
if err != nil {
t.Fatal(err)
}
_, err = script.Cp().Run(state, "testdata/main.go", "testdata/main.go.backup")
if err != nil {
mainFile := "testdata/main.go"
if _, err := script.Cp().Run(state, mainFile, mainFile+".backup"); err != nil {
t.Fatal(err)
}
defer func() {
_, err = script.Mv().Run(state, "testdata/main.go.backup", "testdata/main.go")
if err != nil {
if _, err := script.Mv().Run(state, mainFile+".backup", mainFile); err != nil {
t.Fatal(err)
}
}()
Expand All @@ -34,9 +33,21 @@ func TestGolden(t *testing.T) {
os.Stdin = f
main()

got, err := os.Stat("testdata/main.go")
expected, err := os.Stat("testdata/main.go.golden")
if !os.SameFile(got, expected) {
t.Errorf("unexpected file content")
checkContent(t, mainFile, mainFile+".golden")
}

func checkContent(t *testing.T, f1, f2 string) {
t.Helper()

got, err := os.ReadFile(f1)
if err != nil {
t.Fatal(err)
}
expected, err := os.ReadFile(f2)
if err != nil {
t.Fatal(err)
}
if string(got) != string(expected) {
t.Errorf("got %s, expected %s", got, expected)
}
}

0 comments on commit d71de91

Please sign in to comment.