Comments (3)
Hey, that's a nifty find!
It's been on my radar that some of these helper methods aren't directly tested...
Impact is a little indirect i.e. when Response.Request.Body
is referenced. I expect this to be uncommon but nonetheless that's wrong as it stands right now. It does not affect request matching (which obviously takes place before the response is provided).
The contents of the cassette on file is not affected because the whole Response.Request
is constructed after the cassette is loaded and after the request has been matched. Note that in the HTTP transaction itself, Response.Request.Body is always nil as per https://pkg.go.dev/net/http#Response Request's Body is nil (having already been consumed)
and govcr respects this.
The only time Response.Request.Body may be populated is transiently for the request mutators.
GoVCR ref:
The track replaying mutator additionally receives an informational copy of the current HTTP request in the track's
Response
under theRequest
field i.e.Track.Response.Request
. This is useful for tailoring track replays with current request information. See TestExample3 for illustration.
This happens in pcb.replayTrack()
.
Again, real cool find. I'll patch this first and then beef up the tests for future-proofing
from govcr.
v12.1.0 fixes the issue.
I'll keep this issue open until I've added the tests.
from govcr.
Tests added.
Thanks for raising this issue
from govcr.
Related Issues (9)
- Comparing to https://github.com/dnaeon/go-vcr HOT 1
- HTTPS requests recording HOT 5
- Using govcr as audit tool HOT 2
- json: unsupported type: func(... HOT 6
- Remove "Path" from cassettes HOT 4
- Handle concurrent roundtrips better HOT 2
- Ability to remove sensitive information from responses HOT 1
- Version tags don't all work with Go modules HOT 13
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from govcr.