@@ -7,13 +7,14 @@ import (
77 "fmt"
88 "io/ioutil"
99 "path/filepath"
10- "strings"
1110 "testing"
1211
1312 "github.com/abhinav/restack/internal/editorfake"
1413 "github.com/abhinav/restack/internal/iotest"
14+ "github.com/abhinav/restack/internal/test"
1515 "github.com/abhinav/restack/internal/testwriter"
16- "github.com/google/go-cmp/cmp"
16+ "github.com/stretchr/testify/assert"
17+ "github.com/stretchr/testify/require"
1718)
1819
1920var _noop = "noop\n "
@@ -22,9 +23,9 @@ func TestEdit(t *testing.T) {
2223 dir := iotest .TempDir (t , "edit" )
2324 file := filepath .Join (dir , "git-rebase-todo" )
2425
25- if err := ioutil . WriteFile ( file , [] byte ( _noop ), 0600 ); err != nil {
26- t . Fatalf ( "write temporary file: %v" , err )
27- }
26+ require . NoError ( t ,
27+ ioutil . WriteFile ( file , [] byte ( _noop ), 0600 ),
28+ "write temporary file" )
2829
2930 restackerOutput := "x echo hello world"
3031 restacker := fakeRestacker {
@@ -49,23 +50,17 @@ func TestEdit(t *testing.T) {
4950 Stdout : testwriter .New (t ),
5051 Stderr : testwriter .New (t ),
5152 }).Run (ctx )
52-
53- if err != nil {
54- t .Errorf ("edit failed: %v" , err )
55- }
53+ require .NoError (t , err , "edit failed" )
5654
5755 gotOutput , err := ioutil .ReadFile (file )
58- if err != nil {
59- t .Fatalf ("read output: %v" , err )
60- }
56+ require .NoError (t , err , "read output" )
6157
62- if diff := cmp .Diff (editorOutput , string (gotOutput )); len (diff ) > 0 {
63- t .Errorf ("output mismatch: (-want, +got):\n %s" , diff )
64- }
58+ assert .Equal (t , editorOutput , string (gotOutput ),
59+ "output mismatch" )
6560}
6661
6762type fakeRestacker struct {
68- T * testing .T
63+ T test .T
6964
7065 ran bool
7166 WantInput string
@@ -74,27 +69,22 @@ type fakeRestacker struct {
7469}
7570
7671func (r * fakeRestacker ) VerifyRan () {
77- if ! r .ran {
78- r .T .Errorf ("restack never executed" )
79- }
72+ assert .True (r .T , r .ran , "restack never executed" )
8073}
8174
8275func (r * fakeRestacker ) Restack (ctx context.Context , req * Request ) error {
8376 t := r .T
8477 r .ran = true
8578
8679 gotInput , err := ioutil .ReadAll (req .From )
87- if err != nil {
88- t .Errorf ("read input: %v" , err )
80+ if ! assert .NoError (t , err , "read input" ) {
8981 return err
9082 }
9183
92- if diff := cmp .Diff (r .WantInput , string (gotInput )); len (diff ) > 0 {
93- t .Errorf ("input mismatch: (-want, +got):\n %s" , diff )
94- }
84+ assert .Equal (t , r .WantInput , string (gotInput ), "input mismatch" )
9585
96- if _ , err : = req .To .Write ([]byte (r .GiveOutput )); err != nil {
97- t . Errorf ( "write output: %v" , err )
86+ _ , err = req .To .Write ([]byte (r .GiveOutput ))
87+ if ! assert . NoError ( t , err , "write output" ) {
9888 return err
9989 }
10090
@@ -112,20 +102,18 @@ func TestEdit_MissingFile(t *testing.T) {
112102 Stdout : testwriter .New (t ),
113103 Stderr : testwriter .New (t ),
114104 }).Run (ctx )
115- if err == nil {
116- t .Errorf ("edit must fail" )
117- }
118- errorMustContain (t , err , "no such file" )
105+ assert .Error (t , err , "edit must fail" )
106+ assert .Contains (t , err .Error (), "no such file" )
119107}
120108
121109// Handle failures in restacking the instructions.
122110func TestEdit_RestackFailed (t * testing.T ) {
123111 dir := iotest .TempDir (t , "edit-restack-fail" )
124112 file := filepath .Join (dir , "git-rebase-todo" )
125113
126- if err := ioutil . WriteFile ( file , [] byte ( _noop ), 0600 ); err != nil {
127- t . Fatalf ( "write temporary file: %v" , err )
128- }
114+ require . NoError ( t ,
115+ ioutil . WriteFile ( file , [] byte ( _noop ), 0600 ),
116+ "write temporary file" )
129117
130118 ctx := context .Background ()
131119 err := (& Edit {
@@ -140,20 +128,18 @@ func TestEdit_RestackFailed(t *testing.T) {
140128 Stdout : testwriter .New (t ),
141129 Stderr : testwriter .New (t ),
142130 }).Run (ctx )
143- if err == nil {
144- t .Errorf ("edit must fail" )
145- }
146- errorMustContain (t , err , "great sadness" )
131+ assert .Error (t , err , "edit must fail" )
132+ assert .Contains (t , err .Error (), "great sadness" )
147133}
148134
149135// Handle non-zero codes from editors.
150136func TestEdit_EditorFailed (t * testing.T ) {
151137 dir := iotest .TempDir (t , "edit-editor-fail" )
152138 file := filepath .Join (dir , "git-rebase-todo" )
153139
154- if err := ioutil . WriteFile ( file , [] byte {}, 0600 ); err != nil {
155- t . Fatalf ( "write temporary file: %v" , err )
156- }
140+ require . NoError ( t ,
141+ ioutil . WriteFile ( file , [] byte {}, 0600 ),
142+ "write temporary file" )
157143
158144 restacker := fakeRestacker {T : t }
159145 defer restacker .VerifyRan ()
@@ -169,11 +155,8 @@ func TestEdit_EditorFailed(t *testing.T) {
169155 Stdout : testwriter .New (t ),
170156 Stderr : testwriter .New (t ),
171157 }).Run (ctx )
172- if err == nil {
173- t .Fatalf ("edit must fail" )
174- }
175-
176- errorMustContain (t , err , "exit status 1" )
158+ assert .Error (t , err , "edit must fail" )
159+ assert .Contains (t , err .Error (), "exit status 1" )
177160}
178161
179162// Handle failures in renaming if, for example, the file was deleted by the
@@ -182,9 +165,9 @@ func TestEdit_RenameFailed(t *testing.T) {
182165 dir := iotest .TempDir (t , "edit-rename-fail" )
183166 file := filepath .Join (dir , "git-rebase-todo" )
184167
185- if err := ioutil . WriteFile ( file , [] byte {}, 0600 ); err != nil {
186- t . Fatalf ( "write temporary file: %v" , err )
187- }
168+ require . NoError ( t ,
169+ ioutil . WriteFile ( file , [] byte {}, 0600 ),
170+ "write temporary file" )
188171
189172 restacker := fakeRestacker {T : t }
190173 defer restacker .VerifyRan ()
@@ -200,18 +183,7 @@ func TestEdit_RenameFailed(t *testing.T) {
200183 Stdout : testwriter .New (t ),
201184 Stderr : testwriter .New (t ),
202185 }).Run (ctx )
203- if err == nil {
204- t .Fatalf ("edit must fail" )
205- }
206-
207- errorMustContain (t , err , fmt .Sprintf ("overwrite %q" , file ))
208- errorMustContain (t , err , "no such file or directory" )
209- }
210-
211- func errorMustContain (t * testing.T , err error , needle string ) {
212- t .Helper ()
213-
214- if ! strings .Contains (err .Error (), needle ) {
215- t .Errorf ("error %v must contain %q" , err , needle )
216- }
186+ assert .Error (t , err , "edit must fail" )
187+ assert .Contains (t , err .Error (), fmt .Sprintf ("overwrite %q" , file ))
188+ assert .Contains (t , err .Error (), "no such file or directory" )
217189}
0 commit comments