package main
import (
"net/http"
"testing"
"github.com/stretchr/testify/assert"
"github.com/vitorsalgado/mocha/v3"
"github.com/vitorsalgado/mocha/v3/expect"
"github.com/vitorsalgado/mocha/v3/reply"
)
func TestSeqReply(t *testing.T) {
m := mocha.New(t)
m.Start()
m.AddMocks(mocha.Get(expect.URLPath("/test")).Reply(reply.Seq().Add(reply.Unauthorized(), reply.OK())))
req, _ := http.NewRequest(http.MethodGet, m.URL()+"/test", nil)
res, err := http.DefaultClient.Do(req)
assert.Nil(t, err)
assert.Equal(t, 401, res.StatusCode)
res, err = http.DefaultClient.Do(req)
assert.Nil(t, err)
assert.Equal(t, 200, res.StatusCode)
}
2023/01/09 15:30:32 panic=runtime error: index out of range [-1]
goroutine 48 [running]:
github.com/vitorsalgado/mocha/v3/internal/middleware/recover.Recover.func1.1()
/home/resilva/project/vendor/github.com/vitorsalgado/mocha/v3/internal/middleware/recover/recover.go:18 +0x6c
panic({0x102f51b80, 0x140000d4090})
/opt/homebrew/Cellar/go/1.19.4/libexec/src/runtime/panic.go:884 +0x204
github.com/vitorsalgado/mocha/v3/reply.(*SequentialReply).Build(0x14000386e10, 0x1400039b380?, {0x102fa6ea0, 0x1400046c0c0?}, {0x102faeb80, 0x1400039c0b8})
/home/resilva/project/vendor/github.com/vitorsalgado/mocha/v3/reply/seq.go:46 +0x1a0
github.com/vitorsalgado/mocha/v3.(*mockHandler).ServeHTTP(0x140003a0b40, {0x102fad2c0, 0x140000e2000}, 0x140003de800)
/home/resilva/project/vendor/github.com/vitorsalgado/mocha/v3/http_handler.go:97 +0x4a0
github.com/vitorsalgado/mocha/v3/internal/middleware/recover.Recover.func1({0x102fad2c0?, 0x140000e2000?}, 0x0?)
/home/resilva/project/vendor/github.com/vitorsalgado/mocha/v3/internal/middleware/recover/recov
2023/01/09 15:30:32 panic=runtime error: index out of range [-1]
goroutine 11 [running]:
github.com/vitorsalgado/mocha/v3/internal/middleware/recover.Recover.func1.1()
/home/resilva/project/vendor/github.com/vitorsalgado/mocha/v3/internal/middleware/recover/recover.go:18 +0x6c
panic({0x102f51b80, 0x140005a6060})
/opt/homebrew/Cellar/go/1.19.4/libexec/src/runtime/panic.go:884 +0x204
github.com/vitorsalgado/mocha/v3/reply.(*SequentialReply).Build(0x14000386e10, 0x1400039b380?, {0x102fa6ea0, 0x1400046c0c0?}, {0x102faeb80, 0x1400039c0b8})
/home/resilva/project/vendor/github.com/vitorsalgado/mocha/v3/reply/seq.go:46 +0x1a0
github.com/vitorsalgado/mocha/v3.(*mockHandler).ServeHTTP(0x140003a0b40, {0x102fad2c0, 0x1400047e000}, 0x140001aad00)
/home/resilva/project/vendor/github.com/vitorsalgado/mocha/v3/http_handler.go:97 +0x4a0
github.com/vitorsalgado/mocha/v3/internal/middleware/recover.Recover.func1({0x102fad2c0?, 0x1400047e000?}, 0x10000001000000?)
/home/resilva/project/vendor/github.com/vitorsalgado/mocha/v3/internal/middleware/