@@ -611,6 +611,44 @@ func TestSubmitServerErr(t *testing.T) {
611
611
assert .Regexp (t , "test error" , err .Error ())
612
612
}
613
613
614
+ func TestHandleErrorResponse (t * testing.T ) {
615
+ handler := http .HandlerFunc (func (w http.ResponseWriter , r * http.Request ) {
616
+ w .WriteHeader (404 )
617
+ })
618
+
619
+ ts := httptest .NewServer (handler )
620
+ defer ts .Close ()
621
+
622
+ tmpDir , err := ioutil .TempDir ("" , "submit-nonsuccess" )
623
+ defer os .RemoveAll (tmpDir )
624
+ assert .NoError (t , err )
625
+
626
+ v := viper .New ()
627
+ v .Set ("token" , "abc123" )
628
+ v .Set ("workspace" , tmpDir )
629
+ v .Set ("apibaseurl" , ts .URL )
630
+
631
+ cfg := config.Config {
632
+ Persister : config.InMemoryPersister {},
633
+ UserViperConfig : v ,
634
+ DefaultBaseURL : "http://example.com" ,
635
+ }
636
+
637
+ dir := filepath .Join (tmpDir , "bogus-track" , "bogus-exercise" )
638
+ os .MkdirAll (filepath .Join (dir , "subdir" ), os .FileMode (0755 ))
639
+ writeFakeMetadata (t , dir , "bogus-track" , "bogus-exercise" )
640
+
641
+ err = ioutil .WriteFile (filepath .Join (dir , "file-1.txt" ), []byte ("This is file 1" ), os .FileMode (0755 ))
642
+ assert .NoError (t , err )
643
+
644
+ files := []string {
645
+ filepath .Join (dir , "file-1.txt" ),
646
+ }
647
+
648
+ err = runSubmit (cfg , pflag .NewFlagSet ("fake" , pflag .PanicOnError ), files )
649
+ assert .Error (t , err )
650
+ }
651
+
614
652
func TestSubmissionNotConnectedToRequesterAccount (t * testing.T ) {
615
653
submittedFiles := map [string ]string {}
616
654
ts := fakeSubmitServer (t , submittedFiles )
0 commit comments