vm-import-controller/pkg/server/server_test.go
PoAn Yang 148cec8766 fix: golangci-lint error
Signed-off-by: PoAn Yang <poan.yang@suse.com>
2024-01-12 10:55:44 +08:00

37 lines
1.0 KiB
Go

package server
import (
"context"
"fmt"
"net/http"
"os"
"path/filepath"
"testing"
"time"
"github.com/stretchr/testify/require"
)
func Test_NewServer(t *testing.T) {
ctx, cancel := context.WithCancel(context.Background())
assert := require.New(t)
var err error
err = createTmpDir()
assert.NoError(err, "expected no error during creation of tmp dir")
go func() {
err = newServer(ctx, tmpDir)
assert.Contains(err.Error(), "http: Server closed", "error occurred during shutdown") //only expected error is context canceled
}()
time.Sleep(1 * time.Second)
f, err := os.MkdirTemp(TempDir(), "sample")
assert.NoError(err, "expect no error during creation of tmp file")
_, relative := filepath.Split(f)
resp, err := http.Get(fmt.Sprintf("http://localhost:%d/%s", defaultPort, relative))
assert.NoError(err, "expect no error during http call")
assert.Equal(resp.StatusCode, 200, "expected http response code to be 200")
cancel()
time.Sleep(5 * time.Second)
_, err = os.Stat(f)
assert.True(os.IsNotExist(err), "expected no file to be found")
}