hunk.code_window:         updateChannelHeader(
               this.props.channel.id,
               this.state.header,
               () => {
                   this.setState({serverError: ''});
                   this.onHide();
               },
               (err) => {
                   if (err.id === 'api.context.invalid_param.app_error') {
                       this.setState({serverError: this.props.intl.formatMessage(holders.error)});
  
hunk.labels: keep keep keep keep keep replace keep keep keep keep keep
hunk.after_edit:                 this.setState({serverError: '', submitted: false});
  
hunk.file_path: webapp/components/edit_channel_header_modal.jsx
hunk.type: replace
file: package handlers
  
  import (
  	"bytes"
  	"log"
  	"net/http"
  	"net/http/httptest"
  	"strings"
  	"testing"
  )
  
  func TestRecoveryLoggerWithDefaultOptions(t *testing.T) {
  	var buf bytes.Buffer
  	log.SetOutput(&buf)
  
  	handler := RecoveryHandler()
  	handlerFunc := http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) {
  		panic("Unexpected error!")
  	})
  
  	recovery := handler(handlerFunc)
  	recovery.ServeHTTP(httptest.NewRecorder(), newRequest("GET", "/subdir/asdf"))
  
  	if !strings.Contains(buf.String(), "Unexpected error!") {
  		t.Fatalf("Got log %#v, wanted substring %#v", buf.String(), "Unexpected error!")
  	}
  }
  
  func TestRecoveryLoggerWithCustomLogger(t *testing.T) {
  	var buf bytes.Buffer
  	var logger = log.New(&buf, "", log.LstdFlags)
  
  	handler := RecoveryHandler(RecoveryLogger(logger), PrintRecoveryStack(false))
  	handlerFunc := http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) {
  		panic("Unexpected error!")
  	})
  
  	recovery := handler(handlerFunc)
  	recovery.ServeHTTP(httptest.NewRecorder(), newRequest("GET", "/subdir/asdf"))
  
  	if !strings.Contains(buf.String(), "Unexpected error!") {
  		t.Fatalf("Got log %#v, wanted substring %#v", buf.String(), "Unexpected error!")
  	}
  }
  