Skip to content

Commit d71de91

Browse files
committed
refactor(fixer.go): rename rewrite to replaceLines for clarity
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
1 parent be073f1 commit d71de91

File tree

2 files changed

+28
-12
lines changed

2 files changed

+28
-12
lines changed

fixer.go

+8-3
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ func fix(filename, functionName string) error {
2222
return err
2323
}
2424

25-
if err := rewrite(filename, start, end); err != nil {
25+
if err := replaceLines(filename, start, end); err != nil {
2626
return err
2727
}
2828
return nil
@@ -74,7 +74,7 @@ func lookup(filename, functionName string) (int, int, error) {
7474
return start, end, nil
7575
}
7676

77-
func rewrite(filename string, start, end int) error {
77+
func replaceLines(filename string, start, end int) error {
7878
file, err := os.Open(filename)
7979
if err != nil {
8080
return err
@@ -100,12 +100,17 @@ func rewrite(filename string, start, end int) error {
100100
if err != nil {
101101
return err
102102
}
103+
// write to file
104+
return writeFile(file, b)
105+
}
106+
107+
func writeFile(file *os.File, b []byte) error {
103108
// write to file
104109
info, err := file.Stat()
105110
if err != nil {
106111
return err
107112
}
108-
if err := os.WriteFile(filename, b, info.Mode()); err != nil {
113+
if err := os.WriteFile(file.Name(), b, info.Mode()); err != nil {
109114
return err
110115
}
111116
return nil

main_test.go

+20-9
Original file line numberDiff line numberDiff line change
@@ -8,19 +8,18 @@ import (
88
"rsc.io/script"
99
)
1010

11-
func TestGolden(t *testing.T) {
11+
func TestMainGolden(t *testing.T) {
1212
ctx := context.Background()
1313
state, err := script.NewState(ctx, "./", nil)
1414
if err != nil {
1515
t.Fatal(err)
1616
}
17-
_, err = script.Cp().Run(state, "testdata/main.go", "testdata/main.go.backup")
18-
if err != nil {
17+
mainFile := "testdata/main.go"
18+
if _, err := script.Cp().Run(state, mainFile, mainFile+".backup"); err != nil {
1919
t.Fatal(err)
2020
}
2121
defer func() {
22-
_, err = script.Mv().Run(state, "testdata/main.go.backup", "testdata/main.go")
23-
if err != nil {
22+
if _, err := script.Mv().Run(state, mainFile+".backup", mainFile); err != nil {
2423
t.Fatal(err)
2524
}
2625
}()
@@ -34,9 +33,21 @@ func TestGolden(t *testing.T) {
3433
os.Stdin = f
3534
main()
3635

37-
got, err := os.Stat("testdata/main.go")
38-
expected, err := os.Stat("testdata/main.go.golden")
39-
if !os.SameFile(got, expected) {
40-
t.Errorf("unexpected file content")
36+
checkContent(t, mainFile, mainFile+".golden")
37+
}
38+
39+
func checkContent(t *testing.T, f1, f2 string) {
40+
t.Helper()
41+
42+
got, err := os.ReadFile(f1)
43+
if err != nil {
44+
t.Fatal(err)
45+
}
46+
expected, err := os.ReadFile(f2)
47+
if err != nil {
48+
t.Fatal(err)
49+
}
50+
if string(got) != string(expected) {
51+
t.Errorf("got %s, expected %s", got, expected)
4152
}
4253
}

0 commit comments

Comments
 (0)