@@ -100,7 +100,7 @@ func TestManager_Upgrade_AllExtensions(t *testing.T) {
100100
101101 stdout := & bytes.Buffer {}
102102 stderr := & bytes.Buffer {}
103- err := m .Upgrade ("" , stdout , stderr )
103+ err := m .Upgrade ("" , false , stdout , stderr )
104104 assert .NoError (t , err )
105105
106106 assert .Equal (t , heredoc .Docf (
@@ -125,7 +125,7 @@ func TestManager_Upgrade_RemoteExtension(t *testing.T) {
125125
126126 stdout := & bytes.Buffer {}
127127 stderr := & bytes.Buffer {}
128- err := m .Upgrade ("remote" , stdout , stderr )
128+ err := m .Upgrade ("remote" , false , stdout , stderr )
129129 assert .NoError (t , err )
130130 assert .Equal (t , heredoc .Docf (
131131 `
@@ -145,20 +145,46 @@ func TestManager_Upgrade_LocalExtension(t *testing.T) {
145145
146146 stdout := & bytes.Buffer {}
147147 stderr := & bytes.Buffer {}
148- err := m .Upgrade ("local" , stdout , stderr )
148+ err := m .Upgrade ("local" , false , stdout , stderr )
149149 assert .EqualError (t , err , "local extensions can not be upgraded" )
150150 assert .Equal (t , "" , stdout .String ())
151151 assert .Equal (t , "" , stderr .String ())
152152}
153153
154+ func TestManager_Upgrade_Force (t * testing.T ) {
155+ tempDir := t .TempDir ()
156+ extensionDir := filepath .Join (tempDir , "extensions" , "gh-remote" )
157+ gitDir := filepath .Join (tempDir , "extensions" , "gh-remote" , ".git" )
158+
159+ assert .NoError (t , stubExtension (filepath .Join (tempDir , "extensions" , "gh-remote" , "gh-remote" )))
160+
161+ m := newTestManager (tempDir )
162+
163+ stdout := & bytes.Buffer {}
164+ stderr := & bytes.Buffer {}
165+ err := m .Upgrade ("remote" , true , stdout , stderr )
166+ assert .NoError (t , err )
167+ assert .Equal (t , heredoc .Docf (
168+ `
169+ [git -C %s --git-dir=%s fetch origin HEAD]
170+ [git -C %s --git-dir=%s reset --hard origin/HEAD]
171+ ` ,
172+ extensionDir ,
173+ gitDir ,
174+ extensionDir ,
175+ gitDir ,
176+ ), stdout .String ())
177+ assert .Equal (t , "" , stderr .String ())
178+ }
179+
154180func TestManager_Upgrade_NoExtensions (t * testing.T ) {
155181 tempDir := t .TempDir ()
156182
157183 m := newTestManager (tempDir )
158184
159185 stdout := & bytes.Buffer {}
160186 stderr := & bytes.Buffer {}
161- err := m .Upgrade ("" , stdout , stderr )
187+ err := m .Upgrade ("" , false , stdout , stderr )
162188 assert .EqualError (t , err , "no extensions installed" )
163189 assert .Equal (t , "" , stdout .String ())
164190 assert .Equal (t , "" , stderr .String ())
0 commit comments