feat(httpx): improve testing using the fakefiller (#649)
This diff extracts the fakefiller inside of internal/ooapi (a currently unused package) into its own package. The fakefiller knows how to fill many fields that are typically shared as data structures across processes. It is not perfect in that it cannot fill logger or http client fields, but still helps with better filling and testing. So, here we're using the fakefiller to improve testing of httpx and, nicely enough, we've already catched a bug in the way in which APIClientTemplate.Build misses to forward Authorization from the original template. Yay! Work part of https://github.com/ooni/probe/issues/1951
This commit is contained in:
parent
eed51978ca
commit
93f084598e
24 changed files with 433 additions and 337 deletions
|
|
@ -10,7 +10,7 @@ import (
|
|||
func (d *Descriptor) genTestNewRequest(sb *strings.Builder) {
|
||||
fmt.Fprintf(sb, "\treq := &%s{}\n", d.RequestTypeNameAsStruct())
|
||||
fmt.Fprint(sb, "\tff := &fakeFill{}\n")
|
||||
fmt.Fprint(sb, "\tff.fill(req)\n")
|
||||
fmt.Fprint(sb, "\tff.Fill(req)\n")
|
||||
}
|
||||
|
||||
func (d *Descriptor) genTestInvalidURL(sb *strings.Builder) {
|
||||
|
|
@ -245,7 +245,7 @@ func (d *Descriptor) genTestRoundTrip(sb *strings.Builder) {
|
|||
fmt.Fprint(sb, "\th.userAgent = r.Header.Get(\"User-Agent\")\n")
|
||||
fmt.Fprintf(sb, "\tvar out %s\n", d.ResponseTypeName())
|
||||
fmt.Fprint(sb, "\tff := fakeFill{}\n")
|
||||
fmt.Fprint(sb, "\tff.fill(&out)\n")
|
||||
fmt.Fprint(sb, "\tff.Fill(&out)\n")
|
||||
fmt.Fprintf(sb, "\th.resp = out\n")
|
||||
fmt.Fprintf(sb, "\tdata, err := json.Marshal(out)\n")
|
||||
fmt.Fprintf(sb, "\tif err != nil {\n")
|
||||
|
|
@ -264,11 +264,11 @@ func (d *Descriptor) genTestRoundTrip(sb *strings.Builder) {
|
|||
fmt.Fprint(sb, "\tdefer srvr.Close()\n")
|
||||
fmt.Fprintf(sb, "\treq := &%s{}\n", d.RequestTypeNameAsStruct())
|
||||
fmt.Fprint(sb, "\tff := &fakeFill{}\n")
|
||||
fmt.Fprint(sb, "\tff.fill(&req)\n")
|
||||
fmt.Fprint(sb, "\tff.Fill(&req)\n")
|
||||
fmt.Fprintf(sb, "\tapi := &%s{BaseURL: srvr.URL}\n", d.APIStructName())
|
||||
fmt.Fprint(sb, "\tff.fill(&api.UserAgent)\n")
|
||||
fmt.Fprint(sb, "\tff.Fill(&api.UserAgent)\n")
|
||||
if d.RequiresLogin {
|
||||
fmt.Fprint(sb, "\tff.fill(&api.Token)\n")
|
||||
fmt.Fprint(sb, "\tff.Fill(&api.Token)\n")
|
||||
}
|
||||
|
||||
fmt.Fprint(sb, "\t// issue request\n")
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ func (d *Descriptor) genTestCacheSuccess(sb *strings.Builder) {
|
|||
fmt.Fprintf(sb, "func TestCache%sSuccess(t *testing.T) {\n", d.APIStructName())
|
||||
fmt.Fprint(sb, "\tff := &fakeFill{}\n")
|
||||
fmt.Fprintf(sb, "\tvar expect %s\n", d.ResponseTypeName())
|
||||
fmt.Fprint(sb, "\tff.fill(&expect)\n")
|
||||
fmt.Fprint(sb, "\tff.Fill(&expect)\n")
|
||||
fmt.Fprintf(sb, "\tcache := &%s{\n", d.WithCacheAPIStructName())
|
||||
fmt.Fprintf(sb, "\t\tAPI: &%s{\n", d.FakeAPIStructName())
|
||||
fmt.Fprint(sb, "\t\t\tResponse: expect,\n")
|
||||
|
|
@ -18,7 +18,7 @@ func (d *Descriptor) genTestCacheSuccess(sb *strings.Builder) {
|
|||
fmt.Fprint(sb, "\t\tKVStore: &kvstore.Memory{},\n")
|
||||
fmt.Fprint(sb, "\t}\n")
|
||||
fmt.Fprintf(sb, "\tvar req %s\n", d.RequestTypeName())
|
||||
fmt.Fprint(sb, "\tff.fill(&req)\n")
|
||||
fmt.Fprint(sb, "\tff.Fill(&req)\n")
|
||||
fmt.Fprint(sb, "\tctx := context.Background()\n")
|
||||
fmt.Fprint(sb, "\tresp, err := cache.Call(ctx, req)\n")
|
||||
fmt.Fprint(sb, "\tif err != nil {\n")
|
||||
|
|
@ -38,7 +38,7 @@ func (d *Descriptor) genTestWriteCacheError(sb *strings.Builder) {
|
|||
fmt.Fprint(sb, "\terrMocked := errors.New(\"mocked error\")\n")
|
||||
fmt.Fprint(sb, "\tff := &fakeFill{}\n")
|
||||
fmt.Fprintf(sb, "\tvar expect %s\n", d.ResponseTypeName())
|
||||
fmt.Fprint(sb, "\tff.fill(&expect)\n")
|
||||
fmt.Fprint(sb, "\tff.Fill(&expect)\n")
|
||||
fmt.Fprintf(sb, "\tcache := &%s{\n", d.WithCacheAPIStructName())
|
||||
fmt.Fprintf(sb, "\t\tAPI: &%s{\n", d.FakeAPIStructName())
|
||||
fmt.Fprint(sb, "\t\t\tResponse: expect,\n")
|
||||
|
|
@ -46,7 +46,7 @@ func (d *Descriptor) genTestWriteCacheError(sb *strings.Builder) {
|
|||
fmt.Fprint(sb, "\t\tKVStore: &FakeKVStore{SetError: errMocked},\n")
|
||||
fmt.Fprint(sb, "\t}\n")
|
||||
fmt.Fprintf(sb, "\tvar req %s\n", d.RequestTypeName())
|
||||
fmt.Fprint(sb, "\tff.fill(&req)\n")
|
||||
fmt.Fprint(sb, "\tff.Fill(&req)\n")
|
||||
fmt.Fprint(sb, "\tctx := context.Background()\n")
|
||||
fmt.Fprint(sb, "\tresp, err := cache.Call(ctx, req)\n")
|
||||
fmt.Fprint(sb, "\tif !errors.Is(err, errMocked) {\n")
|
||||
|
|
@ -69,7 +69,7 @@ func (d *Descriptor) genTestFailureWithNoCache(sb *strings.Builder) {
|
|||
fmt.Fprint(sb, "\t\tKVStore: &kvstore.Memory{},\n")
|
||||
fmt.Fprint(sb, "\t}\n")
|
||||
fmt.Fprintf(sb, "\tvar req %s\n", d.RequestTypeName())
|
||||
fmt.Fprint(sb, "\tff.fill(&req)\n")
|
||||
fmt.Fprint(sb, "\tff.Fill(&req)\n")
|
||||
fmt.Fprint(sb, "\tctx := context.Background()\n")
|
||||
fmt.Fprint(sb, "\tresp, err := cache.Call(ctx, req)\n")
|
||||
fmt.Fprint(sb, "\tif !errors.Is(err, errMocked) {\n")
|
||||
|
|
@ -86,7 +86,7 @@ func (d *Descriptor) genTestFailureWithPreviousCache(sb *strings.Builder) {
|
|||
fmt.Fprintf(sb, "func TestCache%sFailureWithPreviousCache(t *testing.T) {\n", d.APIStructName())
|
||||
fmt.Fprint(sb, "\tff := &fakeFill{}\n")
|
||||
fmt.Fprintf(sb, "\tvar expect %s\n", d.ResponseTypeName())
|
||||
fmt.Fprint(sb, "\tff.fill(&expect)\n")
|
||||
fmt.Fprint(sb, "\tff.Fill(&expect)\n")
|
||||
fmt.Fprintf(sb, "\tfakeapi := &%s{\n", d.FakeAPIStructName())
|
||||
fmt.Fprint(sb, "\t\tResponse: expect,\n")
|
||||
fmt.Fprint(sb, "\t}\n")
|
||||
|
|
@ -95,7 +95,7 @@ func (d *Descriptor) genTestFailureWithPreviousCache(sb *strings.Builder) {
|
|||
fmt.Fprint(sb, "\t\tKVStore: &kvstore.Memory{},\n")
|
||||
fmt.Fprint(sb, "\t}\n")
|
||||
fmt.Fprintf(sb, "\tvar req %s\n", d.RequestTypeName())
|
||||
fmt.Fprint(sb, "\tff.fill(&req)\n")
|
||||
fmt.Fprint(sb, "\tff.Fill(&req)\n")
|
||||
fmt.Fprint(sb, "\tctx := context.Background()\n")
|
||||
fmt.Fprint(sb, "\t// first pass with no error at all\n")
|
||||
fmt.Fprint(sb, "\t// use a separate scope to be sure we avoid mistakes\n")
|
||||
|
|
@ -133,7 +133,7 @@ func (d *Descriptor) genTestSetcacheWithEncodeError(sb *strings.Builder) {
|
|||
fmt.Fprint(sb, "\tff := &fakeFill{}\n")
|
||||
fmt.Fprint(sb, "\terrMocked := errors.New(\"mocked error\")\n")
|
||||
fmt.Fprintf(sb, "\tvar in []%s\n", d.CacheEntryName())
|
||||
fmt.Fprint(sb, "\tff.fill(&in)\n")
|
||||
fmt.Fprint(sb, "\tff.Fill(&in)\n")
|
||||
fmt.Fprintf(sb, "\tcache := &%s{\n", d.WithCacheAPIStructName())
|
||||
fmt.Fprint(sb, "\t\tGobCodec: &FakeCodec{EncodeErr: errMocked},\n")
|
||||
fmt.Fprint(sb, "\t}\n")
|
||||
|
|
@ -154,7 +154,7 @@ func (d *Descriptor) genTestReadCacheNotFound(sb *strings.Builder) {
|
|||
fmt.Fprintf(sb, "func TestCache%sReadCacheNotFound(t *testing.T) {\n", d.APIStructName())
|
||||
fmt.Fprint(sb, "\tff := &fakeFill{}\n")
|
||||
fmt.Fprintf(sb, "\tvar incache []%s\n", d.CacheEntryName())
|
||||
fmt.Fprint(sb, "\tff.fill(&incache)\n")
|
||||
fmt.Fprint(sb, "\tff.Fill(&incache)\n")
|
||||
fmt.Fprintf(sb, "\tcache := &%s{\n", d.WithCacheAPIStructName())
|
||||
fmt.Fprint(sb, "\t\tKVStore: &kvstore.Memory{},\n")
|
||||
fmt.Fprint(sb, "\t}\n")
|
||||
|
|
@ -163,7 +163,7 @@ func (d *Descriptor) genTestReadCacheNotFound(sb *strings.Builder) {
|
|||
fmt.Fprintf(sb, "\t\tt.Fatal(err)\n")
|
||||
fmt.Fprintf(sb, "\t}\n")
|
||||
fmt.Fprintf(sb, "\tvar req %s\n", d.RequestTypeName())
|
||||
fmt.Fprint(sb, "\tff.fill(&req)\n")
|
||||
fmt.Fprint(sb, "\tff.Fill(&req)\n")
|
||||
fmt.Fprintf(sb, "\tout, err := cache.readcache(req)\n")
|
||||
fmt.Fprint(sb, "\tif !errors.Is(err, errCacheNotFound) {\n")
|
||||
fmt.Fprint(sb, "\t\tt.Fatal(\"not the error we expected\", err)\n")
|
||||
|
|
@ -178,11 +178,11 @@ func (d *Descriptor) genTestWriteCacheDuplicate(sb *strings.Builder) {
|
|||
fmt.Fprintf(sb, "func TestCache%sWriteCacheDuplicate(t *testing.T) {\n", d.APIStructName())
|
||||
fmt.Fprint(sb, "\tff := &fakeFill{}\n")
|
||||
fmt.Fprintf(sb, "\tvar req %s\n", d.RequestTypeName())
|
||||
fmt.Fprint(sb, "\tff.fill(&req)\n")
|
||||
fmt.Fprint(sb, "\tff.Fill(&req)\n")
|
||||
fmt.Fprintf(sb, "\tvar resp1 %s\n", d.ResponseTypeName())
|
||||
fmt.Fprint(sb, "\tff.fill(&resp1)\n")
|
||||
fmt.Fprint(sb, "\tff.Fill(&resp1)\n")
|
||||
fmt.Fprintf(sb, "\tvar resp2 %s\n", d.ResponseTypeName())
|
||||
fmt.Fprint(sb, "\tff.fill(&resp2)\n")
|
||||
fmt.Fprint(sb, "\tff.Fill(&resp2)\n")
|
||||
fmt.Fprintf(sb, "\tcache := &%s{\n", d.WithCacheAPIStructName())
|
||||
fmt.Fprint(sb, "\t\tKVStore: &kvstore.Memory{},\n")
|
||||
fmt.Fprint(sb, "\t}\n")
|
||||
|
|
@ -222,9 +222,9 @@ func (d *Descriptor) genTestCachSizeLimited(sb *strings.Builder) {
|
|||
fmt.Fprintf(sb, "\tvar prev int\n")
|
||||
fmt.Fprintf(sb, "\tfor {\n")
|
||||
fmt.Fprintf(sb, "\t\tvar req %s\n", d.RequestTypeName())
|
||||
fmt.Fprint(sb, "\t\tff.fill(&req)\n")
|
||||
fmt.Fprint(sb, "\t\tff.Fill(&req)\n")
|
||||
fmt.Fprintf(sb, "\t\tvar resp %s\n", d.ResponseTypeName())
|
||||
fmt.Fprint(sb, "\t\tff.fill(&resp)\n")
|
||||
fmt.Fprint(sb, "\t\tff.Fill(&resp)\n")
|
||||
fmt.Fprintf(sb, "\t\terr := cache.writecache(req, resp)\n")
|
||||
fmt.Fprintf(sb, "\t\tif err != nil {\n")
|
||||
fmt.Fprintf(sb, "\t\t\tt.Fatal(err)\n")
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@ func (d *Descriptor) genTestClientCallRoundTrip(sb *strings.Builder) {
|
|||
if d.RequiresLogin {
|
||||
fmt.Fprintf(sb, "\tif r.URL.Path == \"/api/v1/register\" {\n")
|
||||
fmt.Fprintf(sb, "\t\tvar out apimodel.RegisterResponse\n")
|
||||
fmt.Fprintf(sb, "\t\tff.fill(&out)\n")
|
||||
fmt.Fprintf(sb, "\t\tff.Fill(&out)\n")
|
||||
fmt.Fprintf(sb, "\t\tdata, err := json.Marshal(out)\n")
|
||||
fmt.Fprintf(sb, "\t\tif err != nil {\n")
|
||||
fmt.Fprintf(sb, "\t\t\tw.WriteHeader(400)\n")
|
||||
|
|
@ -39,7 +39,7 @@ func (d *Descriptor) genTestClientCallRoundTrip(sb *strings.Builder) {
|
|||
fmt.Fprintf(sb, "\t}\n")
|
||||
fmt.Fprintf(sb, "\tif r.URL.Path == \"/api/v1/login\" {\n")
|
||||
fmt.Fprintf(sb, "\t\tvar out apimodel.LoginResponse\n")
|
||||
fmt.Fprintf(sb, "\t\tff.fill(&out)\n")
|
||||
fmt.Fprintf(sb, "\t\tff.Fill(&out)\n")
|
||||
fmt.Fprintf(sb, "\t\tdata, err := json.Marshal(out)\n")
|
||||
fmt.Fprintf(sb, "\t\tif err != nil {\n")
|
||||
fmt.Fprintf(sb, "\t\t\tw.WriteHeader(400)\n")
|
||||
|
|
@ -70,7 +70,7 @@ func (d *Descriptor) genTestClientCallRoundTrip(sb *strings.Builder) {
|
|||
fmt.Fprint(sb, "\th.contentType = r.Header.Get(\"Content-Type\")\n")
|
||||
fmt.Fprint(sb, "\th.userAgent = r.Header.Get(\"User-Agent\")\n")
|
||||
fmt.Fprintf(sb, "\tvar out %s\n", d.ResponseTypeName())
|
||||
fmt.Fprint(sb, "\tff.fill(&out)\n")
|
||||
fmt.Fprint(sb, "\tff.Fill(&out)\n")
|
||||
fmt.Fprintf(sb, "\th.resp = out\n")
|
||||
fmt.Fprintf(sb, "\tdata, err := json.Marshal(out)\n")
|
||||
fmt.Fprintf(sb, "\tif err != nil {\n")
|
||||
|
|
@ -89,9 +89,9 @@ func (d *Descriptor) genTestClientCallRoundTrip(sb *strings.Builder) {
|
|||
fmt.Fprint(sb, "\tdefer srvr.Close()\n")
|
||||
fmt.Fprintf(sb, "\treq := &%s{}\n", d.RequestTypeNameAsStruct())
|
||||
fmt.Fprint(sb, "\tff := &fakeFill{}\n")
|
||||
fmt.Fprint(sb, "\tff.fill(&req)\n")
|
||||
fmt.Fprint(sb, "\tff.Fill(&req)\n")
|
||||
fmt.Fprint(sb, "\tclnt := &Client{KVStore: &kvstore.Memory{}, BaseURL: srvr.URL}\n")
|
||||
fmt.Fprint(sb, "\tff.fill(&clnt.UserAgent)\n")
|
||||
fmt.Fprint(sb, "\tff.Fill(&clnt.UserAgent)\n")
|
||||
|
||||
fmt.Fprint(sb, "\t// issue request\n")
|
||||
fmt.Fprint(sb, "\tctx := context.Background()\n")
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ func (d *Descriptor) genTestRegisterAndLoginSuccess(sb *strings.Builder) {
|
|||
fmt.Fprintf(sb, "func TestRegisterAndLogin%sSuccess(t *testing.T) {\n", d.Name)
|
||||
fmt.Fprint(sb, "\tff := &fakeFill{}\n")
|
||||
fmt.Fprintf(sb, "\tvar expect %s\n", d.ResponseTypeName())
|
||||
fmt.Fprint(sb, "\tff.fill(&expect)\n")
|
||||
fmt.Fprint(sb, "\tff.Fill(&expect)\n")
|
||||
|
||||
fmt.Fprint(sb, "\tregisterAPI := &FakeRegisterAPI{\n")
|
||||
fmt.Fprint(sb, "\t\tResponse: &apimodel.RegisterResponse{\n")
|
||||
|
|
@ -39,7 +39,7 @@ func (d *Descriptor) genTestRegisterAndLoginSuccess(sb *strings.Builder) {
|
|||
fmt.Fprint(sb, "\t}\n")
|
||||
|
||||
fmt.Fprintf(sb, "\tvar req %s\n", d.RequestTypeName())
|
||||
fmt.Fprint(sb, "\tff.fill(&req)\n")
|
||||
fmt.Fprint(sb, "\tff.Fill(&req)\n")
|
||||
fmt.Fprint(sb, "\tctx := context.Background()\n")
|
||||
fmt.Fprint(sb, "\tresp, err := login.Call(ctx, req)\n")
|
||||
fmt.Fprint(sb, "\tif err != nil {\n")
|
||||
|
|
@ -67,7 +67,7 @@ func (d *Descriptor) genTestContinueUsingToken(sb *strings.Builder) {
|
|||
fmt.Fprintf(sb, "func Test%sContinueUsingToken(t *testing.T) {\n", d.Name)
|
||||
fmt.Fprint(sb, "\tff := &fakeFill{}\n")
|
||||
fmt.Fprintf(sb, "\tvar expect %s\n", d.ResponseTypeName())
|
||||
fmt.Fprint(sb, "\tff.fill(&expect)\n")
|
||||
fmt.Fprint(sb, "\tff.Fill(&expect)\n")
|
||||
|
||||
fmt.Fprint(sb, "\tregisterAPI := &FakeRegisterAPI{\n")
|
||||
fmt.Fprint(sb, "\t\tResponse: &apimodel.RegisterResponse{\n")
|
||||
|
|
@ -96,7 +96,7 @@ func (d *Descriptor) genTestContinueUsingToken(sb *strings.Builder) {
|
|||
fmt.Fprint(sb, "\t}\n")
|
||||
|
||||
fmt.Fprintf(sb, "\tvar req %s\n", d.RequestTypeName())
|
||||
fmt.Fprint(sb, "\tff.fill(&req)\n")
|
||||
fmt.Fprint(sb, "\tff.Fill(&req)\n")
|
||||
fmt.Fprint(sb, "\tctx := context.Background()\n")
|
||||
|
||||
fmt.Fprint(sb, "\t// step 1: we register and login and use the token\n")
|
||||
|
|
@ -157,7 +157,7 @@ func (d *Descriptor) genTestWithValidButExpiredToken(sb *strings.Builder) {
|
|||
fmt.Fprintf(sb, "func Test%sWithValidButExpiredToken(t *testing.T) {\n", d.Name)
|
||||
fmt.Fprint(sb, "\tff := &fakeFill{}\n")
|
||||
fmt.Fprintf(sb, "\tvar expect %s\n", d.ResponseTypeName())
|
||||
fmt.Fprint(sb, "\tff.fill(&expect)\n")
|
||||
fmt.Fprint(sb, "\tff.Fill(&expect)\n")
|
||||
|
||||
fmt.Fprint(sb, "\terrMocked := errors.New(\"mocked error\")\n")
|
||||
fmt.Fprint(sb, "\tregisterAPI := &FakeRegisterAPI{\n")
|
||||
|
|
@ -195,7 +195,7 @@ func (d *Descriptor) genTestWithValidButExpiredToken(sb *strings.Builder) {
|
|||
fmt.Fprintf(sb, "\t}\n")
|
||||
|
||||
fmt.Fprintf(sb, "\tvar req %s\n", d.RequestTypeName())
|
||||
fmt.Fprint(sb, "\tff.fill(&req)\n")
|
||||
fmt.Fprint(sb, "\tff.Fill(&req)\n")
|
||||
fmt.Fprint(sb, "\tctx := context.Background()\n")
|
||||
fmt.Fprint(sb, "\tresp, err := login.Call(ctx, req)\n")
|
||||
fmt.Fprint(sb, "\tif err != nil {\n")
|
||||
|
|
@ -223,7 +223,7 @@ func (d *Descriptor) genTestWithRegisterAPIError(sb *strings.Builder) {
|
|||
fmt.Fprintf(sb, "func Test%sWithRegisterAPIError(t *testing.T) {\n", d.Name)
|
||||
fmt.Fprint(sb, "\tff := &fakeFill{}\n")
|
||||
fmt.Fprintf(sb, "\tvar expect %s\n", d.ResponseTypeName())
|
||||
fmt.Fprint(sb, "\tff.fill(&expect)\n")
|
||||
fmt.Fprint(sb, "\tff.Fill(&expect)\n")
|
||||
|
||||
fmt.Fprint(sb, "\terrMocked := errors.New(\"mocked error\")\n")
|
||||
fmt.Fprint(sb, "\tregisterAPI := &FakeRegisterAPI{\n")
|
||||
|
|
@ -242,7 +242,7 @@ func (d *Descriptor) genTestWithRegisterAPIError(sb *strings.Builder) {
|
|||
fmt.Fprint(sb, "\t}\n")
|
||||
|
||||
fmt.Fprintf(sb, "\tvar req %s\n", d.RequestTypeName())
|
||||
fmt.Fprint(sb, "\tff.fill(&req)\n")
|
||||
fmt.Fprint(sb, "\tff.Fill(&req)\n")
|
||||
fmt.Fprint(sb, "\tctx := context.Background()\n")
|
||||
fmt.Fprint(sb, "\tresp, err := login.Call(ctx, req)\n")
|
||||
fmt.Fprint(sb, "\tif !errors.Is(err, errMocked) {\n")
|
||||
|
|
@ -263,7 +263,7 @@ func (d *Descriptor) genTestWithLoginFailure(sb *strings.Builder) {
|
|||
fmt.Fprintf(sb, "func Test%sWithLoginFailure(t *testing.T) {\n", d.Name)
|
||||
fmt.Fprint(sb, "\tff := &fakeFill{}\n")
|
||||
fmt.Fprintf(sb, "\tvar expect %s\n", d.ResponseTypeName())
|
||||
fmt.Fprint(sb, "\tff.fill(&expect)\n")
|
||||
fmt.Fprint(sb, "\tff.Fill(&expect)\n")
|
||||
|
||||
fmt.Fprint(sb, "\tregisterAPI := &FakeRegisterAPI{\n")
|
||||
fmt.Fprint(sb, "\t\tResponse: &apimodel.RegisterResponse{\n")
|
||||
|
|
@ -290,7 +290,7 @@ func (d *Descriptor) genTestWithLoginFailure(sb *strings.Builder) {
|
|||
fmt.Fprint(sb, "\t}\n")
|
||||
|
||||
fmt.Fprintf(sb, "\tvar req %s\n", d.RequestTypeName())
|
||||
fmt.Fprint(sb, "\tff.fill(&req)\n")
|
||||
fmt.Fprint(sb, "\tff.Fill(&req)\n")
|
||||
fmt.Fprint(sb, "\tctx := context.Background()\n")
|
||||
fmt.Fprint(sb, "\tresp, err := login.Call(ctx, req)\n")
|
||||
fmt.Fprint(sb, "\tif !errors.Is(err, errMocked) {\n")
|
||||
|
|
@ -315,7 +315,7 @@ func (d *Descriptor) genTestRegisterAndLoginThenFail(sb *strings.Builder) {
|
|||
fmt.Fprintf(sb, "func TestRegisterAndLogin%sThenFail(t *testing.T) {\n", d.Name)
|
||||
fmt.Fprint(sb, "\tff := &fakeFill{}\n")
|
||||
fmt.Fprintf(sb, "\tvar expect %s\n", d.ResponseTypeName())
|
||||
fmt.Fprint(sb, "\tff.fill(&expect)\n")
|
||||
fmt.Fprint(sb, "\tff.Fill(&expect)\n")
|
||||
|
||||
fmt.Fprint(sb, "\tregisterAPI := &FakeRegisterAPI{\n")
|
||||
fmt.Fprint(sb, "\t\tResponse: &apimodel.RegisterResponse{\n")
|
||||
|
|
@ -345,7 +345,7 @@ func (d *Descriptor) genTestRegisterAndLoginThenFail(sb *strings.Builder) {
|
|||
fmt.Fprint(sb, "\t}\n")
|
||||
|
||||
fmt.Fprintf(sb, "\tvar req %s\n", d.RequestTypeName())
|
||||
fmt.Fprint(sb, "\tff.fill(&req)\n")
|
||||
fmt.Fprint(sb, "\tff.Fill(&req)\n")
|
||||
fmt.Fprint(sb, "\tctx := context.Background()\n")
|
||||
fmt.Fprint(sb, "\tresp, err := login.Call(ctx, req)\n")
|
||||
fmt.Fprint(sb, "\tif !errors.Is(err, errMocked) {\n")
|
||||
|
|
@ -398,7 +398,7 @@ func (d *Descriptor) genTestTheDatabaseIsReplaced(sb *strings.Builder) {
|
|||
fmt.Fprint(sb, "\t}\n")
|
||||
|
||||
fmt.Fprintf(sb, "\tvar req %s\n", d.RequestTypeName())
|
||||
fmt.Fprint(sb, "\tff.fill(&req)\n")
|
||||
fmt.Fprint(sb, "\tff.Fill(&req)\n")
|
||||
fmt.Fprint(sb, "\tctx := context.Background()\n")
|
||||
|
||||
fmt.Fprint(sb, "\t// step 1: we register and login and use the token\n")
|
||||
|
|
@ -476,7 +476,7 @@ func (d *Descriptor) genTestTheDatabaseIsReplacedThenFailure(sb *strings.Builder
|
|||
fmt.Fprint(sb, "\t}\n")
|
||||
|
||||
fmt.Fprintf(sb, "\tvar req %s\n", d.RequestTypeName())
|
||||
fmt.Fprint(sb, "\tff.fill(&req)\n")
|
||||
fmt.Fprint(sb, "\tff.Fill(&req)\n")
|
||||
fmt.Fprint(sb, "\tctx := context.Background()\n")
|
||||
|
||||
fmt.Fprint(sb, "\t// step 1: we register and login and use the token\n")
|
||||
|
|
@ -528,7 +528,7 @@ func (d *Descriptor) genTestRegisterAndLoginCannotWriteState(sb *strings.Builder
|
|||
fmt.Fprintf(sb, "func TestRegisterAndLogin%sCannotWriteState(t *testing.T) {\n", d.Name)
|
||||
fmt.Fprint(sb, "\tff := &fakeFill{}\n")
|
||||
fmt.Fprintf(sb, "\tvar expect %s\n", d.ResponseTypeName())
|
||||
fmt.Fprint(sb, "\tff.fill(&expect)\n")
|
||||
fmt.Fprint(sb, "\tff.Fill(&expect)\n")
|
||||
|
||||
fmt.Fprint(sb, "\tregisterAPI := &FakeRegisterAPI{\n")
|
||||
fmt.Fprint(sb, "\t\tResponse: &apimodel.RegisterResponse{\n")
|
||||
|
|
@ -561,7 +561,7 @@ func (d *Descriptor) genTestRegisterAndLoginCannotWriteState(sb *strings.Builder
|
|||
fmt.Fprint(sb, "\t}\n")
|
||||
|
||||
fmt.Fprintf(sb, "\tvar req %s\n", d.RequestTypeName())
|
||||
fmt.Fprint(sb, "\tff.fill(&req)\n")
|
||||
fmt.Fprint(sb, "\tff.Fill(&req)\n")
|
||||
fmt.Fprint(sb, "\tctx := context.Background()\n")
|
||||
fmt.Fprint(sb, "\tresp, err := login.Call(ctx, req)\n")
|
||||
fmt.Fprint(sb, "\tif !errors.Is(err, errMocked) {\n")
|
||||
|
|
@ -586,7 +586,7 @@ func (d *Descriptor) genTestReadStateDecodeFailure(sb *strings.Builder) {
|
|||
fmt.Fprintf(sb, "func Test%sReadStateDecodeFailure(t *testing.T) {\n", d.Name)
|
||||
fmt.Fprint(sb, "\tff := &fakeFill{}\n")
|
||||
fmt.Fprintf(sb, "\tvar expect %s\n", d.ResponseTypeName())
|
||||
fmt.Fprint(sb, "\tff.fill(&expect)\n")
|
||||
fmt.Fprint(sb, "\tff.Fill(&expect)\n")
|
||||
|
||||
fmt.Fprint(sb, "\terrMocked := errors.New(\"mocked error\")\n")
|
||||
|
||||
|
|
@ -648,7 +648,7 @@ func (d *Descriptor) genTestClockIsOffThenSuccess(sb *strings.Builder) {
|
|||
fmt.Fprint(sb, "\t}\n")
|
||||
|
||||
fmt.Fprintf(sb, "\tvar req %s\n", d.RequestTypeName())
|
||||
fmt.Fprint(sb, "\tff.fill(&req)\n")
|
||||
fmt.Fprint(sb, "\tff.Fill(&req)\n")
|
||||
fmt.Fprint(sb, "\tctx := context.Background()\n")
|
||||
|
||||
fmt.Fprint(sb, "\t// step 1: we register and login and use the token\n")
|
||||
|
|
@ -728,7 +728,7 @@ func (d *Descriptor) genTestClockIsOffThen401(sb *strings.Builder) {
|
|||
fmt.Fprint(sb, "\t}\n")
|
||||
|
||||
fmt.Fprintf(sb, "\tvar req %s\n", d.RequestTypeName())
|
||||
fmt.Fprint(sb, "\tff.fill(&req)\n")
|
||||
fmt.Fprint(sb, "\tff.Fill(&req)\n")
|
||||
fmt.Fprint(sb, "\tctx := context.Background()\n")
|
||||
|
||||
fmt.Fprint(sb, "\t// step 1: we register and login and use the token\n")
|
||||
|
|
@ -809,7 +809,7 @@ func (d *Descriptor) genTestClockIsOffThen500(sb *strings.Builder) {
|
|||
fmt.Fprint(sb, "\t}\n")
|
||||
|
||||
fmt.Fprintf(sb, "\tvar req %s\n", d.RequestTypeName())
|
||||
fmt.Fprint(sb, "\tff.fill(&req)\n")
|
||||
fmt.Fprint(sb, "\tff.Fill(&req)\n")
|
||||
fmt.Fprint(sb, "\tctx := context.Background()\n")
|
||||
|
||||
fmt.Fprint(sb, "\t// step 1: we register and login and use the token\n")
|
||||
|
|
|
|||
Loading…
Reference in a new issue